ShopBoxWidget.cs 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. using System.Collections.Generic;
  2. using Core.Language;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. using GameLogic.Bag;
  7. using GameLogic.Combat.CombatTool;
  8. using UnityEngine;
  9. using UnityEngine.UI;
  10. namespace Fort23.Mono
  11. {
  12. [UIBinding(prefab = "ShopBoxWidget")]
  13. public partial class ShopBoxWidget : UIComponent
  14. {
  15. private OpenBoxConfig openBoxConfig;
  16. private AccountFileInfo.SummonData summonData;
  17. bool oneBiaoJi = false;
  18. private void Init()
  19. {
  20. }
  21. public override void AddEvent()
  22. {
  23. StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
  24. }
  25. public override void DelEvent()
  26. {
  27. StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
  28. }
  29. private bool isStartAd = false;
  30. public override void AddButtonEvent()
  31. {
  32. oneButton.onClick.AddListener(OnButtonCallBack);
  33. tenButton.onClick.AddListener(TenButtonCallBack);
  34. Btn_AdsFree.onClick.AddListener(async () =>
  35. {
  36. if (AccountFileInfo.Instance.playerData.boxFree)
  37. {
  38. TipMessagePanel.OpenTipMessagePanel(938, Vector2.zero);
  39. return;
  40. }
  41. if (isStartAd)
  42. return;
  43. isStartAd = true;
  44. var dic = new Dictionary<string, string>();
  45. dic.Add("Chouka", "");
  46. // YouLoftSDK.Instance.CustomEvent("OnclickAds", dic);
  47. // bool isOK = await YouLoftSDK.Instance.ShowAd();
  48. bool isOK = true;
  49. isStartAd = false;
  50. if (!isOK)
  51. {
  52. return;
  53. }
  54. dic = new Dictionary<string, string>();
  55. dic.Add("Chouka", "");
  56. // YouLoftSDK.Instance.CustomEvent("AdsPlayOver", dic);
  57. AccountFileInfo.Instance.playerData.boxFree = true;
  58. AccountFileInfo.Instance.SavePlayerData();
  59. // Btn_AdsFree.gameObject.SetActive(false);
  60. List<ItemInfo> allIitem = await BoxHelper.TenBox(openBoxConfig.ID, true);
  61. if (allIitem != null)
  62. GachaPanel.OpenPanel(allIitem, 2, openBoxConfig.ID);
  63. });
  64. }
  65. private async void OnButtonCallBack()
  66. {
  67. if (summonData.isSummonSocre)
  68. {
  69. TipMessagePanelType2.OpenTipMessagePanel("已经开启300抽挑战,不能进行单抽了");
  70. return;
  71. }
  72. if (summonData.oneFreeCount >= openBoxConfig.oneConsumeFreePara[1])
  73. {
  74. TipMessagePanelType2.OpenTipMessagePanel("今日单抽免费次数已用完");
  75. return;
  76. }
  77. if (PlayerManager.Instance.serverTime < summonData.nextOneFreeTime)
  78. {
  79. TipMessagePanelType2.OpenTipMessagePanel("还未到达免费时间!请稍好再试");
  80. return;
  81. }
  82. //测试代码
  83. List<ItemInfo> allIitem = await BoxHelper.OneBox(openBoxConfig.ID);
  84. if (allIitem != null)
  85. ShopGachaPanel.OpenPanel(allIitem, 1, openBoxConfig.ID);
  86. UpdateUi();
  87. }
  88. private async void TenButtonCallBack()
  89. {
  90. //测试代码
  91. List<ItemInfo> allIitem = await BoxHelper.TenBox(openBoxConfig.ID);
  92. if (allIitem != null)
  93. ShopGachaPanel.OpenPanel(allIitem, 2, openBoxConfig.ID);
  94. UpdateUi();
  95. }
  96. public override void Close()
  97. {
  98. CombatController.currActiveCombat.isUpdate = true;
  99. base.Close();
  100. }
  101. public void CustomInit()
  102. {
  103. CombatController.currActiveCombat.isUpdate = false;
  104. openBoxConfig = ConfigComponent.Instance.Get<OpenBoxConfig>(1);
  105. ItemConfig config = ConfigComponent.Instance.Get<ItemConfig>(openBoxConfig.CostItemID);
  106. // icon_Oneitem.icon_name = config.icon;
  107. // Icon_TenItem.icon_name = config.icon;
  108. onCion.text = "x" + openBoxConfig.oneConsume;
  109. tenCion.text = "x" + openBoxConfig.tenConsume;
  110. UpdateUi();
  111. }
  112. public void Update()
  113. {
  114. if (summonData == null)
  115. return;
  116. if (summonData.tenFreeCount < openBoxConfig.oneConsumeFreePara_1[1] &&
  117. PlayerManager.Instance.serverTime < summonData.nextTenFreeTime)
  118. {
  119. int time = (int)(summonData.nextTenFreeTime - PlayerManager.Instance.serverTime);
  120. tenCion.text = PlayerManager.TimeToHSM(time / 1000);
  121. if (!Icon_Ads.gameObject.activeSelf)
  122. {
  123. Icon_Ads.gameObject.SetActive(true);
  124. }
  125. }
  126. else
  127. {
  128. if (summonData.tenFreeCount < openBoxConfig.oneConsumeFreePara_1[1])
  129. {
  130. if (Icon_Ads.gameObject.activeSelf)
  131. {
  132. tenCion.text = LanguageManager.Instance.Text(10235);
  133. Icon_Ads.gameObject.SetActive(false);
  134. }
  135. }
  136. else
  137. {
  138. if (!Icon_Ads.gameObject.activeSelf)
  139. {
  140. tenCion.text = LanguageManager.Instance.Text(10268);
  141. Icon_Ads.gameObject.SetActive(true);
  142. }
  143. }
  144. }
  145. if (summonData.oneFreeCount < openBoxConfig.oneConsumeFreePara[1] &&
  146. PlayerManager.Instance.serverTime < summonData.nextOneFreeTime)
  147. {
  148. int time = (int)(summonData.nextOneFreeTime - PlayerManager.Instance.serverTime);
  149. onCion.text = PlayerManager.TimeToHSM(time / 1000);
  150. if (!oneBiaoJi)
  151. {
  152. oneBiaoJi = true;
  153. oneButton.image.GetComponent<MyImage>().IsGray = true;
  154. }
  155. }
  156. else
  157. {
  158. if (summonData.oneFreeCount < openBoxConfig.oneConsumeFreePara[1])
  159. {
  160. if (oneBiaoJi)
  161. {
  162. onCion.text = LanguageManager.Instance.Text(10235);
  163. oneBiaoJi = false;
  164. oneButton.image.GetComponent<MyImage>().IsGray = false;
  165. }
  166. }
  167. else
  168. {
  169. if (!oneBiaoJi)
  170. {
  171. onCion.text = LanguageManager.Instance.Text(10268);
  172. oneBiaoJi = true;
  173. oneButton.image.GetComponent<MyImage>().IsGray = false;
  174. }
  175. }
  176. }
  177. }
  178. public void UpdateUi()
  179. {
  180. summonData = PlayerManager.Instance.SummonManager.summonDataMap[1];
  181. if (summonData.tenFreeCount < openBoxConfig.oneConsumeFreePara_1[1] &&
  182. PlayerManager.Instance.serverTime >= summonData.nextTenFreeTime)
  183. {
  184. tenCion.text = LanguageManager.Instance.Text(10235);
  185. }
  186. //今日次数已用完
  187. else if (summonData.tenFreeCount >= openBoxConfig.oneConsumeFreePara_1[1])
  188. {
  189. onCion.text = LanguageManager.Instance.Text(10268);
  190. }
  191. else
  192. {
  193. }
  194. if (summonData.oneFreeCount < openBoxConfig.oneConsumeFreePara[1] &&
  195. PlayerManager.Instance.serverTime >= summonData.nextOneFreeTime)
  196. {
  197. onCion.text = LanguageManager.Instance.Text(10235);
  198. oneButton.image.GetComponent<MyImage>().IsGray = false;
  199. oneBiaoJi = true;
  200. }
  201. else if (summonData.oneFreeCount >= openBoxConfig.oneConsumeFreePara[1])
  202. {
  203. onCion.text = LanguageManager.Instance.Text(10268);
  204. oneButton.image.GetComponent<MyImage>().IsGray = true;
  205. oneBiaoJi = false;
  206. }
  207. else
  208. {
  209. oneButton.image.GetComponent<MyImage>().IsGray = true;
  210. oneBiaoJi = false;
  211. }
  212. }
  213. }
  214. }