| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 | 
							- using System.Collections.Generic;
 
- using FairyGUI;
 
- using UnityEngine;
 
- namespace GFGGame
 
- {
 
-     public class ItemDataManager
 
-     {
 
-         private static Dictionary<int, ItemData> _dataDic = new Dictionary<int, ItemData>();
 
-         private static Dictionary<int, int> _prepareDic = new Dictionary<int, int>();
 
-         public static void Add(int itemID, int itemNum, bool sendToServer = true)
 
-         {
 
-             switch (itemID)
 
-             {
 
-                 case ConstItemID.EXP:
 
-                     RoleDataManager.exp += itemNum;
 
-                     return;
 
-                 case ConstItemID.POWER:
 
-                     RoleDataManager.power += itemNum;
 
-                     return;
 
-                 case ConstItemID.GOLD:
 
-                     RoleDataManager.gold += itemNum;
 
-                     return;
 
-                 case ConstItemID.DIAMOND_PURPLE:
 
-                     RoleDataManager.diaP += itemNum;
 
-                     return;
 
-                 case ConstItemID.DIAMOND_RED:
 
-                     RoleDataManager.diaR += itemNum;
 
-                     return;
 
-             }
 
-             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 (ItemUtil.IsDressUpItem(itemID) && itemID % GameConst.MAX_COUNT_EVERY_TYPE_ITEM > 0)
 
-             {
 
-                 DressUpMenuItemDataManager.Add(itemID);
 
-             }
 
-             //Debug.Log("itemid:"+ itemID);
 
-             //Debug.Log("itemCfg:" + itemCfg);
 
-             if (itemCfg.itemType == ConstItemType.CARD)
 
-             {
 
-                 CardDataManager.Add(itemID);
 
-             }
 
-             PhotographDataManager.Instance.Add(itemID);
 
-             if (sendToServer)
 
-             {
 
-                 PrepareUpdateToServer(itemData.id, itemData.num);
 
-             }
 
-             EventAgent.DispatchEvent(ConstMessage.ITEM_CHANGED, itemID);
 
-         }
 
-         public static void Remove(int itemID, int itemNum)
 
-         {
 
-             switch (itemID)
 
-             {
 
-                 case ConstItemID.EXP:
 
-                     RoleDataManager.exp -= itemNum;
 
-                     return;
 
-                 case ConstItemID.POWER:
 
-                     RoleDataManager.power -= itemNum;
 
-                     return;
 
-                 case ConstItemID.GOLD:
 
-                     RoleDataManager.gold -= itemNum;
 
-                     return;
 
-                 case ConstItemID.DIAMOND_PURPLE:
 
-                     RoleDataManager.diaP -= itemNum;
 
-                     return;
 
-                 case ConstItemID.DIAMOND_RED:
 
-                     RoleDataManager.diaR -= itemNum;
 
-                     return;
 
-             }
 
-             if (_dataDic.ContainsKey(itemID))
 
-             {
 
-                 ItemData itemData = _dataDic[itemID];
 
-                 itemData.num -= itemNum;
 
-                 if (itemData.num <= 0)
 
-                 {
 
-                     itemData.num = 0;
 
-                     _dataDic.Remove(itemID);
 
-                     if (ItemUtil.IsDressUpItem(itemID))
 
-                     {
 
-                         DressUpMenuItemDataManager.Remove(itemID);
 
-                     }
 
-                     PrepareUpdateToServer(itemData.id, itemData.num);
 
-                 }
 
-                 EventAgent.DispatchEvent(ConstMessage.ITEM_CHANGED, itemID);
 
-             }
 
-         }
 
-         public static int GetItemNum(int itemID)
 
-         {
 
-             switch (itemID)
 
-             {
 
-                 case ConstItemID.EXP:
 
-                     return RoleDataManager.exp;
 
-                 case ConstItemID.POWER:
 
-                     return RoleDataManager.power;
 
-                 case ConstItemID.GOLD:
 
-                     return RoleDataManager.gold;
 
-                 case ConstItemID.DIAMOND_PURPLE:
 
-                     return RoleDataManager.diaP;
 
-                 case ConstItemID.DIAMOND_RED:
 
-                     return RoleDataManager.diaR;
 
-             }
 
-             if (_dataDic.ContainsKey(itemID))
 
-             {
 
-                 ItemData itemData = _dataDic[itemID];
 
-                 return itemData.num;
 
-             }
 
-             return 0;
 
-         }
 
-         public static void InitServerData(List<RoleItem> list)
 
-         {
 
-             _dataDic.Clear();
 
-             _prepareDic.Clear();
 
-             if (list != null)
 
-             {
 
-                 foreach (RoleItem roleItem in list)
 
-                 {
 
-                     Add(roleItem.itemId, roleItem.num, false);
 
-                 }
 
-             }
 
-         }
 
-         private static void PrepareUpdateToServer(int itemId, int itemNum)
 
-         {
 
-             _prepareDic[itemId] = itemNum;
 
-             if (!Timers.inst.Exists(UpdateToServer))
 
-             {
 
-                 Timers.inst.Add(0.1f, 1, UpdateToServer);
 
-             }
 
-         }
 
-         private static void UpdateToServer(object param)
 
-         {
 
-             List<RoleItem> list = new List<RoleItem>();
 
-             foreach (KeyValuePair<int, int> item in _prepareDic)
 
-             {
 
-                 RoleItem roleItem = new RoleItem();
 
-                 roleItem.itemId = item.Key;
 
-                 roleItem.num = item.Value;
 
-                 list.Add(roleItem);
 
-             }
 
-             GameProxy.ReqUpdateRoleItems(list);
 
-             _prepareDic.Clear();
 
-         }
 
-         public static Dictionary<int, ItemData> GetItemDic()
 
-         {
 
-             return _dataDic;
 
-         }
 
-         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;
 
-         }
 
-     }
 
- }
 
 
  |