diff --git a/Entity/Character/Character.cs b/Entity/Character/Character.cs index 601e1ce..91827c7 100644 --- a/Entity/Character/Character.cs +++ b/Entity/Character/Character.cs @@ -699,7 +699,7 @@ namespace Milimoe.FunGame.Core.Entity { get { - double value = INT * General.GameplayEquilibriumConstant.INTtoAccelerationCoefficientMultiplier + ExActionCoefficient; + double value = INT * General.GameplayEquilibriumConstant.INTtoAccelerationCoefficientMultiplier + ExAccelerationCoefficient; return Calculation.PercentageCheck(value); } } @@ -1509,7 +1509,7 @@ namespace Milimoe.FunGame.Core.Entity if (Effects.Where(e => e.EffectType != EffectType.Item).Any()) { builder.AppendLine("== 状态栏 =="); - builder.Append(string.Join(",", Effects.Select(e => e.Name))); + builder.Append(string.Join(",", Effects.Where(e => e.EffectType != EffectType.Item).Select(e => e.Name))); } return builder.ToString(); @@ -1551,7 +1551,7 @@ namespace Milimoe.FunGame.Core.Entity builder.AppendLine($"硬直时间:{hardnessTimes:0.##}"); - if (Effects.Count > 0) + if (Effects.Where(e => e.EffectType != EffectType.Item).Any()) { builder.AppendLine("== 状态栏 =="); foreach (Effect effect in Effects.Where(e => e.EffectType != EffectType.Item)) @@ -1583,10 +1583,10 @@ namespace Milimoe.FunGame.Core.Entity builder.AppendLine($"核心属性:{PrimaryAttributeValue:0.##}" + (ExPrimaryAttributeValue != 0 ? $" [{BasePrimaryAttributeValue:0.##} {(ExPrimaryAttributeValue >= 0 ? "+" : "-")} {Math.Abs(ExPrimaryAttributeValue):0.##}]" : "")); builder.AppendLine($"硬直时间:{hardnessTimes:0.##}"); - if (Effects.Count > 0) + if (Effects.Where(e => e.EffectType != EffectType.Item).Any()) { builder.AppendLine("== 状态栏 =="); - builder.Append(string.Join(",", Effects.Select(e => e.Name))); + builder.Append(string.Join(",", Effects.Where(e => e.EffectType != EffectType.Item).Select(e => e.Name))); } return builder.ToString(); diff --git a/Entity/Character/CharacterBuilder.cs b/Entity/Character/CharacterBuilder.cs index c73d608..8ebba27 100644 --- a/Entity/Character/CharacterBuilder.cs +++ b/Entity/Character/CharacterBuilder.cs @@ -104,8 +104,9 @@ namespace Milimoe.FunGame.Core.Entity /// /// /// + /// /// 构建的新角色 - public Character Build(IEnumerable skills, IEnumerable items, bool newItemGuid = true, EquipSlot? equips = null, Inventory? inventory = null, IEnumerable? itemsDefined = null, IEnumerable? skillsDefined = null) + public Character Build(IEnumerable skills, IEnumerable items, bool newItemGuid = true, EquipSlot? equips = null, Inventory? inventory = null, IEnumerable? itemsDefined = null, IEnumerable? skillsDefined = null, bool recovery = true) { Character character = Factory.GetCharacter(); character.Id = Id; @@ -226,7 +227,7 @@ namespace Milimoe.FunGame.Core.Entity } } } - character.Recovery(); + if (recovery) character.Recovery(); return character; } @@ -240,10 +241,11 @@ namespace Milimoe.FunGame.Core.Entity /// /// 对于动态扩展的物品而言,传入已定义的物品表,不使用被复制物品的数据 /// 对于动态扩展的技能而言,传入已定义的技能表,不使用被复制技能的数据 + /// /// 构建的新角色 - public static Character Build(Character reference, bool newItemGuid = true, bool copyLevel = true, Inventory? inventory = null, IEnumerable? itemsDefined = null, IEnumerable? skillsDefined = null) + public static Character Build(Character reference, bool newItemGuid = true, bool copyLevel = true, Inventory? inventory = null, IEnumerable? itemsDefined = null, IEnumerable? skillsDefined = null, bool recovery = true) { - Character character = new CharacterBuilder(reference).Build(reference.Skills, reference.Items, newItemGuid, reference.EquipSlot, inventory, itemsDefined, skillsDefined); + Character character = new CharacterBuilder(reference).Build(reference.Skills, reference.Items, newItemGuid, reference.EquipSlot, inventory, itemsDefined, skillsDefined, recovery); if (copyLevel) { character.Level = reference.Level; diff --git a/Entity/System/Inventory.cs b/Entity/System/Inventory.cs index 7b49557..2b0c281 100644 --- a/Entity/System/Inventory.cs +++ b/Entity/System/Inventory.cs @@ -68,7 +68,7 @@ namespace Milimoe.FunGame.Core.Entity /// /// 小队 /// - public HashSet Squad { get; set; } = []; + public HashSet Squad { get; set; } = []; /// /// 练级中的角色 diff --git a/Library/Common/JsonConverter/CharacterConverter.cs b/Library/Common/JsonConverter/CharacterConverter.cs index 4c2e711..d253a81 100644 --- a/Library/Common/JsonConverter/CharacterConverter.cs +++ b/Library/Common/JsonConverter/CharacterConverter.cs @@ -86,6 +86,12 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter case nameof(Character.ExMPPercentage): result.ExMPPercentage = reader.GetDouble(); break; + case nameof(Character.HP): + result.HP = reader.GetDouble(); + break; + case nameof(Character.MP): + result.MP = reader.GetDouble(); + break; case nameof(Character.EP): result.EP = reader.GetDouble(); break; @@ -249,6 +255,8 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter writer.WriteNumber(nameof(Character.InitialMP), value.InitialMP); writer.WriteNumber(nameof(Character.ExMP2), value.ExMP2); writer.WriteNumber(nameof(Character.ExMPPercentage), value.ExMPPercentage); + writer.WriteNumber(nameof(Character.HP), value.HP); + writer.WriteNumber(nameof(Character.MP), value.MP); writer.WriteNumber(nameof(Character.EP), value.EP); writer.WriteNumber(nameof(Character.InitialATK), value.InitialATK); writer.WriteNumber(nameof(Character.ExATK2), value.ExATK2); diff --git a/Library/Common/JsonConverter/InventoryConverter.cs b/Library/Common/JsonConverter/InventoryConverter.cs index 33ba6ba..fa20a7c 100644 --- a/Library/Common/JsonConverter/InventoryConverter.cs +++ b/Library/Common/JsonConverter/InventoryConverter.cs @@ -47,10 +47,10 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter } break; case nameof(Inventory.Squad): - HashSet squad = NetworkUtility.JsonDeserialize>(ref reader, options) ?? []; - foreach (Character character in squad) + HashSet squad = NetworkUtility.JsonDeserialize>(ref reader, options) ?? []; + foreach (long cid in squad) { - result.Squad.Add(character); + result.Squad.Add(cid); } break; case nameof(Inventory.Training): diff --git a/Library/Common/JsonConverter/UserConverter.cs b/Library/Common/JsonConverter/UserConverter.cs index 50cf055..313318f 100644 --- a/Library/Common/JsonConverter/UserConverter.cs +++ b/Library/Common/JsonConverter/UserConverter.cs @@ -76,9 +76,9 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter result.Inventory.Items.Add(item); } result.Inventory.MainCharacter = inventory.MainCharacter; - foreach (Character character in inventory.Squad) + foreach (long cid in inventory.Squad) { - result.Inventory.Squad.Add(character); + result.Inventory.Squad.Add(cid); } foreach (long cid in inventory.Training.Keys) {