|
@@ -17,66 +17,65 @@ namespace GFGGame
|
|
|
_itemExchangeDic.Clear();
|
|
|
}
|
|
|
|
|
|
- public static void Add(int itemID, long itemNum)
|
|
|
+ public static void Add(ItemInfoProto itemInfoProto)
|
|
|
{
|
|
|
- ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
|
|
|
- if (itemCfg == null)
|
|
|
- {
|
|
|
- Debug.LogError($"添加了一个不存在的物品 {itemID}");
|
|
|
- return;
|
|
|
- }
|
|
|
+ var itemID = itemInfoProto.ConfigId;
|
|
|
ItemData itemData = null;
|
|
|
if (_dataDic.ContainsKey(itemID))
|
|
|
{
|
|
|
itemData = _dataDic[itemID];
|
|
|
- if (itemCfg.itemType == ConstItemType.CARD)
|
|
|
- {
|
|
|
- return; //每张卡牌只有一张
|
|
|
- }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
itemData = ItemDataPool.GetItemData(itemID);
|
|
|
+ itemData.itemType = itemInfoProto.Type;
|
|
|
+ itemData.subType = itemInfoProto.SubType;
|
|
|
+ itemData.rarity = itemInfoProto.Rarity;
|
|
|
_dataDic.Add(itemID, itemData);
|
|
|
}
|
|
|
- itemData.num += itemNum;
|
|
|
- if (ItemUtilCS.IsDressUpItem(itemID) && itemID % GameConst.MAX_COUNT_EVERY_TYPE_ITEM > 0)
|
|
|
+ itemData.num = itemInfoProto.Count;
|
|
|
+ if (itemInfoProto.Type == ConstItemType.DRESS_UP && itemID % GameConst.MAX_COUNT_EVERY_TYPE_ITEM > 0)
|
|
|
{
|
|
|
- //游戏角色初始数据完成后才执行
|
|
|
- bool dataInited = GameGlobal.DataInited;
|
|
|
- DressUpMenuItemDataManager.Add(itemID);
|
|
|
- if (!DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(itemID))
|
|
|
+ DressUpMenuItemDataManager.Add(itemInfoProto);
|
|
|
+ if (!DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(itemInfoProto))
|
|
|
{
|
|
|
DecomposeDataManager.Instance.Add(itemID);
|
|
|
}
|
|
|
|
|
|
- FunctionOpenCfg functionOpenCfg = FunctionOpenCfgArray.Instance.GetCfg(typeof(ClothingListView).Name);
|
|
|
-
|
|
|
- if (dataInited
|
|
|
- && itemCfg.rarity == ConstDressRarity.Rarity_TIANYI
|
|
|
+ //游戏角色初始数据完成后才执行
|
|
|
+ if (GameGlobal.DataInited)
|
|
|
+ {
|
|
|
+ ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
|
|
|
+ FunctionOpenCfg functionOpenCfg = FunctionOpenCfgArray.Instance.GetCfg(typeof(ClothingListView).Name);
|
|
|
+ if (itemCfg.rarity == ConstDressRarity.Rarity_TIANYI
|
|
|
&& StorageDataManager.Instance.GetStorageValue(ConstStorageId.FUNCTION_OPEN +
|
|
|
functionOpenCfg.index) == 0)
|
|
|
- {
|
|
|
- FunctionOpenDataManager.Instance.CheckHasSpecialFunOpen();
|
|
|
+ {
|
|
|
+ FunctionOpenDataManager.Instance.CheckHasSpecialFunOpen();
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
- if ((itemCfg.itemType == ConstItemType.ITEM || itemCfg.itemType == ConstItemType.USEABLE) &&
|
|
|
+ if ((itemInfoProto.Type == ConstItemType.ITEM || itemInfoProto.Type == ConstItemType.USEABLE) &&
|
|
|
itemData.num > 0)
|
|
|
{
|
|
|
BagDataManager.Instance.Add(itemData);
|
|
|
}
|
|
|
|
|
|
- if (itemCfg.itemType == ConstItemType.HEAD)
|
|
|
+ if (itemInfoProto.Type == ConstItemType.HEAD)
|
|
|
{
|
|
|
- RoleInfoManager.Instance.Add(itemID);
|
|
|
+ RoleInfoManager.Instance.Add(itemInfoProto);
|
|
|
if (GameGlobal.DataInited)
|
|
|
{
|
|
|
RoleInfoManager.Instance.AddNew(itemID);
|
|
|
EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
|
|
|
}
|
|
|
}
|
|
|
- PhotographDataManager.Instance.Add(itemID);
|
|
|
- EventAgent.DispatchEvent(ConstMessage.ITEM_CHANGED, itemID);
|
|
|
+ PhotographDataManager.Instance.Add(itemInfoProto);
|
|
|
+ if(GameGlobal.DataInited)
|
|
|
+ {
|
|
|
+ EventAgent.DispatchEvent(ConstMessage.ITEM_CHANGED, itemID);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public static void Remove(int itemID, long itemNum)
|
|
@@ -139,12 +138,45 @@ namespace GFGGame
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+ public static int GetItemType(int itemId)
|
|
|
+ {
|
|
|
+ _dataDic.TryGetValue(itemId, out var value);
|
|
|
+ if(value != null)
|
|
|
+ {
|
|
|
+ return value.itemType;
|
|
|
+ }
|
|
|
+ ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
|
|
|
+ return itemCfg.itemType;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static int GetItemSubType(int itemId)
|
|
|
+ {
|
|
|
+ _dataDic.TryGetValue(itemId, out var value);
|
|
|
+ if (value != null)
|
|
|
+ {
|
|
|
+ return value.subType;
|
|
|
+ }
|
|
|
+ ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
|
|
|
+ return itemCfg.subType;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static int GetItemRarity(int itemId)
|
|
|
+ {
|
|
|
+ _dataDic.TryGetValue(itemId, out var value);
|
|
|
+ if (value != null)
|
|
|
+ {
|
|
|
+ return value.rarity;
|
|
|
+ }
|
|
|
+ ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
|
|
|
+ return itemCfg.rarity;
|
|
|
+ }
|
|
|
+
|
|
|
public static void InitServerData(List<ItemInfoProto> items)
|
|
|
{
|
|
|
_dataDic.Clear();
|
|
|
foreach (ItemInfoProto roleItem in items)
|
|
|
{
|
|
|
- Add(roleItem.ConfigId, roleItem.Count);
|
|
|
+ Add(roleItem);
|
|
|
}
|
|
|
}
|
|
|
|