GameStartView.cs 11 KB

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