NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/FirstTimeFlow/FirstTimeFlowManager.cs

77 lines
2.5 KiB
C#

using Gameplay.HeroSelect;
using Gameplay.Net;
using PhxhSDK;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Gameplay.FirstTimeFlow
{
/// <summary>
/// 新号强制流程管理器
/// </summary>
public sealed class FirstTimeFlowManager : Singlenton<FirstTimeFlowManager>, IInitable
{
/// <summary>
/// 开始PV路径
/// </summary>
private const string START_PV_PATH = "Assets/Video/LevelIntro/LevelIntro_PV.mp4";
/// <summary>
/// 结束PV路径
/// </summary>
private const string END_PV_PATH = "Assets/Video/LevelIntro/LevelIntro_PV.mp4";
/// <summary>
/// 强制流程步骤链表
/// </summary>
private LinkedList<FirstTimeFlowStep> linkStep;
/// <summary>
/// 当前步骤索引
/// </summary>
private int curIndex;
/// <summary>
/// 是否强制流程中
/// </summary>
public bool IsFlowing;
public void Init()
{
curIndex = 0;
linkStep = new LinkedList<FirstTimeFlowStep>();
}
public void Release()
{
}
/// <summary>
/// 开始强制流程
/// </summary>
public void StartFirstTimeFlow()
{
int severFlowId = (int)Actor.Instance.Logic.GetCount((uint)NLDPB.LogicID.NoviceProcessId); // 服务器所在强制引导步骤id
if (severFlowId < (int)E_FirstTimeFlow.StarVideo)
linkStep.AddLast(PlayVideoStep.Create(START_PV_PATH)); // 开始PV
if (severFlowId < (int)E_FirstTimeFlow.StoryLevel_1)
linkStep.AddLast(EnterStoryLevelStep.Create(300001)); // 剧情1
if (severFlowId < (int)E_FirstTimeFlow.FightLevel_1)
linkStep.AddLast(EnterFightLevelStep.Create(100001)); // 特殊战斗1
if(severFlowId < (int)E_FirstTimeFlow.StoryLevel_2)
linkStep.AddLast(EnterStoryLevelStep.Create(300002)); // 剧情2
if (severFlowId < (int)E_FirstTimeFlow.SetTeam)
linkStep.AddLast(EditTeamStep.Create(100002)); // 特殊战斗2编队
if (severFlowId < (int)E_FirstTimeFlow.StoryLevel_3)
linkStep.AddLast(EditTeamStep.Create(300003)); // 剧情3
if (severFlowId < (int)E_FirstTimeFlow.EndVideo)
linkStep.AddLast(PlayVideoStep.Create(END_PV_PATH)); // 结束PV
}
}
}