using System; using System.Collections.Generic; using UnityEngine; namespace DDD { [Serializable] public class TutorialLink { [field: SerializeField] public string TutorialName { get; private set; } [field: SerializeField] public TutorialPageToggle TutorialPageToggle { get; private set; } [field: SerializeField] public List TycoonTutorialPopupUis { get; private set; } [field: SerializeField] public int CurrentPageIndex { get; private set; } public TutorialLink(string tutorialName, TutorialPageToggle tutorialPageToggle, List tycoonTutorialPopupUis) { TutorialName = tutorialName; TutorialPageToggle = tutorialPageToggle; TycoonTutorialPopupUis = tycoonTutorialPopupUis; } public void OnToggle(bool isOn) { if (!TutorialPageToggle) return; TutorialPageToggle.OnToggle(isOn); if (isOn) { OpenPage(0); } else { CloseAllPage(); } } public void OpenPage(int pageIndex) { CurrentPageIndex = Mathf.Clamp(pageIndex, 0, TycoonTutorialPopupUis.Count - 1); TycoonTutorialPopupUis[CurrentPageIndex].Open(); } public void ClosePage(int pageIndex) { TycoonTutorialPopupUis[CurrentPageIndex].Close(); } public void CloseAllPage() { foreach (TycoonTutorialPopupUi tycoonTutorialPopupUi in TycoonTutorialPopupUis) { if (!tycoonTutorialPopupUi.IsOpened) continue; tycoonTutorialPopupUi.Close(); } } public void MovePage(bool moveNext) { ClosePage(CurrentPageIndex); OpenPage(CurrentPageIndex + (moveNext ? 1 : -1)); } } }