| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Reflection;
 
- using ET;
 
- using FairyGUI;
 
- using UnityEngine;
 
- using static UnityEditor.Progress;
 
- namespace GFGGame
 
- {
 
-     public class ItemDataManager
 
-     {
 
-         private static Dictionary<int, ItemData> _dataDic = new Dictionary<int, ItemData>();
 
-         private static Dictionary<int, int> _itemExchangeDic = new Dictionary<int, int>();
 
-         delegate object MemberGetDelegate(ItemCfg p);
 
-         public static void Add(int itemID, int itemNum)
 
-         {
 
-             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
 
-             if (itemCfg == null)
 
-             {
 
-                 Debug.LogError($"添加了一个不存在的物品 {itemID}");
 
-                 return;
 
-             }
 
-             ItemData itemData = null;
 
-             if (_dataDic.ContainsKey(itemID))
 
-             {
 
-                 itemData = _dataDic[itemID];
 
-                 if (itemCfg.itemType == ConstItemType.CARD)
 
-                 {
 
-                     return;//每张卡牌只有一张
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 itemData = ItemDataPool.GetItemData(itemID);
 
-                 _dataDic.Add(itemID, itemData);
 
-             }
 
-             itemData.num += itemNum;
 
-             if (ItemUtilCS.IsDressUpItem(itemID) && itemID % GameConst.MAX_COUNT_EVERY_TYPE_ITEM > 0)
 
-             {
 
-                 DressUpMenuItemDataManager.Add(itemID);
 
-                 if (!DressUpMenuItemDataManager.CheckIsSceneType(itemID))
 
-                 {
 
-                     DecomposeDataManager.Instance.Add(itemID);
 
-                 }
 
-                 FunctionOpenCfg functionOpenCfg = FunctionOpenCfgArray.Instance.GetCfg(typeof(SuitListView).Name);
 
-                 if (itemCfg.rarity == ConstDressRarity.Rarity_TIANYI && StorageDataManager.Instance.GetStorageValue(ConstStorageId.FUNCTION_OPEN + functionOpenCfg.index) == 0)
 
-                 {
 
-                     
 
-                     FunctionOpenDataManager.Instance.CheckHasSpecialFunOpen();
 
-                 }
 
-             }
 
-             // if (itemCfg.itemType == ConstItemType.DRESS_UP && !DressUpMenuItemDataManager.CheckIsSceneType(itemID))
 
-             // {
 
-             //     DecomposeDataManager.Instance.Add(itemID);
 
-             // }
 
-             PhotographDataManager.Instance.Add(itemID);
 
-             EventAgent.DispatchEvent(ConstMessage.ITEM_CHANGED, itemID);
 
-         }
 
-         public static void Remove(int itemID, int itemNum)
 
-         {
 
-             if (_dataDic.ContainsKey(itemID))
 
-             {
 
-                 ItemData itemData = _dataDic[itemID];
 
-                 itemData.num -= itemNum;
 
-                 if (itemData.num <= 0)
 
-                 {
 
-                     itemData.num = 0;
 
-                     _dataDic.Remove(itemID);
 
-                     if (ItemUtilCS.IsDressUpItem(itemID))
 
-                     {
 
-                         DressUpMenuItemDataManager.Remove(itemID);
 
-                     }
 
-                 }
 
-                 ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
 
-                 if (itemCfg.itemType == ConstItemType.DRESS_UP && !DressUpMenuItemDataManager.CheckIsSceneType(itemID))
 
-                 {
 
-                     DecomposeDataManager.Instance.Remove(itemID);
 
-                 }
 
-                 EventAgent.DispatchEvent(ConstMessage.ITEM_CHANGED, itemID);
 
-             }
 
-         }
 
-         public static int GetItemNum(int itemId)
 
-         {
 
-             int numericType = NumericUtil.GetNumericTypeByItemId(itemId);
 
-             if (numericType != 0)
 
-             {
 
-                 return GameGlobal.myNumericComponent.GetAsInt(numericType);
 
-             }
 
-             if (_dataDic.TryGetValue(itemId, out var itemData))
 
-             {
 
-                 return itemData.num;
 
-             }
 
-             return 0;
 
-         }
 
-         public static void InitServerData(List<ItemInfoProto> items)
 
-         {
 
-             _dataDic.Clear();
 
-             foreach (ItemInfoProto roleItem in items)
 
-             {
 
-                 Add(roleItem.ConfigId, roleItem.Count);
 
-             }
 
-         }
 
-         public static void InitServerDataItemAttribute(List<ItemAttributeProto> infos)
 
-         {
 
-             foreach (var info in infos)
 
-             {
 
-                 if (_dataDic.TryGetValue(info.ConfigId, out var itemData))
 
-                 {
 
-                     itemData.SetAttributes(info.Ks, info.Vs);
 
-                 }
 
-             }
 
-         }
 
-         public static void InitItemExchange(int itemId, int exchangTimes)
 
-         {
 
-             if (_itemExchangeDic.ContainsKey(itemId))
 
-             {
 
-                 _itemExchangeDic[itemId] = exchangTimes;
 
-             }
 
-             else
 
-             {
 
-                 _itemExchangeDic.Add(itemId, exchangTimes);
 
-             }
 
-         }
 
-         //获取物品已兑换次数
 
-         public static int GetItemExchangeTimes(int itemId)
 
-         {
 
-             if (_itemExchangeDic.ContainsKey(itemId) == false)
 
-             {
 
-                 InitItemExchange(itemId, 0);
 
-             }
 
-             return _itemExchangeDic[itemId];
 
-         }
 
-         public static void SetAttribute(int itemId, int key, int value)
 
-         {
 
-             if (_dataDic.TryGetValue(itemId, out var itemData))
 
-             {
 
-                 itemData.SetAttribute(key, value);
 
-             }
 
-         }
 
-         public static void GetMainScore(int itemId, out int mainScore, out int mainScoreValue)
 
-         {
 
-             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
 
-             //五个属性中最大的为主属性
 
-             mainScore = 1;
 
-             mainScoreValue = 0;
 
-             if (itemCfg.score1 > mainScoreValue)
 
-             {
 
-                 mainScoreValue = itemCfg.score1;
 
-                 mainScore = 1;
 
-             }
 
-             if (itemCfg.score2 > mainScoreValue)
 
-             {
 
-                 mainScoreValue = itemCfg.score2;
 
-                 mainScore = 2;
 
-             }
 
-             if (itemCfg.score3 > mainScoreValue)
 
-             {
 
-                 mainScoreValue = itemCfg.score3;
 
-                 mainScore = 3;
 
-             }
 
-             if (itemCfg.score4 > mainScoreValue)
 
-             {
 
-                 mainScoreValue = itemCfg.score4;
 
-                 mainScore = 4;
 
-             }
 
-         }
 
-         public static int GetItemScoreValue(int itemId, int scoreType)
 
-         {
 
-             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
 
-             if (scoreType == 1)
 
-             {
 
-                 return itemCfg.score1;
 
-             }
 
-             else if (scoreType == 2)
 
-             {
 
-                 return itemCfg.score2;
 
-             }
 
-             else if (scoreType == 3)
 
-             {
 
-                 return itemCfg.score3;
 
-             }
 
-             else if (scoreType == 4)
 
-             {
 
-                 return itemCfg.score4;
 
-             }
 
-             return 0;
 
-         }
 
-         public static int GetScore(int itemId, int scoreType)
 
-         {
 
-             if (_dataDic.TryGetValue(itemId, out var itemData))
 
-             {
 
-                 return itemData.GetScore(scoreType);
 
-             }
 
-             return 0;
 
-         }
 
-     }
 
- }
 
 
  |