LeagueAnswerView.cs 4.0 KB

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