GameStartView.cs 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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 : BaseView
  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. _ui.m_ticketNum.text = "999";
  76. }
  77. private void OnClickBtnBack()
  78. {
  79. this.Hide();
  80. }
  81. private void OnClickBtnShop()
  82. {
  83. ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
  84. }
  85. private void OnClickBtnReward()
  86. {
  87. ViewManager.Show<ChallengeRewardView>(new object[] { ChallengeList });
  88. }
  89. private void OnClickBtnAdd()
  90. {
  91. }
  92. private async void OnClickBtnGameOne()
  93. {
  94. var result = await MiniGameProxy.ReqMiniGameStart(CardGameArray.Instance.GetCfgsBytypeAndsubType(GameType[0], GameType[1])[0].id, GameType[0], activityGameDate[0].id);
  95. if (!result) return;
  96. ViewManager.Show($"GFGGame.{viewJumpName[GameType[0]]}", new object[] { CardGameArray.Instance.GetCfgsBytypeAndsubType(GameType[0], GameType[1])[0].id });
  97. this.Hide();
  98. }
  99. private async void OnClickBtnGameTwo()
  100. {
  101. var result = await MiniGameProxy.ReqMiniGameStart(Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(GameType[2], GameType[3])[0].id, GameType[0], activityGameDate[0].id);
  102. if (!result) return;
  103. //当存在关卡时需要获取后台数据,哪一关了,这个可以在关卡界面写
  104. ViewManager.Show($"GFGGame.{viewJumpName[GameType[2]]}",new object[] { Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(GameType[2],GameType[3])[0].id });
  105. this.Hide();
  106. }
  107. private void GetGameIdByActivityDate()
  108. {
  109. string pattern = @"\d+";
  110. for(int i = 0; i < activityGameDate[0].params5Arr.Length; i++)
  111. {
  112. MatchCollection matches = Regex.Matches(activityGameDate[0].params5Arr[i], pattern);
  113. foreach (Match match in matches)
  114. {
  115. GameType.Add(int.Parse(match.Value));
  116. }
  117. }
  118. }
  119. private void UpdateChallengeBtn()
  120. {
  121. int index = 0;
  122. //当两个游戏都只有一关时,奖励按钮隐藏
  123. for(int i = 0;i<GameType.Count;i+=2)
  124. {
  125. switch (GameType[i])
  126. {
  127. case 1:
  128. List<CardGame> CardGameDate = CardGameArray.Instance.GetCfgsBytypeAndsubType(GameType[i], GameType[i +1]);
  129. if( CardGameDate.Count <= 1)
  130. {
  131. ChallengeList.Add(GameType[i]);
  132. ChallengeList.Add(GameType[i+1]);
  133. }
  134. if(i < 1)
  135. {
  136. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  137. }
  138. else
  139. {
  140. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  141. }
  142. break;
  143. case 2:
  144. List<Merge2048Game> Merge2048GameDate = Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(GameType[i], GameType[i + 1]);
  145. if (Merge2048GameDate.Count <= 1)
  146. {
  147. ChallengeList.Add(GameType[i]);
  148. ChallengeList.Add(GameType[i + 1]);
  149. }
  150. if (i < 1)
  151. {
  152. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  153. }
  154. else
  155. {
  156. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  157. }
  158. break;
  159. case 3:
  160. List <HuarongRoadGame> HuarongRoadGameDate = HuarongRoadGameArray.Instance.GetCfgsBytypeAndsubType(GameType[i], GameType[i + 1]);
  161. if (HuarongRoadGameDate.Count <= 1)
  162. {
  163. ChallengeList.Add(GameType[i]);
  164. ChallengeList.Add(GameType[i + 1]);
  165. }
  166. if (i < 1)
  167. {
  168. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  169. }
  170. else
  171. {
  172. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  173. }
  174. break;
  175. }
  176. }
  177. }
  178. }
  179. }