diff --git a/Entity/Character/CharacterBuilder.cs b/Entity/Character/CharacterBuilder.cs index b3a3760..9594063 100644 --- a/Entity/Character/CharacterBuilder.cs +++ b/Entity/Character/CharacterBuilder.cs @@ -237,7 +237,7 @@ namespace Milimoe.FunGame.Core.Entity /// /// /// - /// + /// 高危数据警告:传入此项会修改库存中物品的角色引用 /// 对于动态扩展的物品而言,传入已定义的物品表,不使用被复制物品的数据 /// 对于动态扩展的技能而言,传入已定义的技能表,不使用被复制技能的数据 /// diff --git a/Entity/Item/Item.cs b/Entity/Item/Item.cs index ac24fe3..6b8148d 100644 --- a/Entity/Item/Item.cs +++ b/Entity/Item/Item.cs @@ -435,7 +435,7 @@ namespace Milimoe.FunGame.Core.Entity { StringBuilder builder = new(); - builder.AppendLine($"【{Name}】"); + builder.AppendLine($"【{Name}】{(IsLock ? " [锁定]" : "")}"); string itemquality = ItemSet.GetQualityTypeName(QualityType); string itemtype = ItemSet.GetItemTypeName(ItemType) + (ItemType == ItemType.Weapon && WeaponType != WeaponType.None ? "-" + ItemSet.GetWeaponTypeName(WeaponType) : ""); @@ -568,6 +568,11 @@ namespace Milimoe.FunGame.Core.Entity sellandtrade.Add("不可交易"); } + if (IsLock) + { + builder.AppendLine("此物品已锁定"); + } + if (sellandtrade.Count > 0) builder.AppendLine(string.Join(" ", sellandtrade).Trim()); if (Description != "") builder.AppendLine($"{Description}"); if (IsEquipment && Character != null) builder.AppendLine($"装备于:{Character.ToStringWithLevelWithOutUser()}"); diff --git a/Library/Common/JsonConverter/ItemConverter.cs b/Library/Common/JsonConverter/ItemConverter.cs index aa94c3c..513f2b8 100644 --- a/Library/Common/JsonConverter/ItemConverter.cs +++ b/Library/Common/JsonConverter/ItemConverter.cs @@ -56,6 +56,9 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter case nameof(Item.IsInGameItem): result.IsInGameItem = reader.GetBoolean(); break; + case nameof(Item.IsLock): + result.IsLock = reader.GetBoolean(); + break; case nameof(Item.Equipable): result.Equipable = reader.GetBoolean(); break; @@ -133,6 +136,7 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter writer.WriteNumber(nameof(Item.RarityType), (int)value.RarityType); writer.WriteNumber(nameof(Item.RankType), (int)value.RankType); writer.WriteBoolean(nameof(Item.IsInGameItem), value.IsInGameItem); + writer.WriteBoolean(nameof(Item.IsLock), value.IsLock); writer.WriteBoolean(nameof(Item.Equipable), value.Equipable); writer.WriteBoolean(nameof(Item.Unequipable), value.Unequipable); writer.WriteNumber(nameof(Item.RemainUseTimes), value.RemainUseTimes);