CapersProject/Assets/02.Scripts/Ui/Tycoon/TutorialLink.cs

73 lines
2.0 KiB
C#
Raw Normal View History

2024-12-17 07:42:47 +00:00
using System;
using System.Collections.Generic;
using UnityEngine;
namespace BlueWater
{
[Serializable]
public class TutorialLink
{
[field: SerializeField]
public string TutorialName { get; private set; }
[field: SerializeField]
public TutorialPageToggle TutorialPageToggle { get; private set; }
[field: SerializeField]
public List<TycoonTutorialPopupUi> TycoonTutorialPopupUis { get; private set; }
[field: SerializeField]
public int CurrentPageIndex { get; private set; }
public TutorialLink(string tutorialName, TutorialPageToggle tutorialPageToggle, List<TycoonTutorialPopupUi> 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));
}
}
}