TimeTracingShowView.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using cfg.GfgCfg;
  5. using ET;
  6. using FairyGUI;
  7. using UI.CommonGame;
  8. using UI.TimeTracing;
  9. using UnityEngine;
  10. namespace GFGGame
  11. {
  12. public class TimeTracingShowView : BaseWindow
  13. {
  14. private UI_TimeTracingShowUI _ui;
  15. private List<int> suitIdList = new List<int>() { 201030, 201010, 202006 };
  16. private Dictionary<int, string> nameIconList = new Dictionary<int, string>()
  17. { [201030] = "dtfd", [201010] = "jldl", [202006] = "sszz" };
  18. private int SuitID = 201030;
  19. private int ChapterID;
  20. public override void Dispose()
  21. {
  22. base.Dispose();
  23. }
  24. protected override void OnInit()
  25. {
  26. base.OnInit();
  27. packageName = UI_TimeTracingShowUI.PACKAGE_NAME;
  28. _ui = UI_TimeTracingShowUI.Create();
  29. this.viewCom = _ui.target;
  30. isfullScreen = true;
  31. isReturnView = true;
  32. _ui.m_btnBack.onClick.Add(OnClickBtnBack);
  33. _ui.m_challgeBtn.onClick.Add(OnClickChallgeBtn);
  34. _ui.m_makeSuitBtn.target.onClick.Add(OnClickMakeSuitBtn);
  35. _ui.m_switchBtn.target.onClick.Add(OnClickSwitchBtn);
  36. _ui.m_ruleBtn.onClick.Add(RuleController.ShowRuleView);
  37. }
  38. protected override void AddEventListener()
  39. {
  40. base.AddEventListener();
  41. EventAgent.AddEventListener(ConstMessage.TIMETRACINGUPDATE, UpdateView);
  42. }
  43. protected override void RemoveEventListener()
  44. {
  45. base.RemoveEventListener();
  46. EventAgent.RemoveEventListener(ConstMessage.TIMETRACINGUPDATE, UpdateView);
  47. }
  48. protected override void OnShown()
  49. {
  50. base.OnShown();
  51. _ui.m_bg.url = ResPathUtil.GetBgImgPath("lrmj_bj");
  52. _ui.m_ruleBtn.data = 300029;
  53. UpdateView();
  54. RedDotController.Instance.SetComRedDot(_ui.m_switchBtn.target,
  55. TimeTracingDataManager.Instance.GetLevelRewardStatus() ||
  56. TimeTracingDataManager.Instance.GetAllChapterReward(), "", -200, -10);
  57. RedDotController.Instance.SetComRedDot(_ui.m_challgeBtn,
  58. TimeTracingDataManager.Instance.GetChapterIDRewardStatus(ChapterID), "", -100, 50);
  59. Timers.inst.AddUpdate(CheckGuide);
  60. }
  61. protected override void OnHide()
  62. {
  63. ReqSetData();
  64. base.OnHide();
  65. //DressUpObjUI dressUpObjUI = _ui.m_showSuit.data as DressUpObjUI;
  66. //if (dressUpObjUI != null)
  67. //{
  68. // dressUpObjUI.Dispose();
  69. //}
  70. Timers.inst.Remove(CheckGuide);
  71. Timers.inst.Remove(OnTimerUpDate);
  72. }
  73. private void OnTimerUpDate(object param = null)
  74. {
  75. DressUpObjUI dressUpObjUI = (DressUpObjUI)param;
  76. dressUpObjUI.UpdateWrapper(_ui.m_showSuit);
  77. }
  78. private void UpdateView()
  79. {
  80. SuitID = TimeTracingDataManager.SuitID;
  81. _ui.m_suitName.text = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(SuitID).Name;
  82. CheckChapterID();
  83. _ui.m_nameIcon.url = string.Format("ui://TimeTracing/{0}", nameIconList[SuitID]);
  84. if (true)
  85. {
  86. if (GameGlobal.ShowPainting)
  87. {
  88. SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(SuitID);
  89. //_ui.m_loaCard.url = ResPathUtil.GetLiHuiPath(suitCfg.Illustration);
  90. }
  91. else
  92. {
  93. DressUpObjUI dressUpObjUI;
  94. if (_ui.m_showSuit.data == null)
  95. {
  96. _ui.m_showSuit.data = new DressUpObjUI("SceneSuitFoster");
  97. }
  98. bool showAction = SuitCfgArray.Instance.CheckSuitHasAction(SuitID) &&
  99. DressUpMenuSuitDataManager.CheckSuitHasActionRes(SuitID);
  100. dressUpObjUI = _ui.m_showSuit.data as DressUpObjUI;
  101. // 改为异步加载
  102. dressUpObjUI.ResetSceneObjAsync(100, false, true, null, false, (go) =>
  103. {
  104. if (go != null)
  105. {
  106. dressUpObjUI.dressUpObj.PutOnSuitCfg(SuitID, showAction,
  107. new int[] { ConstDressUpItemType.BEI_JING }, false, false);
  108. Timers.inst.Add(1f, 1, OnTimerUpDate, dressUpObjUI);
  109. //dressUpObjUI.UpdateWrapper(_ui.m_showSuit);
  110. }
  111. else
  112. {
  113. Debug.LogError("场景对象加载失败");
  114. }
  115. });
  116. }
  117. }
  118. }
  119. private async void OnClickChallgeBtn()
  120. {
  121. await TimeTracingSProxy.ReqGetMaxLevelInfo(ChapterID);
  122. await TimeTracingSProxy.ReqGetSuitRank(SuitID);
  123. ViewManager.Show<TimeTracingLevelView>(new object[] { ChapterID, SuitID });
  124. }
  125. private void OnClickMakeSuitBtn()
  126. {
  127. ViewManager.Show<ClothingSyntheticView>(new object[] { SuitID, 0 }, false, false);
  128. }
  129. private void OnClickShowSuitBtn()
  130. {
  131. if (SuitID == 0)
  132. {
  133. return;
  134. }
  135. int suitId = SuitID;
  136. int _suitTypeId = 0;
  137. for (int i = 0; i < CommonDataManager.Tables.TblSuitGuideMenuCfg.DataList.Count; i++)
  138. {
  139. // string[] suitIds = SuitGuideMenuCfgArray.Instance.dataArray[i].suitIds.Split(';');
  140. string[] suitIds = CommonDataManager.Tables.TblSuitGuideMenuCfg.DataList[i].SuitIds.ToArray();
  141. if (Array.IndexOf(suitIds, suitId.ToString()) >= 0)
  142. {
  143. _suitTypeId = CommonDataManager.Tables.TblSuitGuideMenuCfg.DataList[i].Id;
  144. break;
  145. }
  146. }
  147. ViewManager.Show<SuitShowView>(new object[] { _suitTypeId, suitId, new List<int>() { suitId }, false });
  148. }
  149. private void OnClickSwitchBtn()
  150. {
  151. ViewManager.Show<TimeTracingSwitchView>();
  152. }
  153. private void OnClickBtnBack()
  154. {
  155. ViewManager.GoBackFrom(typeof(TimeTracingShowView).FullName);
  156. }
  157. private async void ReqSetData()
  158. {
  159. await TimeTracingSProxy.ReqSetDataRecord(SuitID);
  160. }
  161. private void CheckChapterID()
  162. {
  163. List<ActivityOpenCfg> activityList =
  164. CommonDataManager.Tables.TblActivityOpenCfg.DataList.Where(a => a.Type == 21).ToList();
  165. foreach (var item in activityList)
  166. {
  167. if (item.Params1[0] == SuitID)
  168. {
  169. ChapterID = item.Params1[0];
  170. break;
  171. }
  172. }
  173. }
  174. private void CheckGuide(object param)
  175. {
  176. GRoot.inst.touchable = true;
  177. if (GuideDataManager.IsGuideFinish("TimeTracingShowView") <= 0)
  178. UpdateCheckGuide(null);
  179. else
  180. Timers.inst.Remove(CheckGuide);
  181. }
  182. protected void UpdateCheckGuide(object param)
  183. {
  184. if (!ViewManager.CheckIsTopView(this.viewCom)) return;
  185. GuideController.TryGuide(_ui.m_challgeBtn, "TimeTracingShowView", 4, "进入副本。");
  186. GuideController.TryGuide(_ui.m_switchBtn.target, "TimeTracingShowView", 7, "点击选择副本。", -1, true, 0, false,
  187. false, true);
  188. GuideController.TryGuide(_ui.m_makeSuitBtn.target, "TimeTracingShowView", 10, "前往合成套装。", -1, true, 0, false,
  189. false, true);
  190. GuideController.TryCompleteGuide("TimeTracingShowView", 10);
  191. }
  192. protected override void TryCompleteGuide()
  193. {
  194. base.TryCompleteGuide();
  195. GuideController.TryCompleteGuideIndex("TimeTracingShowView", 10);
  196. GuideController.TryCompleteGuide("TimeTracingShowView", 10);
  197. }
  198. }
  199. }