LeagueAnswerView.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. using System.Text.RegularExpressions;
  2. using cfg.GfgCfg;
  3. using ET;
  4. using FairyGUI;
  5. using Hutool;
  6. using UI.League;
  7. using UnityEngine;
  8. namespace GFGGame
  9. {
  10. //联盟答题
  11. public class LeagueAnswerView : BaseWindow
  12. {
  13. private UI_LeagueAnswerUI _ui;
  14. public override void Dispose()
  15. {
  16. if (_ui != null)
  17. {
  18. _ui.Dispose();
  19. _ui = null;
  20. }
  21. base.Dispose();
  22. }
  23. protected override void OnInit()
  24. {
  25. base.OnInit();
  26. packageName = UI_LeagueAnswerUI.PACKAGE_NAME;
  27. _ui = UI_LeagueAnswerUI.Create();
  28. this.viewCom = _ui.target;
  29. this.viewCom.Center();
  30. this.modal = true;
  31. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  32. _ui.m_btnClose.onClick.Add(Hide);
  33. _ui.m_btnRank.onClick.Add(OnBtnRankClick);
  34. _ui.m_btnAnswer.onClick.Add(OnBtnAnswerClick);
  35. _ui.m_btnTeaParty.onClick.Add(OnBtnTeaPartyClick);
  36. }
  37. protected override void AddEventListener()
  38. {
  39. base.AddEventListener();
  40. }
  41. protected override void OnShown()
  42. {
  43. base.OnShown();
  44. if (this.viewData != null)
  45. {
  46. var index = (int)this.viewData;
  47. _ui.m_c1.selectedIndex = index;
  48. var openCfg = CommonDataManager.Tables.TblTeapartyOpenCfg.GetOrDefault(LeagueDataManager.Instance.TeaPartyId);
  49. if (openCfg != null) {
  50. _ui.m_txtPlayRule.text = CommonDataManager.Tables.TblTextDescCfg.GetOrDefault(300023).Text + openCfg.Preview;
  51. }
  52. _ui.m_btnTeaParty.visible = LeagueDataManager.Instance.TeaPartyStatus != 0;
  53. }
  54. else {
  55. _ui.m_c1.selectedIndex = 0;
  56. UpdateView();
  57. }
  58. }
  59. protected override void OnHide()
  60. {
  61. base.OnHide();
  62. Timers.inst.Remove(UpdateTime);
  63. }
  64. protected override void RemoveEventListener()
  65. {
  66. base.RemoveEventListener();
  67. }
  68. private void OnBtnRankClick()
  69. {
  70. ViewManager.Show<LeagueAnswerRankView>();
  71. }
  72. private void OnBtnAnswerClick()
  73. {
  74. Hide();
  75. ViewManager.Show<LeagueAnsweringView>();
  76. }
  77. private void OnBtnTeaPartyClick()
  78. {
  79. var roleTeapartyInfo = LeagueDataManager.Instance.RoleTeapartyInfo;
  80. if (LeagueDataManager.Instance.TeaPartyStatus == LeagueTeaPartyStatus.YesGo && roleTeapartyInfo.IsNoActDayEnterLeague)
  81. {
  82. PromptController.Instance.ShowFloatTextPrompt("该活动暂未开启");
  83. return;
  84. }
  85. Hide();
  86. if (roleTeapartyInfo.IsQuitTeaParty && roleTeapartyInfo.LastOpenCfgId != 0 && roleTeapartyInfo.LastOpenCfgId == LeagueDataManager.Instance.TeaPartyId) {
  87. PromptController.Instance.ShowFloatTextPrompt("该玩法不可以重复参加哦");
  88. return;
  89. }
  90. if (LeagueDataManager.Instance.TeaPartyStatus == LeagueTeaPartyStatus.YesGo && !LeagueDataManager.Instance.RoleTeapartyInfo.IsComplete && LeagueDataManager.Instance.RoleTeapartyInfo.Status)
  91. ViewManager.Show<LeagueTeaPartyShowView>();
  92. else
  93. ViewManager.Show<LeagueTeaPartyView>();
  94. }
  95. private void UpdateView()
  96. {
  97. OtherRoleInfoData lastNO1 =
  98. LeagueDataManager.Instance.GetMemberRoleInfo(LeagueDataManager.Instance.LeagueData.LastWeekAnswerNO1Id);
  99. _ui.m_comHead.target.visible = false;
  100. if (lastNO1 != null)
  101. {
  102. ItemCfg headCfg =
  103. CommonDataManager.Tables.TblItemCfg.GetOrDefault(lastNO1.headId == 0 ? ConstItemID.HEADID : lastNO1.headId);
  104. _ui.m_comHead.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.Res);
  105. _ui.m_comHead.target.visible = true;
  106. }
  107. _ui.m_txtName.text = lastNO1 == null ? "虚位以待" : lastNO1.roleName;
  108. _ui.m_txtRule.text = CommonDataManager.Tables.TblTextDescCfg.GetOrDefault(300008).Text;
  109. if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
  110. LeagueQuestionStatus.End)
  111. {
  112. _ui.m_btnAnswer.visible = false;
  113. _ui.m_txtTime.visible = true;
  114. Timers.inst.Add(1, 0, UpdateTime);
  115. }
  116. else
  117. {
  118. _ui.m_btnAnswer.visible = true;
  119. _ui.m_txtTime.visible = false;
  120. }
  121. }
  122. private void UpdateTime(object param)
  123. {
  124. int curIndex = DateUtil.GetNearestStartTimeIndex( CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionCloseTime);
  125. long curTime = TimeHelper.ServerNow();
  126. var questionStartTimeStr = CommonDataManager.Tables.TblGlobalCfg.LeagueQuestionStartTime[curIndex];
  127. long endTime =TimeHelper.ServerNow() > TimeUtil.GetCurDayTime(questionStartTimeStr)
  128. ? TimeUtil.GetNextTime(questionStartTimeStr)
  129. : TimeUtil.GetCurDayTime(questionStartTimeStr);
  130. if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) >
  131. LeagueQuestionStatus.End
  132. || endTime - curTime < 0)
  133. {
  134. Timers.inst.Remove(UpdateTime);
  135. return;
  136. }
  137. _ui.m_txtTime.text = string.Format("{0}后开启", TimeUtil.FormattingTimeTo_HHmmss((endTime - curTime)));
  138. }
  139. }
  140. }