添加攻击力、护甲、三围的百分比属性

This commit is contained in:
milimoe 2024-12-05 01:24:18 +08:00
parent c7c33938bf
commit 1fbdae64fb
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
2 changed files with 83 additions and 13 deletions

View File

@ -236,7 +236,7 @@ namespace Milimoe.FunGame.Core.Entity
public double ExMP2 { get; set; } = 0; public double ExMP2 { get; set; } = 0;
/// <summary> /// <summary>
/// 额外魔法值2 [ 额外魔法值% ] /// 额外魔法值3 [ 额外魔法值% ]
/// </summary> /// </summary>
public double ExMP3 => (BaseMP + ExMP + ExMP2) * ExMPPercentage; public double ExMP3 => (BaseMP + ExMP + ExMP2) * ExMPPercentage;
@ -341,9 +341,19 @@ namespace Milimoe.FunGame.Core.Entity
public double ExATK2 { get; set; } = 0; public double ExATK2 { get; set; } = 0;
/// <summary> /// <summary>
/// 攻击力 = 基础攻击力 + 额外攻击力 + 额外攻击力2 /// 额外攻击力3 [ 额外攻击力% ]
/// </summary> /// </summary>
public double ATK => BaseATK + ExATK + ExATK2; public double ExATK3 => (BaseATK + ExATK + ExATK2) * ExATKPercentage;
/// <summary>
/// 额外攻击力% [ 与技能和物品相关 ]
/// </summary>
public double ExATKPercentage { get; set; } = 0;
/// <summary>
/// 攻击力 = 基础攻击力 + 额外攻击力 + 额外攻击力2 + 额外攻击力3
/// </summary>
public double ATK => BaseATK + ExATK + ExATK2 + ExATK3;
/// <summary> /// <summary>
/// 初始物理护甲 [ 初始设定 ] /// 初始物理护甲 [ 初始设定 ]
@ -367,9 +377,19 @@ namespace Milimoe.FunGame.Core.Entity
public double ExDEF2 { get; set; } = 0; public double ExDEF2 { get; set; } = 0;
/// <summary> /// <summary>
/// 物理护甲 = 基础物理护甲 + 额外物理护甲 + 额外物理护甲2 /// 额外物理护甲3 [ 额外物理护甲% ]
/// </summary> /// </summary>
public double DEF => BaseDEF + ExDEF + ExDEF2; public double ExDEF3 => (BaseDEF + ExDEF + ExDEF2) * ExDEFPercentage;
/// <summary>
/// 额外物理护甲% [ 与技能和物品相关 ]
/// </summary>
public double ExDEFPercentage { get; set; } = 0;
/// <summary>
/// 物理护甲 = 基础物理护甲 + 额外物理护甲 + 额外物理护甲2 + 额外物理护甲3
/// </summary>
public double DEF => BaseDEF + ExDEF + ExDEF2 + ExDEF3;
/// <summary> /// <summary>
/// 物理伤害减免(%) = [ 与物理护甲相关 ] + 额外物理伤害减免(%) /// 物理伤害减免(%) = [ 与物理护甲相关 ] + 额外物理伤害减免(%)
@ -575,19 +595,49 @@ namespace Milimoe.FunGame.Core.Entity
public double ExINT { get; set; } = 0; public double ExINT { get; set; } = 0;
/// <summary> /// <summary>
/// 力量 = 基础力量 + 额外力量 /// 额外力量2 [ 额外力量% ]
/// </summary> /// </summary>
public double STR => BaseSTR + ExSTR; public double ExSTR2 => (BaseSTR + ExSTR) * ExSTRPercentage;
/// <summary> /// <summary>
/// 敏捷 = 基础敏捷 + 额外敏捷 /// 额外敏捷2 [ 额外敏捷% ]
/// </summary> /// </summary>
public double AGI => BaseAGI + ExAGI; public double ExAGI2 => (BaseAGI + ExAGI) * ExAGIPercentage;
/// <summary> /// <summary>
/// 智力 = 基础智力 + 额外智力 /// 额外智力2 [ 额外智力% ]
/// </summary> /// </summary>
public double INT => BaseINT + ExINT; public double ExINT2 => (BaseINT + ExINT) * ExINTPercentage;
/// <summary>
/// 额外力量% [ 与技能和物品相关 ]
/// </summary>
public double ExSTRPercentage { get; set; } = 0;
/// <summary>
/// 额外敏捷% [ 与技能和物品相关 ]
/// </summary>
public double ExAGIPercentage { get; set; } = 0;
/// <summary>
/// 额外智力% [ 与技能和物品相关 ]
/// </summary>
public double ExINTPercentage { get; set; } = 0;
/// <summary>
/// 力量 = 基础力量 + 额外力量 + 额外力量2
/// </summary>
public double STR => BaseSTR + ExSTR + ExSTR2;
/// <summary>
/// 敏捷 = 基础敏捷 + 额外敏捷 + 额外敏捷2
/// </summary>
public double AGI => BaseAGI + ExAGI + ExAGI2;
/// <summary>
/// 智力 = 基础智力 + 额外智力 + 额外智力2
/// </summary>
public double INT => BaseINT + ExINT + ExINT2;
/// <summary> /// <summary>
/// 力量成长值(+BaseSTR/Lv) /// 力量成长值(+BaseSTR/Lv)

