ItemProxy.cs 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. namespace GFGGame
  5. {
  6. public class ItemProxy
  7. {
  8. public static async ETTask<bool> GetItemInfos()
  9. {
  10. GameGlobal.DataInited = false;
  11. M2C_GetItemInfos response = null;
  12. response = (M2C_GetItemInfos)await MessageHelper.SendToServer(new C2M_GetItemInfos());
  13. if (response != null)
  14. {
  15. if (response.Error == ErrorCode.ERR_Success)
  16. {
  17. //物品兑换
  18. for (int i = 0; i < response.KsItemExchange.Count; i++)
  19. {
  20. ItemDataManager.InitItemExchange(response.KsItemExchange[i], response.VsItemExchange[i]);
  21. }
  22. //服装数据与物品通步
  23. DressUpMenuSuitDataManager.InitData();
  24. DressUpMenuItemDataManager.InitData();
  25. //初始化物品
  26. ItemDataManager.InitServerData(response.Items);
  27. //自定义套装
  28. CustomSuitDataManager.InitServerData(response.CustomSuits);
  29. CustomSuitDataManager.currentIndex = response.CustomSuitPos;
  30. if (!RoleDataManager.CheckIsMonthCardOpenByType(CustomSuitDataManager.GetPosType(CustomSuitDataManager.currentIndex)))
  31. {
  32. CustomSuitDataManager.currentIndex = 0;
  33. }
  34. for (int i = 0; i < response.NewItems.Count; i++)
  35. {
  36. var itemId = response.NewItems[i];
  37. if (ItemDataManager.GetItemNum(itemId) <= 0) continue;
  38. var itemType = ItemDataManager.GetItemType(itemId);
  39. if (itemType == ConstItemType.DRESS_UP)
  40. {
  41. DressUpMenuItemDataManager.AddNewDressItem(response.NewItems[i]);
  42. }
  43. else if (itemType == ConstItemType.HEAD)
  44. {
  45. RoleInfoManager.Instance.AddNew(response.NewItems[i]);
  46. }
  47. }
  48. //!!!必须放在最后,标记数据初始化完成
  49. GameGlobal.DataInited = true;
  50. return true;
  51. }
  52. }
  53. return false;
  54. }
  55. public static async ETTask<int> GetItemAttributeInfos()
  56. {
  57. M2C_GetItemAttributeInfos m2C_GetItemAttributeInfos = null;
  58. Session session = null;
  59. try
  60. {
  61. session = GameGlobal.zoneScene.GetComponent<SessionComponent>().GateSession;
  62. m2C_GetItemAttributeInfos = (M2C_GetItemAttributeInfos)await session.Call(new C2M_GetItemAttributeInfos());
  63. }
  64. catch (Exception e)
  65. {
  66. Log.Debug(e.ToString());
  67. return ErrorCode.ERR_NetWorkError;
  68. }
  69. if (m2C_GetItemAttributeInfos.Error != ErrorCode.ERR_Success)
  70. {
  71. return m2C_GetItemAttributeInfos.Error;
  72. }
  73. ItemDataManager.InitServerDataItemAttribute(m2C_GetItemAttributeInfos.ItemAtrributes);
  74. return ErrorCode.ERR_Success;
  75. }
  76. //设置物品已读
  77. public static async ETTask<bool> ReqSetItemRead(int itemID)
  78. {
  79. S2C_SetItemRead response = null;
  80. response = (S2C_SetItemRead)await MessageHelper.SendToServer(new C2S_SetItemRead() { ItemId = itemID });
  81. if (response != null)
  82. {
  83. if (response.Error == ErrorCode.ERR_Success)
  84. {
  85. ItemCfg cfg = ItemCfgArray.Instance.GetCfg(response.ItemId);
  86. if (cfg.itemType == ConstItemType.DRESS_UP)
  87. {
  88. DressUpMenuItemDataManager.RemoveNewDressItem(response.ItemId);
  89. }
  90. else if (cfg.itemType == ConstItemType.HEAD)
  91. {
  92. RoleInfoManager.Instance.RemoveNew(response.ItemId);
  93. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  94. }
  95. return true;
  96. }
  97. }
  98. return false;
  99. }
  100. //使用背包物品
  101. public static async ETTask<bool> ReqUseItem(int itemID, long count)
  102. {
  103. S2C_UseItem response = null;
  104. response = (S2C_UseItem)await MessageHelper.SendToServer(new C2S_UseItem() { ItemId = itemID, itemNum = count });
  105. if (response != null)
  106. {
  107. if (response.Error == ErrorCode.ERR_Success)
  108. {
  109. List<ItemData> items = ItemUtil.CreateItemDataList(response.GotItemList);
  110. BonusController.TryShowBonusList(items);
  111. return true;
  112. }
  113. }
  114. return false;
  115. }
  116. //使用背包物品-自选礼包
  117. public static async ETTask<bool> ReqUseGiftBoxSelItem(int itemID, List<GiftBoxSelChildItemProto> giftBoxSelChildItems)
  118. {
  119. M2C_GiftBoxSelConsumption response = null;
  120. response = (M2C_GiftBoxSelConsumption)await MessageHelper.SendToServer(new C2M_GiftBoxSelConsumption()
  121. { ItemId = itemID, GiftBoxSelChildItems = giftBoxSelChildItems });
  122. if (response != null)
  123. {
  124. if (response.Error == ErrorCode.ERR_Success)
  125. {
  126. List<ItemData> items = ItemUtil.CreateItemDataList(response.GotItemList);
  127. BonusController.TryShowBonusList(items);
  128. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  129. return true;
  130. }
  131. }
  132. return false;
  133. }
  134. //使用背包物品-随机礼包
  135. public static async ETTask<bool> ReqUseRandomItem(int itemID, long count)
  136. {
  137. S2C_UseRandomItem response = null;
  138. response = (S2C_UseRandomItem)await MessageHelper.SendToServer(new C2S_UseRandomItem()
  139. { ItemId = itemID, itemNum = count });
  140. if (response != null)
  141. {
  142. if (response.Error == ErrorCode.ERR_Success)
  143. {
  144. List<ItemData> items = ItemUtil.CreateItemDataList(response.GotItemList);
  145. BonusController.TryShowBonusList(items);
  146. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  147. return true;
  148. }
  149. }
  150. return false;
  151. }
  152. }
  153. }