fix: 从存档读取出来的 Skills 可能没有绑定对应的 Item.Guid

This commit is contained in:
milimoe 2024-12-06 00:26:20 +08:00
parent 1fbdae64fb
commit 1a6ed9c216
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
2 changed files with 4 additions and 1 deletions

View File

@ -592,12 +592,14 @@ namespace Milimoe.FunGame.Core.Entity
if (item.Skills.Active != null)
{
item.Skills.Active.Level = copyLevel ? (Skills.Active?.Level ?? 1) : 1;
item.Skills.Active.Guid = item.Guid;
}
foreach (Skill skill in Skills.Passives)
{
Skill newskill = skill.Copy();
newskill.Item = item;
newskill.Level = copyLevel ? skill.Level : 1;
newskill.Guid = item.Guid;
item.Skills.Passives.Add(newskill);
}
foreach (Skill skill in Skills.Magics)
@ -605,6 +607,7 @@ namespace Milimoe.FunGame.Core.Entity
Skill newskill = skill.Copy();
newskill.Item = item;
newskill.Level = copyLevel ? skill.Level : 1;
newskill.Guid = item.Guid;
item.Skills.Magics.Add(newskill);
}
}

View File

@ -277,7 +277,7 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
writer.WriteNumber(nameof(Character.ExCritDMG), value.ExCritDMG);
writer.WriteNumber(nameof(Character.ExEvadeRate), value.ExEvadeRate);
writer.WritePropertyName(nameof(Character.Skills));
JsonSerializer.Serialize(writer, value.Skills, options);
JsonSerializer.Serialize(writer, value.Skills.Where(s => s.Guid == Guid.Empty), options);
writer.WritePropertyName(nameof(Character.Items));
JsonSerializer.Serialize(writer, value.Items, options);
writer.WriteEndObject();