GameStartView.cs 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. using FairyGUI;
  5. using UI.MiniGame;
  6. using UnityEngine;
  7. using System.Text.RegularExpressions;
  8. namespace GFGGame
  9. {
  10. public class GameStartView : BaseWindow
  11. {
  12. private UI_GameStartUI _ui;
  13. //后续这里改成读表内容,1:CardGame,2:Merge2048Game,3:HuarongRoadGame
  14. private List<string> viewJumpName = new List<string>() {"","FlipGameView", "TZFEGameView" ,"ActivityHuaRongDaoView"};
  15. private List<ActivityOpenCfg> activityGameDate;
  16. private List<int> GameType = new List<int>();
  17. private List<int> ChallengeList = new List<int>();
  18. //由于每个游戏都有一个表
  19. private List<CardGame> CardGameDate;
  20. private List<Merge2048Game> Merge2048GameDate;
  21. private int NumTicketOne = 3;
  22. private int NumTicketTwo = 3;
  23. public override void Dispose()
  24. {
  25. if (_ui != null)
  26. {
  27. _ui.Dispose();
  28. _ui = null;
  29. }
  30. base.Dispose();
  31. }
  32. protected override void OnInit()
  33. {
  34. base.OnInit();
  35. packageName = UI_GameStartUI.PACKAGE_NAME;
  36. _ui = UI_GameStartUI.Create();
  37. this.viewCom = _ui.target;
  38. isfullScreen = true;
  39. _ui.m_game1.onClick.Add(OnClickBtnGameOne);
  40. _ui.m_game2.onClick.Add(OnClickBtnGameTwo);
  41. _ui.m_btnBack.onClick.Add(OnClickBtnBack);
  42. _ui.m_shopBtn.onClick.Add(OnClickBtnShop);
  43. _ui.m_addIcon.onClick.Add(OnClickBtnAdd);
  44. _ui.m_rewardBtn.onClick.Add(OnClickBtnReward);
  45. }
  46. protected override void OnShown()
  47. {
  48. base.OnShown();
  49. activityGameDate = ActivityOpenCfgArray.Instance.GetCfgsBytype(ConstLimitTimeActivityType.ActLimitStlyc);
  50. GetGameIdByActivityDate();
  51. UpdateChallengeBtn();
  52. UpdateView();
  53. }
  54. protected override void OnHide()
  55. {
  56. GameType.Clear();
  57. ChallengeList.Clear();
  58. base.OnHide();
  59. }
  60. private void UpdateView()
  61. {
  62. if(ChallengeList.Count == 0)
  63. {
  64. _ui.m_rewardBtn.visible = false;
  65. }
  66. else
  67. {
  68. _ui.m_rewardBtn.visible = true;
  69. }
  70. _ui.m_ticket.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(3000017).res);
  71. _ui.m_needNum1.text = NumTicketOne.ToString();
  72. _ui.m_needNum2.text = NumTicketTwo.ToString();
  73. _ui.m_needIcon1.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(3000017).res);
  74. _ui.m_needIcon2.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(3000017).res);
  75. ItemData item;
  76. if (BagDataManager.Instance.GetBagData().TryGetValue(3000017,out item))
  77. {
  78. _ui.m_ticketNum.text = item.num.ToString();
  79. }
  80. else
  81. {
  82. _ui.m_ticketNum.text = "0";
  83. }
  84. }
  85. private void OnClickBtnBack()
  86. {
  87. this.Hide();
  88. }
  89. private void OnClickBtnShop()
  90. {
  91. ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
  92. }
  93. private async void OnClickBtnReward()
  94. {
  95. var result = await MiniGameProxy.ReqGetChallengeReward(activityGameDate[0].id);
  96. if (!result) return;
  97. ViewManager.Show<ChallengeRewardView>(new object[] { ChallengeList });
  98. }
  99. private void OnClickBtnAdd()
  100. {
  101. object[] sourceDatas = new object[] { 3000017, null };
  102. GoodsItemTipsController.ShowItemTips(3000017, sourceDatas);
  103. }
  104. private async void OnClickBtnGameOne()
  105. {
  106. var result = await MiniGameProxy.ReqMiniGameStart(CardGameArray.Instance.GetCfgsBytypeAndsubType(GameType[0], GameType[1])[0].id, GameType[0], activityGameDate[0].id);
  107. if (!result) return;
  108. ViewManager.Show($"GFGGame.{viewJumpName[GameType[0]]}", new object[] { CardGameArray.Instance.GetCfgsBytypeAndsubType(GameType[0], GameType[1])[0].id });
  109. this.Hide();
  110. }
  111. private async void OnClickBtnGameTwo()
  112. {
  113. var result = await MiniGameProxy.ReqMiniGameStart(Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(GameType[2], GameType[3])[0].id, GameType[2], activityGameDate[0].id);
  114. if (!result) return;
  115. //当存在关卡时需要获取后台数据,哪一关了,这个可以在关卡界面写
  116. ViewManager.Show($"GFGGame.{viewJumpName[GameType[2]]}",new object[] { Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(GameType[2],GameType[3])[0].id });
  117. this.Hide();
  118. }
  119. private void GetGameIdByActivityDate()
  120. {
  121. string pattern = @"\d+";
  122. for(int i = 0; i < activityGameDate[0].params5Arr.Length; i++)
  123. {
  124. MatchCollection matches = Regex.Matches(activityGameDate[0].params5Arr[i], pattern);
  125. foreach (Match match in matches)
  126. {
  127. GameType.Add(int.Parse(match.Value));
  128. }
  129. }
  130. }
  131. private void UpdateChallengeBtn()
  132. {
  133. int index = 0;
  134. //当两个游戏都只有一关时,奖励按钮隐藏
  135. for(int i = 0;i<GameType.Count;i+=2)
  136. {
  137. switch (GameType[i])
  138. {
  139. case 1:
  140. List<CardGame> CardGameDate = CardGameArray.Instance.GetCfgsBytypeAndsubType(GameType[i], GameType[i +1]);
  141. if( CardGameDate.Count <= 1)
  142. {
  143. ChallengeList.Add(GameType[i]);
  144. ChallengeList.Add(GameType[i+1]);
  145. }
  146. if(i < 1)
  147. {
  148. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  149. }
  150. else
  151. {
  152. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  153. }
  154. break;
  155. case 2:
  156. List<Merge2048Game> Merge2048GameDate = Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(GameType[i], GameType[i + 1]);
  157. if (Merge2048GameDate.Count <= 1)
  158. {
  159. ChallengeList.Add(GameType[i]);
  160. ChallengeList.Add(GameType[i + 1]);
  161. }
  162. if (i < 1)
  163. {
  164. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  165. }
  166. else
  167. {
  168. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  169. }
  170. break;
  171. case 3:
  172. List <HuarongRoadGame> HuarongRoadGameDate = HuarongRoadGameArray.Instance.GetCfgsBytypeAndsubType(GameType[i], GameType[i + 1]);
  173. if (HuarongRoadGameDate.Count <= 1)
  174. {
  175. ChallengeList.Add(GameType[i]);
  176. ChallengeList.Add(GameType[i + 1]);
  177. }
  178. if (i < 1)
  179. {
  180. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  181. }
  182. else
  183. {
  184. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  185. }
  186. break;
  187. }
  188. }
  189. }
  190. }
  191. }