ResultTipsView.cs 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  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. string consumeText;
  74. switch (gameType)
  75. {
  76. case 1:
  77. CardGame cardGameDate = CardGameArray.Instance.GetCfg(gameID);
  78. CustemsNum[0] = cardGameDate.timeStar3;
  79. CustemsNum[1] = cardGameDate.timeStar2;
  80. CustemsNum[2] = cardGameDate.timeStar1;
  81. if (cardGameDate.comsumePassArr.Length > 0)
  82. {
  83. itemCfg = ItemCfgArray.Instance.GetCfg(cardGameDate.comsumePassArr[0][0]);
  84. consumeText = cardGameDate.comsumePassArr[0][1].ToString();
  85. }
  86. else
  87. {
  88. itemCfg = ItemCfgArray.Instance.GetCfg(3000017);
  89. consumeText = "";
  90. }
  91. _ui.m_consumeIcon.url = ResPathUtil.GetIconPath(itemCfg.res,"png");
  92. _ui.m_consumeTxt.text = consumeText;
  93. break;
  94. case 2:
  95. Merge2048Game MergeGameDate = Merge2048GameArray.Instance.GetCfg(gameID);
  96. CustemsNum[0] = MergeGameDate.timeStar3;
  97. CustemsNum[1] = MergeGameDate.timeStar2;
  98. CustemsNum[2] = MergeGameDate.timeStar1;
  99. if (MergeGameDate.comsumePassArr.Length > 0)
  100. {
  101. itemCfg = ItemCfgArray.Instance.GetCfg(MergeGameDate.comsumePassArr[0][0]);
  102. consumeText = MergeGameDate.comsumePassArr[0][1].ToString();
  103. }
  104. else
  105. {
  106. itemCfg = ItemCfgArray.Instance.GetCfg(3000017);
  107. consumeText = "";
  108. }
  109. _ui.m_consumeIcon.url = ResPathUtil.GetIconPath(itemCfg.res,"png");
  110. _ui.m_consumeTxt.text = consumeText;
  111. break;
  112. case 3:
  113. break;
  114. default:
  115. break;
  116. }
  117. _ui.m_t0.Play();
  118. if (gameResult)
  119. {
  120. _ui.m_failTxt.visible = false;
  121. _ui.m_success.visible = true ;
  122. _ui.m_effectFail.visible = false;
  123. _ui.m_effectSucces.visible = true;
  124. _ui.m_resultTxt.text = "通关奖励";
  125. _ui.m_resultTitle.url = "ui://MiniGame/shengli_bt";
  126. UpdateStar();
  127. }
  128. else
  129. {
  130. _ui.m_failTxt.visible = true;
  131. _ui.m_success.visible = false;
  132. _ui.m_effectSucces.visible = false;
  133. _ui.m_effectFail.visible = true;
  134. _ui.m_resultTxt.text = "失败奖励";
  135. _ui.m_resultTitle.url = "ui://MiniGame/shibai_bt";
  136. }
  137. _ui.m_resultTitle.visible = false;
  138. _ui.m_bg.visible = false;
  139. activityGameDate = ActivityOpenCfgArray.Instance.GetCfgsBytype(ConstLimitTimeActivityType.ActLimitStlyc);
  140. }
  141. private void UpdateStar()
  142. {
  143. int starNum = 0;
  144. for (int i = CustemsNum.Count - 1; i >= 0; i--)
  145. {
  146. if (timeResult <= CustemsNum[i])
  147. {
  148. starNum += 1;
  149. }
  150. }
  151. switch(starNum)
  152. {
  153. case 1:
  154. _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star";
  155. _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star_grey";
  156. _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star_grey";
  157. break;
  158. case 2:
  159. _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star";
  160. _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star";
  161. _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star_grey";
  162. break;
  163. case 3:
  164. _ui.m_star1.url = "ui://MiniGame/tb_zx_pt_star";
  165. _ui.m_star2.url = "ui://MiniGame/tb_zx_pt_star";
  166. _ui.m_star3.url = "ui://MiniGame/tb_zx_pt_star";
  167. break;
  168. default:
  169. _ui.m_star1.visible = false;
  170. _ui.m_star2.visible = false;
  171. _ui.m_star3.visible = false;
  172. break;
  173. }
  174. }
  175. protected override void OnHide()
  176. {
  177. base.OnHide();
  178. }
  179. private void OnClickExit()
  180. {
  181. this.Hide();
  182. ViewManager.Hide(viewJumpView[gameType]);
  183. ViewManager.Show<GameStartView>();
  184. EventAgent.DispatchEvent(ConstMessage.TZFE_GAME_UPDATE);
  185. }
  186. private async void OnClickAgain()
  187. {
  188. this.Hide();
  189. var result = await MiniGameProxy.ReqMiniGameStart(gameID, gameType, activityGameDate[0].id);
  190. if (!result)
  191. {
  192. ViewManager.Hide(viewJumpView[gameType]);
  193. return;
  194. }
  195. ViewManager.Show(viewJumpView[gameType],new object[] { gameID });
  196. }
  197. private void RenderRewardList(int index,GObject obj)
  198. {
  199. UI_rewardItem item = UI_rewardItem.Proxy(obj);
  200. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MiniGameDateManager.Instance.itemList[index].ConfigId);
  201. if (itemCfg != null)
  202. {
  203. item.m_icon.url = ResPathUtil.GetIconPath(itemCfg.res,"png");
  204. item.m_Count.text = MiniGameDateManager.Instance.itemList[index].Count.ToString();
  205. }
  206. UI_rewardItem.ProxyEnd();
  207. }
  208. private async void ReqResultReward()
  209. {
  210. var result = await MiniGameProxy.ReqMiniGameEnd(gameID, gameType, timeResult, gameResult, activityGameDate[0].id,false);
  211. if (!result)
  212. {
  213. this.Hide();
  214. ViewManager.Hide(viewJumpView[gameType]);
  215. return;
  216. }
  217. _ui.m_rewardList.numItems = MiniGameDateManager.Instance.itemList.Count;
  218. }
  219. }
  220. }