ShopSProxy.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. using System.Collections.Generic;
  2. using ET;
  3. using GFGGame;
  4. namespace ET
  5. {
  6. public class S2C_SyncRechargeItemGetHandler : AMHandler<S2C_SyncRechargeItemGet>
  7. {
  8. protected override async ETTask Run(Session session, S2C_SyncRechargeItemGet message)
  9. {
  10. var dTime = TimeHelper.ServerNow() - message.OrderTime;
  11. ShopSProxy.OnBuySuccess(message.BuyId, message.Times, message.TotalTimes, dTime <= 5000);
  12. }
  13. }
  14. }
  15. namespace GFGGame
  16. {
  17. public class ShopSProxy
  18. {
  19. public static async ETTask<bool> ReqShopInfo()
  20. {
  21. S2C_RequestShopInfo response = null;
  22. response = (S2C_RequestShopInfo)await MessageHelper.SendToServer(new C2S_RequestShopInfo());
  23. if (response != null)
  24. {
  25. if (response.Error == ErrorCode.ERR_Success)
  26. {
  27. for (int i = 0; i < response.ks.Count; i++)
  28. {
  29. ShopDataManager.Instance.UpdateGoodsData(response.ks[i], response.vs[i]);
  30. }
  31. return true;
  32. }
  33. }
  34. return false;
  35. }
  36. public static async ETTask<bool> ReqShopBuy(int buyId, long buyCount = 1)
  37. {
  38. S2C_ShopBuy response = null;
  39. response = (S2C_ShopBuy)await MessageHelper.SendToServer(new C2S_ShopBuy() { BuyId = buyId, Times = (int)buyCount });
  40. if (response != null)
  41. {
  42. if (response.Error == ErrorCode.ERR_Success)
  43. {
  44. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(response.BuyId);
  45. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(shopCfg.itemId);
  46. if (shopCfg.costType == CostType.RMB)
  47. {
  48. QDManager.Pay(response.BuyId, response.Times, response.OrderId, response.Price);
  49. return false;
  50. }
  51. else
  52. {
  53. OnBuySuccess(response.BuyId, response.Times, response.TotalTimes, true);
  54. return true;
  55. }
  56. }
  57. }
  58. return false;
  59. }
  60. public static void OnBuySuccess(int buyId, int times, int totalTimes, bool showItems)
  61. {
  62. ShopDataManager.Instance.UpdateGoodsData(buyId, totalTimes);
  63. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(buyId);
  64. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(shopCfg.itemId);
  65. EventAgent.DispatchEvent(ConstMessage.CONTINUOUS_REBATE_GIFT_SHOP_BUY, shopCfg);
  66. if(showItems)
  67. {
  68. //判断倍数
  69. var multiple = 1;
  70. if (totalTimes <= shopCfg.doubleTimes)
  71. {
  72. multiple = 2;
  73. }
  74. List<ItemData> itemDatas = ItemUtil.CreateItemDataList(itemCfg.id, times * shopCfg.itemNum* multiple);
  75. BonusController.TryShowBonusList(itemDatas);
  76. }
  77. EventAgent.DispatchEvent(ConstMessage.SHOP_BUY);
  78. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  79. }
  80. /**********************************************会员中心**********************************************/
  81. //领取VIP等级礼包
  82. public static async ETTask<bool> ReqGetVipGiftBag(int vipLv)
  83. {
  84. S2C_GetVipLevelGift response = null;
  85. response = (S2C_GetVipLevelGift)await MessageHelper.SendToServer(new C2S_GetVipLevelGift() { VipLevel = vipLv });
  86. if (response != null)
  87. {
  88. if (response.Error == ErrorCode.ERR_Success)
  89. {
  90. int[][] bonus = VipCfgArray.Instance.GetCfg(vipLv - 1).bonusOnceArr;
  91. BonusController.TryShowBonusList(bonus);
  92. return true;
  93. }
  94. }
  95. return false;
  96. }
  97. //领取VIP周礼包
  98. public static async ETTask<bool> ReqGetVipWeekGiftBag(int vipLv)
  99. {
  100. S2C_GetVipWeekGift response = null;
  101. response = (S2C_GetVipWeekGift)await MessageHelper.SendToServer(new C2S_GetVipWeekGift() { VipLevel = vipLv });
  102. if (response != null)
  103. {
  104. if (response.Error == ErrorCode.ERR_Success)
  105. {
  106. int[][] bonus = VipCfgArray.Instance.GetCfg(vipLv).bonusWeekArr;
  107. BonusController.TryShowBonusList(bonus);
  108. return true;
  109. }
  110. }
  111. return false;
  112. }
  113. /*********************************************************月卡***************************************************/
  114. //领取每日返还珍珠
  115. public static async ETTask<bool> ReqGetMonthCardReward(int monthCardType)
  116. {
  117. S2C_GetMonthCardReward response = null;
  118. response = (S2C_GetMonthCardReward)await MessageHelper.SendToServer(new C2S_GetMonthCardReward() { MonthCardType = monthCardType });
  119. if (response != null)
  120. {
  121. if (response.Error == ErrorCode.ERR_Success)
  122. {
  123. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  124. return true;
  125. }
  126. }
  127. return false;
  128. }
  129. //领取专属单品
  130. public static async ETTask<bool> ReqGetMonthCardItem(int month)
  131. {
  132. S2C_GetMonthCardItem response = null;
  133. response = (S2C_GetMonthCardItem)await MessageHelper.SendToServer(new C2S_GetMonthCardItem());
  134. if (response != null)
  135. {
  136. if (response.Error == ErrorCode.ERR_Success)
  137. {
  138. MonthlyCardClothesCfg clothesCfg = MonthlyCardClothesCfgArray.Instance.GetCfgByyearAndmonth(TimeUtil.GetCurYear(), month);
  139. List<ItemData> itemDatas = ItemUtil.CreateItemDataList(clothesCfg.clothesArr[0], clothesCfg.clothesArr[1]);
  140. BonusController.TryShowBonusList(itemDatas);
  141. return true;
  142. }
  143. }
  144. return false;
  145. }
  146. }
  147. }