LeagueAnswerView.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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. }
  35. protected override void AddEventListener()
  36. {
  37. base.AddEventListener();
  38. }
  39. protected override void OnShown()
  40. {
  41. base.OnShown();
  42. if (this.viewData != null)
  43. {
  44. var index = (int)this.viewData;
  45. _ui.m_c1.selectedIndex = index;
  46. var openCfg = TeapartyOpenCfgArray.Instance.GetCfg(LeagueDataManager.Instance.TeaPartyId);
  47. _ui.m_txtPlayRule.text = TextDescCfgArray.Instance.GetCfg(300023).text + openCfg.preview;
  48. }
  49. else {
  50. _ui.m_c1.selectedIndex = 0;
  51. UpdateView();
  52. }
  53. }
  54. protected override void OnHide()
  55. {
  56. base.OnHide();
  57. Timers.inst.Remove(UpdateTime);
  58. }
  59. protected override void RemoveEventListener()
  60. {
  61. base.RemoveEventListener();
  62. }
  63. private void OnBtnRankClick()
  64. {
  65. ViewManager.Show<LeagueAnswerRankView>();
  66. }
  67. private void OnBtnAnswerClick()
  68. {
  69. Hide();
  70. ViewManager.Show<LeagueAnsweringView>(null, new object[] { });
  71. }
  72. private void UpdateView()
  73. {
  74. OtherRoleInfoData lastNO1 =
  75. LeagueDataManager.Instance.GetMemberRoleInfo(LeagueDataManager.Instance.LeagueData.LastWeekAnswerNO1Id);
  76. _ui.m_comHead.target.visible = false;
  77. if (lastNO1 != null)
  78. {
  79. ItemCfg headCfg =
  80. ItemCfgArray.Instance.GetCfg(lastNO1.headId == 0 ? ConstItemID.HEADID : lastNO1.headId);
  81. _ui.m_comHead.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.res);
  82. _ui.m_comHead.target.visible = true;
  83. }
  84. _ui.m_txtName.text = lastNO1 == null ? "虚位以待" : lastNO1.roleName;
  85. _ui.m_txtRule.text = TextDescCfgArray.Instance.GetCfg(300008).text;
  86. if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) ==
  87. LeagueQuestionStatus.End)
  88. {
  89. _ui.m_btnAnswer.visible = false;
  90. _ui.m_txtTime.visible = true;
  91. Timers.inst.Add(1, 0, UpdateTime);
  92. }
  93. else
  94. {
  95. _ui.m_btnAnswer.visible = true;
  96. _ui.m_txtTime.visible = false;
  97. }
  98. }
  99. private void UpdateTime(object param)
  100. {
  101. int curIndex = DateUtil.GetNearestStartTimeIndex(GlobalCfgArray.globalCfg.leagueQuestionCloseTimeArr);
  102. long curTime = TimeHelper.ServerNow();
  103. var questionStartTimeStr = GlobalCfgArray.globalCfg.leagueQuestionStartTimeArr[curIndex];
  104. long endTime =TimeHelper.ServerNow() > TimeUtil.GetCurDayTime(questionStartTimeStr)
  105. ? TimeUtil.GetNextTime(questionStartTimeStr)
  106. : TimeUtil.GetCurDayTime(questionStartTimeStr);
  107. if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) >
  108. LeagueQuestionStatus.End
  109. || endTime - curTime < 0)
  110. {
  111. Timers.inst.Remove(UpdateTime);
  112. return;
  113. }
  114. _ui.m_txtTime.text = string.Format("{0}后开启", TimeUtil.FormattingTimeTo_HHmmss((endTime - curTime)));
  115. }
  116. }
  117. }