mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2025-04-22 03:59:35 +08:00
203 lines
9.7 KiB
C#
203 lines
9.7 KiB
C#
using System.Text.Json;
|
|
using Milimoe.FunGame.Core.Api.Utility;
|
|
using Milimoe.FunGame.Core.Entity;
|
|
using Milimoe.FunGame.Core.Library.Common.Architecture;
|
|
using Milimoe.FunGame.Core.Library.Constant;
|
|
|
|
namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
|
|
{
|
|
public class CharacterConverter : BaseEntityConverter<Character>
|
|
{
|
|
public override Character NewInstance()
|
|
{
|
|
return Factory.GetCharacter();
|
|
}
|
|
|
|
public override void ReadPropertyName(ref Utf8JsonReader reader, string propertyName, JsonSerializerOptions options, ref Character result)
|
|
{
|
|
switch (propertyName)
|
|
{
|
|
case nameof(Character.Name):
|
|
result.Name = reader.GetString() ?? "";
|
|
break;
|
|
case nameof(Character.FirstName):
|
|
result.FirstName = reader.GetString() ?? "";
|
|
break;
|
|
case nameof(Character.NickName):
|
|
result.NickName = reader.GetString() ?? "";
|
|
break;
|
|
case nameof(Character.MagicType):
|
|
result.MagicType = (MagicType)reader.GetInt32();
|
|
break;
|
|
case nameof(Character.FirstRoleType):
|
|
result.FirstRoleType = (RoleType)reader.GetInt32();
|
|
break;
|
|
case nameof(Character.SecondRoleType):
|
|
result.SecondRoleType = (RoleType)reader.GetInt32();
|
|
break;
|
|
case nameof(Character.ThirdRoleType):
|
|
result.ThirdRoleType = (RoleType)reader.GetInt32();
|
|
break;
|
|
case nameof(Character.RoleRating):
|
|
result.RoleRating = (RoleRating)reader.GetInt32();
|
|
break;
|
|
case nameof(Character.Promotion):
|
|
result.Promotion = reader.GetInt32();
|
|
break;
|
|
case nameof(Character.Level):
|
|
result.Level = reader.GetInt32();
|
|
break;
|
|
case nameof(Character.EXP):
|
|
result.EXP = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.BaseHP):
|
|
result.BaseHP = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.HP):
|
|
result.HP = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.BaseMP):
|
|
result.BaseMP = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.MP):
|
|
result.MP = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.EP):
|
|
result.EP = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.BaseATK):
|
|
result.BaseATK = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.ATK):
|
|
result.ATK = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.BaseDEF):
|
|
result.BaseDEF = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.DEF):
|
|
result.DEF = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.PDR):
|
|
result.PDR = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.MDF):
|
|
result.MDF = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.PhysicalPenetration):
|
|
result.PhysicalPenetration = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.MagicalPenetration):
|
|
result.MagicalPenetration = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.HR):
|
|
result.HR = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.MR):
|
|
result.MR = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.ER):
|
|
result.ER = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.BaseSTR):
|
|
result.BaseSTR = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.BaseAGI):
|
|
result.BaseAGI = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.BaseINT):
|
|
result.BaseINT = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.STR):
|
|
result.STR = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.AGI):
|
|
result.AGI = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.INT):
|
|
result.INT = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.STRGrowth):
|
|
result.STRGrowth = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.AGIGrowth):
|
|
result.AGIGrowth = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.INTGrowth):
|
|
result.INTGrowth = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.SPD):
|
|
result.SPD = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.ActionCoefficient):
|
|
result.ActionCoefficient = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.AccelerationCoefficient):
|
|
result.AccelerationCoefficient = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.ATR):
|
|
result.ATR = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.CritRate):
|
|
result.CritRate = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.CritDMG):
|
|
result.CritDMG = reader.GetDecimal();
|
|
break;
|
|
case nameof(Character.EvadeRate):
|
|
result.EvadeRate = reader.GetDecimal();
|
|
break;
|
|
}
|
|
}
|
|
|
|
public override void Write(Utf8JsonWriter writer, Character value, JsonSerializerOptions options)
|
|
{
|
|
writer.WriteStartObject();
|
|
writer.WriteString(nameof(Character.Name), value.Name);
|
|
writer.WriteString(nameof(Character.FirstName), value.FirstName);
|
|
writer.WriteString(nameof(Character.NickName), value.NickName);
|
|
writer.WriteNumber(nameof(Character.MagicType), (int)value.MagicType);
|
|
writer.WriteNumber(nameof(Character.FirstRoleType), (int)value.FirstRoleType);
|
|
writer.WriteNumber(nameof(Character.SecondRoleType), (int)value.SecondRoleType);
|
|
writer.WriteNumber(nameof(Character.ThirdRoleType), (int)value.ThirdRoleType);
|
|
writer.WriteNumber(nameof(Character.RoleRating), (int)value.RoleRating);
|
|
writer.WriteNumber(nameof(Character.Promotion), value.Promotion);
|
|
writer.WriteNumber(nameof(Character.Level), value.Level);
|
|
writer.WriteNumber(nameof(Character.EXP), value.EXP);
|
|
writer.WriteNumber(nameof(Character.BaseHP), value.BaseHP);
|
|
writer.WriteNumber(nameof(Character.HP), value.HP);
|
|
writer.WriteNumber(nameof(Character.BaseMP), value.BaseMP);
|
|
writer.WriteNumber(nameof(Character.MP), value.MP);
|
|
writer.WriteNumber(nameof(Character.EP), value.EP);
|
|
writer.WriteNumber(nameof(Character.BaseATK), value.BaseATK);
|
|
writer.WriteNumber(nameof(Character.ATK), value.ATK);
|
|
writer.WriteNumber(nameof(Character.BaseDEF), value.BaseDEF);
|
|
writer.WriteNumber(nameof(Character.DEF), value.DEF);
|
|
writer.WriteNumber(nameof(Character.PDR), value.PDR);
|
|
writer.WriteNumber(nameof(Character.MDF), value.MDF);
|
|
writer.WriteNumber(nameof(Character.PhysicalPenetration), value.PhysicalPenetration);
|
|
writer.WriteNumber(nameof(Character.MagicalPenetration), value.MagicalPenetration);
|
|
writer.WriteNumber(nameof(Character.HR), value.HR);
|
|
writer.WriteNumber(nameof(Character.MR), value.MR);
|
|
writer.WriteNumber(nameof(Character.ER), value.ER);
|
|
writer.WriteNumber(nameof(Character.BaseSTR), value.BaseSTR);
|
|
writer.WriteNumber(nameof(Character.BaseAGI), value.BaseAGI);
|
|
writer.WriteNumber(nameof(Character.BaseINT), value.BaseINT);
|
|
writer.WriteNumber(nameof(Character.STR), value.STR);
|
|
writer.WriteNumber(nameof(Character.AGI), value.AGI);
|
|
writer.WriteNumber(nameof(Character.INT), value.INT);
|
|
writer.WriteNumber(nameof(Character.STRGrowth), value.STRGrowth);
|
|
writer.WriteNumber(nameof(Character.AGIGrowth), value.AGIGrowth);
|
|
writer.WriteNumber(nameof(Character.INTGrowth), value.INTGrowth);
|
|
writer.WriteNumber(nameof(Character.SPD), value.SPD);
|
|
writer.WriteNumber(nameof(Character.ActionCoefficient), value.ActionCoefficient);
|
|
writer.WriteNumber(nameof(Character.AccelerationCoefficient), value.AccelerationCoefficient);
|
|
writer.WriteNumber(nameof(Character.ATR), value.ATR);
|
|
writer.WriteNumber(nameof(Character.CritRate), value.CritRate);
|
|
writer.WriteNumber(nameof(Character.CritDMG), value.CritDMG);
|
|
writer.WriteNumber(nameof(Character.EvadeRate), value.EvadeRate);
|
|
writer.WriteEndObject();
|
|
}
|
|
|
|
}
|
|
}
|