LeagueAnswerView.cs 5.5 KB

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