mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-16 16:34:41 +01:00
119 lines
2.9 KiB
C#
119 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace MoleMole
|
|
{
|
|
public class LevelTutorialHelperPlugin : BaseActorPlugin
|
|
{
|
|
[HideInInspector]
|
|
public readonly LevelActor levelActor;
|
|
|
|
public List<BaseLevelTutorial> tutorialList;
|
|
|
|
public LevelTutorialHelperPlugin(LevelActor levelActor)
|
|
{
|
|
this.levelActor = levelActor;
|
|
tutorialList = new List<BaseLevelTutorial>();
|
|
int levelId = Singleton<LevelScoreManager>.Instance.LevelId;
|
|
List<int> unFinishedTutorialIDList = Singleton<LevelTutorialModule>.Instance.GetUnFinishedTutorialIDList(levelId);
|
|
if (unFinishedTutorialIDList == null)
|
|
{
|
|
return;
|
|
}
|
|
foreach (int item in unFinishedTutorialIDList)
|
|
{
|
|
tutorialList.Add(GetTutorialById(item));
|
|
}
|
|
}
|
|
|
|
private BaseLevelTutorial GetTutorialById(int tutorialId)
|
|
{
|
|
LevelTutorialMetaData levelTutorialMetaDataByKey = LevelTutorialMetaDataReader.GetLevelTutorialMetaDataByKey(tutorialId);
|
|
switch (levelTutorialMetaDataByKey.tutorialId)
|
|
{
|
|
case 10001:
|
|
return new LevelTutorialPlayerTeaching(this, levelTutorialMetaDataByKey);
|
|
case 10002:
|
|
return new LevelTutorialUltraAttack(this, levelTutorialMetaDataByKey);
|
|
case 10003:
|
|
return new LevelTutorialBranchAttack(this, levelTutorialMetaDataByKey);
|
|
case 10004:
|
|
return new LevelTutorialEliteAttack(this, levelTutorialMetaDataByKey);
|
|
case 10005:
|
|
return new LevelTutorialSwapAttack(this, levelTutorialMetaDataByKey);
|
|
case 10006:
|
|
return new LevelTutorialSwapAndRestrain(this, levelTutorialMetaDataByKey);
|
|
case 10007:
|
|
return new LevelTutorialMonsterBlock(this, levelTutorialMetaDataByKey);
|
|
case 10008:
|
|
return new LevelTutorialMonsterTeleport(this, levelTutorialMetaDataByKey);
|
|
case 10009:
|
|
return new LevelTutorialMonsterShield(this, levelTutorialMetaDataByKey);
|
|
case 10010:
|
|
return new LevelTutorialMonsterRobotDodge(this, levelTutorialMetaDataByKey);
|
|
default:
|
|
throw new Exception("Invalid Type or State!");
|
|
}
|
|
}
|
|
|
|
public override void OnAdded()
|
|
{
|
|
foreach (BaseLevelTutorial tutorial in tutorialList)
|
|
{
|
|
tutorial.OnAdded();
|
|
}
|
|
}
|
|
|
|
public override bool OnEvent(BaseEvent evt)
|
|
{
|
|
bool flag = false;
|
|
foreach (BaseLevelTutorial tutorial in tutorialList)
|
|
{
|
|
if (tutorial.active)
|
|
{
|
|
flag |= tutorial.OnEvent(evt);
|
|
}
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
public override bool OnPostEvent(BaseEvent evt)
|
|
{
|
|
bool flag = false;
|
|
foreach (BaseLevelTutorial tutorial in tutorialList)
|
|
{
|
|
if (tutorial.active)
|
|
{
|
|
flag |= tutorial.OnPostEvent(evt);
|
|
}
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
public override bool ListenEvent(BaseEvent evt)
|
|
{
|
|
bool flag = false;
|
|
foreach (BaseLevelTutorial tutorial in tutorialList)
|
|
{
|
|
if (tutorial.active)
|
|
{
|
|
flag |= tutorial.ListenEvent(evt);
|
|
}
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
public override void Core()
|
|
{
|
|
foreach (BaseLevelTutorial tutorial in tutorialList)
|
|
{
|
|
if (tutorial.active)
|
|
{
|
|
tutorial.Core();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|