优化物品状态展示;修复了角色构建器没有复制能量的问题

This commit is contained in:
milimoe 2025-07-18 00:01:49 +08:00
parent 42abf38b27
commit 79801ee594
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
3 changed files with 43 additions and 25 deletions

View File

@ -241,8 +241,9 @@ namespace Milimoe.FunGame.Core.Entity
/// <param name="itemsDefined">对于动态扩展的物品而言,传入已定义的物品表,不使用被复制物品的数据</param> /// <param name="itemsDefined">对于动态扩展的物品而言,传入已定义的物品表,不使用被复制物品的数据</param>
/// <param name="skillsDefined">对于动态扩展的技能而言,传入已定义的技能表,不使用被复制技能的数据</param> /// <param name="skillsDefined">对于动态扩展的技能而言,传入已定义的技能表,不使用被复制技能的数据</param>
/// <param name="recovery"></param> /// <param name="recovery"></param>
/// <param name="copyEP"></param>
/// <returns>构建的新角色</returns> /// <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, bool recovery = true) 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, bool copyEP = 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);
if (copyLevel) if (copyLevel)
@ -262,6 +263,7 @@ namespace Milimoe.FunGame.Core.Entity
character.HP = reference.HP; character.HP = reference.HP;
character.MP = reference.MP; character.MP = reference.MP;
} }
if (copyEP) character.EP = reference.EP;
return character; return character;
} }
} }

View File

@ -473,36 +473,47 @@ namespace Milimoe.FunGame.Core.Entity
else else
{ {
List<string> sellandtrade = []; List<string> sellandtrade = [];
bool useRN = false;
if (IsSellable) if (IsLock)
{
sellandtrade.Add("可出售");
}
if (!IsSellable && NextSellableTime != DateTime.MinValue)
{
sellandtrade.Add($"此物品将在 {NextSellableTime.ToString(General.GeneralDateTimeFormatChinese)} 后可出售");
}
else if (!IsSellable)
{ {
sellandtrade.Add("不可出售"); sellandtrade.Add("不可出售");
}
if (IsTradable)
{
sellandtrade.Add("可交易");
}
if (!IsTradable && NextTradableTime != DateTime.MinValue)
{
sellandtrade.Add($"此物品将在 {NextTradableTime.ToString(General.GeneralDateTimeFormatChinese)} 后可交易");
}
else if (!IsTradable)
{
sellandtrade.Add("不可交易"); sellandtrade.Add("不可交易");
} }
else
{
if (IsSellable)
{
sellandtrade.Add("可出售");
}
if (sellandtrade.Count > 0) builder.AppendLine(string.Join(" ", sellandtrade).Trim()); if (!IsSellable && NextSellableTime != DateTime.MinValue)
{
useRN = true;
sellandtrade.Add($"此物品将在 {NextSellableTime.ToString(General.GeneralDateTimeFormatChinese)} 后可出售");
}
else if (!IsSellable)
{
sellandtrade.Add("不可出售");
}
if (IsTradable)
{
sellandtrade.Add("可交易");
}
if (!IsTradable && NextTradableTime != DateTime.MinValue)
{
useRN = true;
sellandtrade.Add($"此物品将在 {NextTradableTime.ToString(General.GeneralDateTimeFormatChinese)} 后可交易");
}
else if (!IsTradable)
{
sellandtrade.Add("不可交易");
}
}
if (sellandtrade.Count > 0) builder.AppendLine(string.Join(useRN ? "\r\n" : " ", sellandtrade).Trim());
} }
if (isShowGeneralDescription && GeneralDescription != "") if (isShowGeneralDescription && GeneralDescription != "")

View File

@ -117,6 +117,11 @@ namespace Milimoe.FunGame.Core.Model
/// </summary> /// </summary>
public Dictionary<string, object> CustomData { get; } = []; public Dictionary<string, object> CustomData { get; } = [];
/// <summary>
/// 金币奖励记录
/// </summary>
public Dictionary<Character, int> EarnedMoney => _earnedMoney;
#endregion #endregion
#region #region