using cfg.ActorCfg; using cfg.CharacterCfg; using cfg.LevelCfg; using Framework; using Gameplay.Common; using Gameplay.Net; using NLDPB; using System.Collections.Generic; namespace Gameplay { public partial class CommonUtils { public static uint GetItemCount(int id) { return Actor.Instance.Item.GetItemCount(id); } public static string GetItemName(int id) { return GetLocalizeText(TableManager.Instance.Tables.Item.Get(id).NameLocal); } public static string GetItemPath(int id) { return TableManager.Instance.Tables.Item.Get(id).IconPath; } public static readonly List ItemSourceNotShowInItemWindow = new List { ItemSource.LevelPassNormal, ItemSource.LevelPassFirst, ItemSource.LevelPassStar1, ItemSource.LevelPassStar2, ItemSource.LevelPassStar2, ItemSource.LevelPassStar3, ItemSource.ChapterStar,ItemSource.MailItem,ItemSource.Raffle, }; public static int GetItemCharacterCfgId(int id) { DataItem item = TableManager.Instance.Tables.Item.Get(id); if(item==null) { DebugUtil.Log("item表格id为{0}的物品不存在",id); return 0; } if(item.Type!=ItemType.Character) { DebugUtil.Log("item表格id为{0}的物品不是角色物品", id); return 0; } DataCharacterAttri dataCharacterAttri=TableManager.Instance.Tables.CharacterAttri.Get(item.Param1); if(dataCharacterAttri==null) { DebugUtil.Log("item表格id为{0}的物品角色id没有配"); return 0; } return item.Param1; } public static ItemType GetItemType(int id) { DataItem item = TableManager.Instance.Tables.Item.Get(id); return item.Type; } /// /// 道具是否溢出 /// /// /// /// public static bool IsItemOverflow(int id, int count) { DataItem item = TableManager.Instance.Tables.Item.Get(id); if (item == null) { DebugUtil.LogError($"获取道具配置失败,道具id:{id}"); return true; } if (item.MaxCount == 0) return count > TableManager.Instance.Tables.GlobalConfig.ItemMaxDefault; return count > item.MaxCount; } /// /// 角色皮肤本地化名称 /// /// /// public static string GetSkinName(DataCharacterSkin skinCfg) { string skinNameKey = $"SkinInfo_SkinName_{skinCfg.RoleID}_{skinCfg.SkinID:D2}"; return GetLocalizeText(skinNameKey); } /// /// 角色皮肤本地化描述 /// /// /// public static string GetSkinDesc(DataCharacterSkin skinCfg) { string skinDescKey = $"SkinInfo_SkinDesc_{skinCfg.RoleID}_{skinCfg.SkinID:D2}"; return GetLocalizeText(skinDescKey); } /// /// 皮肤获取条件 /// /// /// public static string GetSkinAcquireCondition(DataCharacterSkin skinCfg) { string skinAcquireConditionKey = $"SkinInfo_AcquireCondition_{skinCfg.RoleID}_{skinCfg.SkinID:D2}"; return GetLocalizeText(skinAcquireConditionKey); } /// /// 从道具列表中获取指定来源的道具 /// /// /// /// public static List GetItemBySource(ItemSource sourceType, ItemCounts[] itemList) { var itemCount = itemList[(int)sourceType]; if (itemCount.Ids.Count > 0) { ListItem items = new ListItem(itemCount); return items.List; } return null; } /// /// 将一个道具列表的内容加入到另一个道具列表中 /// /// /// public static void CombineListItem(List Sourcelist, List addList) { for (int i = 0; i < addList.Count; i++) { var item = addList[i]; if (Sourcelist.Find(it => item.ID == it.ID) != null) { Sourcelist[i].AddCount(item.Count); continue; } Sourcelist.Add(item); } } /// /// 检查体力是否足够 /// /// public static bool CheckEnergy(DataLevel dataLevel, int fightCount) { if (dataLevel.CostItems.Count <= 0) { DebugUtil.LogError($"关卡消耗配置错误,关卡id:{dataLevel.Id}"); return true; } int costEnergy = dataLevel.CostItems[0].Count * fightCount; return EnergyManager.Instance.EnergyCheck(costEnergy); } /// /// 获取体力最大战斗次数 /// /// public static int GetEnergyFightCount(DataLevel dataLevel) { if (dataLevel.CostItems.Count <= 0) { DebugUtil.LogError($"关卡消耗配置错误,关卡id:{dataLevel.Id}"); return 0; } return EnergyManager.Instance.GetMaxFightCount(dataLevel.CostItems[0].Count); } } }