73 lines
2.0 KiB
C#
73 lines
2.0 KiB
C#
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<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));
|
|
}
|
|
}
|
|
}
|