View File

@ -89,15 +89,21 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
case nameof(Character.InitialATK): case nameof(Character.InitialATK):
result.InitialATK = reader.GetDouble(); result.InitialATK = reader.GetDouble();
break; break;
case nameof(Character.ExATK): case nameof(Character.ExATK2):
result.ExATK2 = reader.GetDouble(); result.ExATK2 = reader.GetDouble();
break; break;
case nameof(Character.ExATKPercentage):
result.ExATKPercentage = reader.GetDouble();
break;
case nameof(Character.InitialDEF): case nameof(Character.InitialDEF):
result.InitialDEF = reader.GetDouble(); result.InitialDEF = reader.GetDouble();
break; break;
case nameof(Character.ExDEF): case nameof(Character.ExDEF2):
result.ExDEF2 = reader.GetDouble(); result.ExDEF2 = reader.GetDouble();
break; break;
case nameof(Character.ExDEFPercentage):
result.ExDEFPercentage = reader.GetDouble();
break;
case nameof(Character.MDF): case nameof(Character.MDF):
result.MDF = NetworkUtility.JsonDeserialize<MagicResistance>(ref reader, options) ?? new(); result.MDF = NetworkUtility.JsonDeserialize<MagicResistance>(ref reader, options) ?? new();
break; break;
@ -143,6 +149,15 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
case nameof(Character.ExINT): case nameof(Character.ExINT):
result.ExINT = reader.GetDouble(); result.ExINT = reader.GetDouble();
break; break;
case nameof(Character.ExSTRPercentage):
result.ExSTRPercentage = reader.GetDouble();
break;
case nameof(Character.ExAGIPercentage):
result.ExAGIPercentage = reader.GetDouble();
break;
case nameof(Character.ExINTPercentage):
result.ExINTPercentage = reader.GetDouble();
break;
case nameof(Character.STRGrowth): case nameof(Character.STRGrowth):
result.STRGrowth = reader.GetDouble(); result.STRGrowth = reader.GetDouble();
break; break;
@ -227,8 +242,10 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
writer.WriteNumber(nameof(Character.EP), value.EP); writer.WriteNumber(nameof(Character.EP), value.EP);
writer.WriteNumber(nameof(Character.InitialATK), value.InitialATK); writer.WriteNumber(nameof(Character.InitialATK), value.InitialATK);
writer.WriteNumber(nameof(Character.ExATK2), value.ExATK2); writer.WriteNumber(nameof(Character.ExATK2), value.ExATK2);
writer.WriteNumber(nameof(Character.ExATKPercentage), value.ExATKPercentage);
writer.WriteNumber(nameof(Character.InitialDEF), value.InitialDEF); writer.WriteNumber(nameof(Character.InitialDEF), value.InitialDEF);
writer.WriteNumber(nameof(Character.ExDEF2), value.ExDEF2); writer.WriteNumber(nameof(Character.ExDEF2), value.ExDEF2);
writer.WriteNumber(nameof(Character.ExDEFPercentage), value.ExDEFPercentage);
writer.WritePropertyName(nameof(Character.MDF)); writer.WritePropertyName(nameof(Character.MDF));
JsonSerializer.Serialize(writer, value.MDF, options); JsonSerializer.Serialize(writer, value.MDF, options);
writer.WriteNumber(nameof(Character.PhysicalPenetration), value.PhysicalPenetration); writer.WriteNumber(nameof(Character.PhysicalPenetration), value.PhysicalPenetration);
@ -244,6 +261,9 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
writer.WriteNumber(nameof(Character.ExSTR), value.ExSTR); writer.WriteNumber(nameof(Character.ExSTR), value.ExSTR);
writer.WriteNumber(nameof(Character.ExAGI), value.ExAGI); writer.WriteNumber(nameof(Character.ExAGI), value.ExAGI);
writer.WriteNumber(nameof(Character.ExINT), value.ExINT); writer.WriteNumber(nameof(Character.ExINT), value.ExINT);
writer.WriteNumber(nameof(Character.ExSTRPercentage), value.ExSTRPercentage);
writer.WriteNumber(nameof(Character.ExAGIPercentage), value.ExAGIPercentage);
writer.WriteNumber(nameof(Character.ExINTPercentage), value.ExINTPercentage);
writer.WriteNumber(nameof(Character.STRGrowth), value.STRGrowth); writer.WriteNumber(nameof(Character.STRGrowth), value.STRGrowth);
writer.WriteNumber(nameof(Character.AGIGrowth), value.AGIGrowth); writer.WriteNumber(nameof(Character.AGIGrowth), value.AGIGrowth);
writer.WriteNumber(nameof(Character.INTGrowth), value.INTGrowth); writer.WriteNumber(nameof(Character.INTGrowth), value.INTGrowth);