Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

86 lignes
2.3 KiB

  1. using System;
  2. using CIG;
  3. using CIG.Extensions;
  4. using CIG.Translation;
  5. using CIGEnums;
  6. using SUISSEngine;
  7. using UnityEngine;
  8. public class QuestsPopupView : PopupBaseView
  9. {
  10. protected void OnDestroy()
  11. {
  12. this._tabView.TabIndexChangedEvent -= this.OnTabIndexChangedEvent;
  13. }
  14. public override void Init()
  15. {
  16. base.Init();
  17. this._tabView.TabIndexChangedEvent += this.OnTabIndexChangedEvent;
  18. }
  19. public void SwitchTab(QuestsMenuTabs menuTab)
  20. {
  21. if (this._activeQuestTabView != null)
  22. {
  23. this._activeQuestTabView.DeinitView();
  24. this._activeQuestTabView.gameObject.SetActive(false);
  25. }
  26. this._tabView.ActiveTabIndex = (int)menuTab;
  27. this.CancelInvoke(new Action(this.UpdateTimer));
  28. this._remainingTimeSection.alpha = 0f;
  29. if (menuTab != QuestsMenuTabs.DailyQuests)
  30. {
  31. if (menuTab != QuestsMenuTabs.OngoingQuests)
  32. {
  33. UnityEngine.Debug.LogWarning("[QuestsPopupView] No content for tab " + menuTab + ", redirecting to OngoingQuests tab");
  34. this._activeQuestTabView = this._ongoingQuestsView;
  35. }
  36. else
  37. {
  38. this._activeQuestTabView = this._ongoingQuestsView;
  39. }
  40. }
  41. else
  42. {
  43. this._activeQuestTabView = this._dailyQuestsView;
  44. this._remainingTimeSection.alpha = 1f;
  45. this.InvokeRepeating(new Action(this.UpdateTimer), 0f, 1f, true);
  46. }
  47. this._activeQuestTabView.gameObject.SetActive(true);
  48. this._activeQuestTabView.InitView();
  49. this._titleText.LocalizedString = this._tabView.GetLocalizedTitle(this._tabView.ActiveTabIndex);
  50. }
  51. private void OnTabIndexChangedEvent(int oldIndex, int newIndex)
  52. {
  53. this.SwitchTab((QuestsMenuTabs)newIndex);
  54. }
  55. private void UpdateTimer()
  56. {
  57. this._remainingTimeText.LocalizedString = Localization.TimeSpan(TimeSpan.FromSeconds((double)Singleton<Daily>.Instance.CurrentDay.CalculateTimeRemaining()), false);
  58. }
  59. [SerializeField]
  60. private LocalizedText _titleText;
  61. [SerializeField]
  62. private TabView _tabView;
  63. [SerializeField]
  64. private CanvasGroup _remainingTimeSection;
  65. [SerializeField]
  66. private LocalizedText _remainingTimeText;
  67. [Header("Tab Contents")]
  68. [SerializeField]
  69. private OngoingQuestsView _ongoingQuestsView;
  70. [SerializeField]
  71. private DailyQuestsView _dailyQuestsView;
  72. private QuestTabContentView _activeQuestTabView;
  73. }