246 lines
6.0 KiB
C#
246 lines
6.0 KiB
C#
using Gameplay.Level;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Gameplay.FirstTimeFlow
|
|
{
|
|
/// <summary>
|
|
/// 强制流程步骤基类
|
|
/// </summary>
|
|
public abstract class FirstTimeFlowStep
|
|
{
|
|
protected Action callbackAction;
|
|
|
|
public E_FirstTimeFlow FirstTimeFlow { get; private set; }
|
|
|
|
public FirstTimeFlowStep(E_FirstTimeFlow firstTimeFlow)
|
|
{
|
|
FirstTimeFlow = firstTimeFlow;
|
|
|
|
callbackAction = FirstTimeFlowManager.Instance.StartNextStep;
|
|
}
|
|
|
|
public abstract void Run();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 播放开始PV
|
|
/// </summary>
|
|
public sealed class PlayStartVideoStep : FirstTimeFlowStep
|
|
{
|
|
/// <summary>
|
|
/// 创建播放PV步骤
|
|
/// </summary>
|
|
/// <param name="videoPath">视频路径</param>
|
|
/// <returns></returns>
|
|
public static PlayStartVideoStep Create()
|
|
{
|
|
return new PlayStartVideoStep();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 开始PV路径
|
|
/// </summary>
|
|
private const string START_PV_PATH = "Assets/Video/LevelIntro/LevelIntro_PV.mp4";
|
|
|
|
private PlayStartVideoStep():base(E_FirstTimeFlow.StarVideo)
|
|
{
|
|
|
|
}
|
|
|
|
public override async void Run()
|
|
{
|
|
await UI_PVAnimaPlayController.Open(START_PV_PATH, callbackAction);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 进入剧情1关卡
|
|
/// </summary>
|
|
public sealed class EnterStoryLevel1Step : FirstTimeFlowStep
|
|
{
|
|
/// <summary>
|
|
/// 创建进入剧情关卡步骤
|
|
/// </summary>
|
|
/// <param name="videoPath">视频路径</param>
|
|
/// <returns></returns>
|
|
public static EnterStoryLevel1Step Create()
|
|
{
|
|
return new EnterStoryLevel1Step();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 剧情关卡1id
|
|
/// </summary>
|
|
private const int LEVEL_ID = 300001;
|
|
|
|
private EnterStoryLevel1Step() : base(E_FirstTimeFlow.StoryLevel_1)
|
|
{
|
|
|
|
}
|
|
|
|
public override void Run()
|
|
{
|
|
LevelManager.Instance.TryEnterLevel(LEVEL_ID, null, null, true);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 进入剧情2关卡
|
|
/// </summary>
|
|
public sealed class EnterStoryLevel2Step : FirstTimeFlowStep
|
|
{
|
|
/// <summary>
|
|
/// 创建进入剧情关卡步骤
|
|
/// </summary>
|
|
/// <param name="videoPath">视频路径</param>
|
|
/// <returns></returns>
|
|
public static EnterStoryLevel2Step Create()
|
|
{
|
|
return new EnterStoryLevel2Step();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 剧情关卡1id
|
|
/// </summary>
|
|
private const int LEVEL_ID = 300002;
|
|
|
|
private EnterStoryLevel2Step() : base(E_FirstTimeFlow.StoryLevel_2)
|
|
{
|
|
|
|
}
|
|
|
|
public override void Run()
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 进入战斗关卡1
|
|
/// </summary>
|
|
public sealed class EnterFightLevel1Step : FirstTimeFlowStep
|
|
{
|
|
/// <summary>
|
|
/// 创建进入战斗关卡步骤
|
|
/// </summary>
|
|
/// <param name="videoPath">视频路径</param>
|
|
/// <returns></returns>
|
|
public static EnterFightLevel1Step Create()
|
|
{
|
|
return new EnterFightLevel1Step();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 战斗关卡1id
|
|
/// </summary>
|
|
private const int LEVEL_ID = 100001;
|
|
|
|
private EnterFightLevel1Step() : base(E_FirstTimeFlow.FightLevel_1)
|
|
{
|
|
|
|
}
|
|
|
|
public override void Run()
|
|
{
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 战斗关卡2编队
|
|
/// </summary>
|
|
public sealed class FightLevel2EditTeamStep : FirstTimeFlowStep
|
|
{
|
|
/// <summary>
|
|
/// 创建进入战斗关卡步骤
|
|
/// </summary>
|
|
/// <param name="videoPath">视频路径</param>
|
|
/// <returns></returns>
|
|
public static FightLevel2EditTeamStep Create()
|
|
{
|
|
return new FightLevel2EditTeamStep();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关卡id
|
|
/// </summary>
|
|
private const int LEVEL_ID = 100002;
|
|
|
|
private FightLevel2EditTeamStep():base( E_FirstTimeFlow.FightLevel_2_EditTeam)
|
|
{
|
|
|
|
}
|
|
|
|
public override void Run()
|
|
{
|
|
GameStateManager.Instance.ChangeState(new GameStateMainScene(false, false, async () =>
|
|
{
|
|
await JumpToManager.JumpFuncAsync(cfg.JumpFuncType.TeamInfoByGuide, LEVEL_ID);
|
|
}));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 进入剧情3关卡
|
|
/// </summary>
|
|
public sealed class EnterStoryLevel3Step : FirstTimeFlowStep
|
|
{
|
|
/// <summary>
|
|
/// 创建进入剧情关卡步骤
|
|
/// </summary>
|
|
/// <param name="videoPath">视频路径</param>
|
|
/// <returns></returns>
|
|
public static EnterStoryLevel3Step Create()
|
|
{
|
|
return new EnterStoryLevel3Step();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 剧情关卡1id
|
|
/// </summary>
|
|
private const int LEVEL_ID = 300003;
|
|
|
|
private EnterStoryLevel3Step() : base(E_FirstTimeFlow.StoryLevel_3)
|
|
{
|
|
|
|
}
|
|
|
|
public override void Run()
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 播放结束PV
|
|
/// </summary>
|
|
public sealed class PlayEndVideoStep : FirstTimeFlowStep
|
|
{
|
|
/// <summary>
|
|
/// 创建播放PV步骤
|
|
/// </summary>
|
|
/// <param name="videoPath">视频路径</param>
|
|
/// <returns></returns>
|
|
public static PlayEndVideoStep Create()
|
|
{
|
|
return new PlayEndVideoStep();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 结束PV路径
|
|
/// </summary>
|
|
private const string END_PV_PATH = "Assets/Video/LevelIntro/LevelIntro_PV.mp4";
|
|
|
|
private PlayEndVideoStep() : base(E_FirstTimeFlow.EndVideo)
|
|
{
|
|
|
|
}
|
|
|
|
public override async void Run()
|
|
{
|
|
await UI_PVAnimaPlayController.Open(END_PV_PATH, callbackAction);
|
|
}
|
|
}
|
|
} |