LeagueAnswerView.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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. _ui.m_txtPlayRule.text = TextDescCfgArray.Instance.GetCfg(300023).text + openCfg.preview;
  49. _ui.m_btnTeaParty.visible = LeagueDataManager.Instance.TeaPartyStatus != 0;
  50. }
  51. else {
  52. _ui.m_c1.selectedIndex = 0;
  53. UpdateView();
  54. }
  55. }
  56. protected override void OnHide()
  57. {
  58. base.OnHide();
  59. Timers.inst.Remove(UpdateTime);
  60. }
  61. protected override void RemoveEventListener()
  62. {
  63. base.RemoveEventListener();
  64. }
  65. private void OnBtnRankClick()
  66. {
  67. ViewManager.Show<LeagueAnswerRankView>();
  68. }
  69. private void OnBtnAnswerClick()
  70. {
  71. Hide();
  72. ViewManager.Show<LeagueAnsweringView>();
  73. }
  74. private void OnBtnTeaPartyClick()
  75. {
  76. var roleTeapartyInfo = LeagueDataManager.Instance.RoleTeapartyInfo;
  77. if (LeagueDataManager.Instance.TeaPartyStatus == LeagueTeaPartyStatus.YesGo && roleTeapartyInfo.IsNoActDayEnterLeague)
  78. {
  79. PromptController.Instance.ShowFloatTextPrompt("该活动暂未开启");
  80. return;
  81. }
  82. Hide();
  83. if (roleTeapartyInfo.IsQuitTeaParty && roleTeapartyInfo.LastOpenCfgId != 0 && roleTeapartyInfo.LastOpenCfgId == LeagueDataManager.Instance.TeaPartyId) {
  84. PromptController.Instance.ShowFloatTextPrompt("该玩法不可以重复参加哦");
  85. return;
  86. }
  87. if (LeagueDataManager.Instance.TeaPartyStatus == LeagueTeaPartyStatus.YesGo && !LeagueDataManager.Instance.RoleTeapartyInfo.IsComplete && LeagueDataManager.Instance.RoleTeapartyInfo.Status)
  88. ViewManager.Show<LeagueTeaPartyShowView>();
  89. else
  90. ViewManager.Show<LeagueTeaPartyView>();
  91. }
  92. private void UpdateView()
  93. {
  94. OtherRoleInfoData lastNO1 =
  95. LeagueDataManager.Instance.GetMemberRoleInfo(LeagueDataManager.Instance.LeagueData.LastWeekAnswerNO1Id);
  96. _ui.m_comHead.target.visible = false;
  97. if (lastNO1 != null)
  98. {
  99. ItemCfg headCfg =
  100. ItemCfgArray.Instance.GetCfg(lastNO1.headId == 0 ? ConstItemID.HEADID : lastNO1.headId);
  101. _ui.m_comHead.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.res);
  102. _ui.m_comHead.target.visible = true;
  103. }
  104. _ui.m_txtName.text = lastNO1 == null ? "虚位以待" : lastNO1.roleName;
  105. _ui.m_txtRule.text = TextDescCfgArray.Instance.GetCfg(300008).text;
  106. if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
  107. LeagueQuestionStatus.End)
  108. {
  109. _ui.m_btnAnswer.visible = false;
  110. _ui.m_txtTime.visible = true;
  111. Timers.inst.Add(1, 0, UpdateTime);
  112. }
  113. else
  114. {
  115. _ui.m_btnAnswer.visible = true;
  116. _ui.m_txtTime.visible = false;
  117. }
  118. }
  119. private void UpdateTime(object param)
  120. {
  121. int curIndex = DateUtil.GetNearestStartTimeIndex(GlobalCfgArray.globalCfg.leagueQuestionCloseTimeArr);
  122. long curTime = TimeHelper.ServerNow();
  123. var questionStartTimeStr = GlobalCfgArray.globalCfg.leagueQuestionStartTimeArr[curIndex];
  124. long endTime =TimeHelper.ServerNow() > TimeUtil.GetCurDayTime(questionStartTimeStr)
  125. ? TimeUtil.GetNextTime(questionStartTimeStr)
  126. : TimeUtil.GetCurDayTime(questionStartTimeStr);
  127. if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) >
  128. LeagueQuestionStatus.End
  129. || endTime - curTime < 0)
  130. {
  131. Timers.inst.Remove(UpdateTime);
  132. return;
  133. }
  134. _ui.m_txtTime.text = string.Format("{0}后开启", TimeUtil.FormattingTimeTo_HHmmss((endTime - curTime)));
  135. }
  136. }
  137. }