ResultTipsView.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. using FairyGUI;
  5. using UI.MiniGame;
  6. using UnityEngine;
  7. namespace GFGGame
  8. {
  9. public class ResultTipsView : BaseWindow
  10. {
  11. private UI_ResultTipsUI _ui;
  12. private bool gameResult;
  13. private int timeResult;
  14. private int gameType;
  15. private int gameID;
  16. private List<ActivityOpenCfg> activityGameDate;
  17. private Dictionary<int, string> viewJumpView = new Dictionary<int, string>(){{1,"FlipGameView"},{ 2,"TZFEGameView"} };
  18. //通关评价,不同关卡不同
  19. private List<int> CustemsNum = new List<int>()
  20. {
  21. 10,
  22. 30,
  23. 60,
  24. };
  25. private EffectUI _effectUI1;
  26. private EffectUI _effectUI2;
  27. private EffectUI _effectUI3;
  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. if (_ui != null)
  37. {
  38. _ui.Dispose();
  39. _ui = null;
  40. }
  41. base.Dispose();
  42. }
  43. protected override void OnInit()
  44. {
  45. base.OnInit();
  46. packageName = UI_ResultTipsUI.PACKAGE_NAME;
  47. _ui = UI_ResultTipsUI.Create();
  48. this.viewCom = _ui.target;
  49. isfullScreen = true;
  50. _ui.m_exitBtn.onClick.Add(OnClickExit);
  51. _ui.m_againBtn.onClick.Add(OnClickAgain);
  52. _ui.m_rewardList.itemRenderer = RenderRewardList;
  53. _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "Game_Quad_Open");
  54. _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_effectSucces, "ui_Activity", "Game_Quad_Win");
  55. _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_effectFail, "ui_Activity", "Game_Quad_Lose");
  56. }
  57. protected override void OnShown()
  58. {
  59. base.OnShown();
  60. if ((this.viewData as object[]).Length >= 3)
  61. {
  62. gameResult = (bool)(this.viewData as object[])[0];
  63. gameType = (int)(this.viewData as object[])[1];
  64. timeResult = (int) (this.viewData as object[])[2];
  65. gameID = (int)(this.viewData as object[])[3];
  66. }
  67. UpdateView();
  68. ReqResultReward();
  69. }
  70. private void UpdateView()
  71. {
  72. ItemCfg itemCfg;
  73. switch (gameType)
  74. {
  75. case 1:
  76. CardGame cardGameDate = CardGameArray.Instance.GetCfg(gameID);
  77. CustemsNum[0] = cardGameDate.timeStar3;
  78. CustemsNum[1] = cardGameDate.timeStar2;
  79. CustemsNum[2] = cardGameDate.timeStar1;
  80. itemCfg = ItemCfgArray.Instance.GetCfg(cardGameDate.comsumeStartArr[0][0]);
  81. _ui.m_consumeIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res);
  82. _ui.m_consumeTxt.text = cardGameDate.comsumeStartArr[0][1].ToString();
  83. break;
  84. case 2:
  85. Merge2048Game MergeGameDate = Merge2048GameArray.Instance.GetCfg(gameID);
  86. CustemsNum[0] = MergeGameDate.timeStar3;
  87. CustemsNum[1] = MergeGameDate.timeStar2;
  88. CustemsNum[2] = MergeGameDate.timeStar1;
  89. itemCfg = ItemCfgArray.Instance.GetCfg(MergeGameDate.comsumeStartArr[0][0]);
  90. _ui.m_consumeIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res);
  91. _ui.m_consumeTxt.text = MergeGameDate.comsumeStartArr[0][1].ToString();
  92. break;
  93. case 3:
  94. break;
  95. default:
  96. break;
  97. }
  98. _ui.m_t0.Play();
  99. if (gameResult)
  100. {
  101. _ui.m_failTxt.visible = false;
  102. _ui.m_success.visible = true ;
  103. _ui.m_effectFail.visible = false;
  104. _ui.m_effectSucces.visible = true;
  105. _ui.m_resultTxt.text = "通关奖励";
  106. _ui.m_resultTitle.url = "ui://MiniGame/shengli_bt";
  107. UpdateStar();
  108. }
  109. else
  110. {
  111. _ui.m_failTxt.visible = true;
  112. _ui.m_success.visible = false;
  113. _ui.m_effectSucces.visible = false;
  114. _ui.m_effectFail.visible = true;
  115. _ui.m_resultTxt.text = "失败奖励";
  116. _ui.m_resultTitle.url = "ui://MiniGame/shibai_bt";
  117. }
  118. _ui.m_resultTitle.visible = false;
  119. _ui.m_bg.visible = false;
  120. activityGameDate = ActivityOpenCfgArray.Instance.GetCfgsBytype(ConstLimitTimeActivityType.ActLimitStlyc);
  121. }
  122. private void UpdateStar()
  123. {
  124. int starNum = 0;
  125. for (int i = CustemsNum.Count - 1; i >= 0; i--)
  126. {
  127. if (timeResult <= CustemsNum[i])
  128. {
  129. starNum += 1;
  130. }
  131. }
  132. switch(starNum)
  133. {
  134. case 1:
  135. _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star";
  136. _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star_grey";
  137. _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star_grey";
  138. break;
  139. case 2:
  140. _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star";
  141. _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star";
  142. _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star_grey";
  143. break;
  144. case 3:
  145. _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star";
  146. _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star";
  147. _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star";
  148. break;
  149. default:
  150. _ui.m_star1.visible = false;
  151. _ui.m_star2.visible = false;
  152. _ui.m_star3.visible = false;
  153. break;
  154. }
  155. }
  156. protected override void OnHide()
  157. {
  158. base.OnHide();
  159. }
  160. private void OnClickExit()
  161. {
  162. this.Hide();
  163. ViewManager.Hide(viewJumpView[gameType]);
  164. ViewManager.Show<GameStartView>();
  165. EventAgent.DispatchEvent(ConstMessage.TZFE_GAME_UPDATE);
  166. }
  167. private async void OnClickAgain()
  168. {
  169. this.Hide();
  170. var result = await MiniGameProxy.ReqMiniGameStart(gameID, gameType, activityGameDate[0].id);
  171. if (!result)
  172. {
  173. ViewManager.Hide(viewJumpView[gameType]);
  174. return;
  175. }
  176. ViewManager.Show(viewJumpView[gameType],new object[] { gameID });
  177. }
  178. private void RenderRewardList(int index,GObject obj)
  179. {
  180. UI_rewardItem item = UI_rewardItem.Proxy(obj);
  181. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MiniGameDateManager.Instance.itemList[index].ConfigId);
  182. if (itemCfg != null)
  183. {
  184. item.m_icon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res);
  185. item.m_Count.text = MiniGameDateManager.Instance.itemList[index].Count.ToString();
  186. }
  187. UI_rewardItem.ProxyEnd();
  188. }
  189. private async void ReqResultReward()
  190. {
  191. var result = await MiniGameProxy.ReqMiniGameEnd(gameID, gameType, timeResult, gameResult, activityGameDate[0].id,false);
  192. if (!result) return;
  193. _ui.m_rewardList.numItems = MiniGameDateManager.Instance.itemList.Count;
  194. }
  195. }
  196. }