GameStartView.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  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. using cfg.GfgCfg;
  9. namespace GFGGame
  10. {
  11. public class GameStartView : BaseWindow
  12. {
  13. private UI_GameStartUI _ui;
  14. //后续这里改成读表内容,1:CardGame,2:Merge2048Game,3:HuarongRoadGame
  15. private List<string> viewJumpName = new List<string>() {"","FlipGameView", "TZFEGameCheckView" ,"ActivityHuaRongDaoView"};
  16. private List<ActivityOpenCfg> activityGameDate;
  17. private List<int> GameType = new List<int>();
  18. private List<int> ChallengeList = new List<int>();
  19. //由于每个游戏都有一个表
  20. private List<CardGameCfg> CardGameDate;
  21. private List<Merge2048GameCfg> Merge2048GameDate;
  22. private int NumTicketOne = 3;
  23. private int NumTicketTwo = 3;
  24. private EffectUI _effectUI1;
  25. private EffectUI _effectUI2;
  26. private EffectUI _effectUI3;
  27. private EffectUI _effectUI4;
  28. public override void Dispose()
  29. {
  30. EffectUIPool.Recycle(_effectUI1);
  31. _effectUI1 = null;
  32. EffectUIPool.Recycle(_effectUI2);
  33. _effectUI2 = null;
  34. EffectUIPool.Recycle(_effectUI3);
  35. _effectUI3 = null;
  36. EffectUIPool.Recycle(_effectUI4);
  37. _effectUI4 = null;
  38. if (_ui != null)
  39. {
  40. _ui.Dispose();
  41. _ui = null;
  42. }
  43. base.Dispose();
  44. }
  45. protected override void OnInit()
  46. {
  47. base.OnInit();
  48. packageName = UI_GameStartUI.PACKAGE_NAME;
  49. _ui = UI_GameStartUI.Create();
  50. this.viewCom = _ui.target;
  51. isfullScreen = true;
  52. isReturnView = true;
  53. _ui.m_game1.onClick.Add(OnClickBtnGameOne);
  54. _ui.m_game2.onClick.Add(OnClickBtnGameTwo);
  55. _ui.m_btnBack.onClick.Add(OnClickBtnBack);
  56. _ui.m_shopBtn.onClick.Add(OnClickBtnShop);
  57. _ui.m_addIcon.onClick.Add(OnClickBtnAdd);
  58. _ui.m_rewardBtn.target.onClick.Add(OnClickBtnReward);
  59. _ui.m_tipsOne.onClick.Add(RuleController.ShowRuleView);
  60. _ui.m_tipsTwo.onClick.Add(RuleController.ShowRuleView);
  61. _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectIcon1, "ui_Activity", "YXJY_Icon");
  62. _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effectText1, "ui_Activity", "YXJY_Game_Text");
  63. _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_effectIcon2, "ui_Activity", "SGLL_Icon");
  64. _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_effectText2, "ui_Activity", "SGLL_Game_Text");
  65. }
  66. protected override void OnShown()
  67. {
  68. base.OnShown();
  69. activityGameDate = CommonDataManager.Tables.TblActivityOpenCfg.GetGroup1ByType(ConstLimitTimeActivityType.ActLimitStlyc);
  70. GetGameIdByActivityDate();
  71. UpdateChallengeBtn();
  72. ReqChallageReward();
  73. UpdateView();
  74. }
  75. protected override void AddEventListener()
  76. {
  77. base.AddEventListener();
  78. EventAgent.AddEventListener(ConstMessage.MINI_GAME_UPDATE, UpdateRed);
  79. }
  80. protected override void RemoveEventListener()
  81. {
  82. base.RemoveEventListener();
  83. EventAgent.RemoveEventListener(ConstMessage.MINI_GAME_UPDATE, UpdateRed);
  84. }
  85. protected override void OnHide()
  86. {
  87. GameType.Clear();
  88. ChallengeList.Clear();
  89. base.OnHide();
  90. }
  91. private void UpdateRed()
  92. {
  93. RedDotController.Instance.SetComRedDot(_ui.m_rewardBtn.target, MiniGameDateManager.Instance.GetRewardRot());
  94. }
  95. private void UpdateView()
  96. {
  97. if(ChallengeList.Count == 0)
  98. {
  99. _ui.m_rewardBtn.target.visible = false;
  100. }
  101. else
  102. {
  103. _ui.m_rewardBtn.target.visible = true;
  104. }
  105. CardGameCfg cardGameDate = CommonDataManager.Tables.TblCardGameCfg.GetGroup1ByTypeAndSubType(GameType[0],GameType[1])[0];
  106. int consumeID;
  107. if (cardGameDate.ComsumePass.Count > 0)
  108. {
  109. NumTicketOne = cardGameDate.ComsumePass[0].ItemId;
  110. consumeID = cardGameDate.ComsumePass[0].Count;
  111. }
  112. else
  113. {
  114. NumTicketOne = 3;
  115. consumeID = 3000017;
  116. }
  117. _ui.m_ticket.url = ResPathUtil.GetIconPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(consumeID).Res,"png");
  118. _ui.m_needNum1.text = NumTicketOne.ToString();
  119. _ui.m_needIcon1.url = ResPathUtil.GetIconPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(consumeID).Res,"png");
  120. _ui.m_needIcon2.url = ResPathUtil.GetIconPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(consumeID).Res, "png");
  121. _ui.m_needNum2.text = NumTicketTwo.ToString();
  122. _ui.m_needNum2.visible = false;
  123. _ui.m_needIcon2.visible = false;
  124. _ui.m_game1.url = "";
  125. _ui.m_game2.url = "";
  126. _ui.m_tipsOne.data = 300026;
  127. _ui.m_tipsTwo.data = 300027;
  128. ItemData item;
  129. if (BagDataManager.Instance.GetBagData().TryGetValue(consumeID, out item))
  130. {
  131. _ui.m_ticketNum.text = item.num.ToString();
  132. }
  133. else
  134. {
  135. _ui.m_ticketNum.text = "0";
  136. }
  137. }
  138. private void OnClickBtnBack()
  139. {
  140. this.Hide();
  141. }
  142. private void OnClickBtnShop()
  143. {
  144. ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
  145. }
  146. private void OnClickBtnReward()
  147. {
  148. ViewManager.Show<ChallengeRewardView>(new object[] { ChallengeList });
  149. }
  150. private async void ReqChallageReward()
  151. {
  152. var result = await MiniGameProxy.ReqGetChallengeReward(activityGameDate[0].Id);
  153. if (!result) return;
  154. RedDotController.Instance.SetComRedDot(_ui.m_rewardBtn.target, MiniGameDateManager.Instance.GetRewardRot());
  155. }
  156. private void OnClickBtnAdd()
  157. {
  158. object[] sourceDatas = new object[] { 3000017, null };
  159. GoodsItemTipsController.ShowItemTips(3000017, sourceDatas);
  160. }
  161. private async void OnClickBtnGameOne()
  162. {
  163. var result = await MiniGameProxy.ReqMiniGameStart( CommonDataManager.Tables.TblCardGameCfg.GetGroup1ByTypeAndSubType(GameType[0], GameType[1])[0].Id, GameType[0], activityGameDate[0].Id);
  164. if (!result) return;
  165. ViewManager.Show($"GFGGame.{viewJumpName[GameType[0]]}", new object[] { CommonDataManager.Tables.TblCardGameCfg.GetGroup1ByTypeAndSubType(GameType[0], GameType[1])[0].Id });
  166. }
  167. private void OnClickBtnGameTwo()
  168. {
  169. ViewManager.Show($"GFGGame.{viewJumpName[GameType[2]]}",new object[] { GameType[2],GameType[3]});
  170. }
  171. private void GetGameIdByActivityDate()
  172. {
  173. string pattern = @"\d+";
  174. for(int i = 0; i < activityGameDate[0].Params5.Count; i++)
  175. {
  176. MatchCollection matches = Regex.Matches(activityGameDate[0].Params5[i], pattern);
  177. foreach (Match match in matches)
  178. {
  179. GameType.Add(int.Parse(match.Value));
  180. }
  181. }
  182. }
  183. private void OnNumericChange()
  184. {
  185. ItemData item;
  186. if (BagDataManager.Instance.GetBagData().TryGetValue(3000017, out item))
  187. {
  188. _ui.m_ticketNum.text = item.num.ToString();
  189. }
  190. else
  191. {
  192. _ui.m_ticketNum.text = "0";
  193. }
  194. }
  195. private void UpdateChallengeBtn()
  196. {
  197. int index = 0;
  198. //当两个游戏都只有一关时,奖励按钮隐藏
  199. for(int i = 0;i<GameType.Count;i+=2)
  200. {
  201. switch (GameType[i])
  202. {
  203. case 1:
  204. List<CardGameCfg> CardGameDate = CommonDataManager.Tables.TblCardGameCfg.GetGroup1ByTypeAndSubType(GameType[i], GameType[i +1]);
  205. if( CardGameDate.Count <= 1)
  206. {
  207. ChallengeList.Add(GameType[i]);
  208. ChallengeList.Add(GameType[i+1]);
  209. }
  210. if(i < 1)
  211. {
  212. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  213. }
  214. else
  215. {
  216. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  217. }
  218. break;
  219. case 2:
  220. List<Merge2048GameCfg> Merge2048GameDate = CommonDataManager.Tables.TblMerge2048GameCfg.GetGroup1ByTypeAndSubType(GameType[i], GameType[i + 1]);
  221. if (Merge2048GameDate.Count <= 1 || Merge2048GameDate[0].BonusWinFirst.Count > 0)
  222. {
  223. ChallengeList.Add(GameType[i]);
  224. ChallengeList.Add(GameType[i + 1]);
  225. }
  226. if (i < 1)
  227. {
  228. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  229. }
  230. else
  231. {
  232. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  233. }
  234. break;
  235. case 3:
  236. List <HuarongRoadGame> HuarongRoadGameDate = CommonDataManager.Tables.TblHuarongRoadGame.GetGroup1ByTypeAndSubType(GameType[i], GameType[i + 1]);
  237. if (HuarongRoadGameDate.Count <= 1)
  238. {
  239. ChallengeList.Add(GameType[i]);
  240. ChallengeList.Add(GameType[i + 1]);
  241. }
  242. if (i < 1)
  243. {
  244. //NumTicketOne = CardGameDate[0].comsumeStartArr[0][1];
  245. }
  246. else
  247. {
  248. //NumTicketTwo = CardGameDate[0].comsumeStartArr[0][1];
  249. }
  250. break;
  251. }
  252. }
  253. }
  254. }
  255. }