mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2025-12-05 08:09:02 +00:00
构建角色添加是否回复状态的选项;修复加速系数公式错误;修改小队数组为 ID 数组
This commit is contained in:
parent
93eeb195bb
commit
3b78270112
@ -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();
|
||||
|
||||
@ -104,8 +104,9 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// <param name="inventory"></param>
|
||||
/// <param name="itemsDefined"></param>
|
||||
/// <param name="skillsDefined"></param>
|
||||
/// <param name="recovery"></param>
|
||||
/// <returns>构建的新角色</returns>
|
||||
public Character Build(IEnumerable<Skill> skills, IEnumerable<Item> items, bool newItemGuid = true, EquipSlot? equips = null, Inventory? inventory = null, IEnumerable<Item>? itemsDefined = null, IEnumerable<Skill>? skillsDefined = null)
|
||||
public Character Build(IEnumerable<Skill> skills, IEnumerable<Item> items, bool newItemGuid = true, EquipSlot? equips = null, Inventory? inventory = null, IEnumerable<Item>? itemsDefined = null, IEnumerable<Skill>? 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
|
||||
/// <param name="inventory"></param>
|
||||
/// <param name="itemsDefined">对于动态扩展的物品而言,传入已定义的物品表,不使用被复制物品的数据</param>
|
||||
/// <param name="skillsDefined">对于动态扩展的技能而言,传入已定义的技能表,不使用被复制技能的数据</param>
|
||||
/// <param name="recovery"></param>
|
||||
/// <returns>构建的新角色</returns>
|
||||
public static Character Build(Character reference, bool newItemGuid = true, bool copyLevel = true, Inventory? inventory = null, IEnumerable<Item>? itemsDefined = null, IEnumerable<Skill>? skillsDefined = null)
|
||||
public static Character Build(Character reference, bool newItemGuid = true, bool copyLevel = true, Inventory? inventory = null, IEnumerable<Item>? itemsDefined = null, IEnumerable<Skill>? 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;
|
||||
|
||||
@ -68,7 +68,7 @@ namespace Milimoe.FunGame.Core.Entity
|
||||
/// <summary>
|
||||
/// 小队
|
||||
/// </summary>
|
||||
public HashSet<Character> Squad { get; set; } = [];
|
||||
public HashSet<long> Squad { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 练级中的角色
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -47,10 +47,10 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
|
||||
}
|
||||
break;
|
||||
case nameof(Inventory.Squad):
|
||||
HashSet<Character> squad = NetworkUtility.JsonDeserialize<HashSet<Character>>(ref reader, options) ?? [];
|
||||
foreach (Character character in squad)
|
||||
HashSet<long> squad = NetworkUtility.JsonDeserialize<HashSet<long>>(ref reader, options) ?? [];
|
||||
foreach (long cid in squad)
|
||||
{
|
||||
result.Squad.Add(character);
|
||||
result.Squad.Add(cid);
|
||||
}
|
||||
break;
|
||||
case nameof(Inventory.Training):
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user