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

143 lines
3.0 KiB
C#
Raw Normal View History

2025-03-27 14:46:41 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Gameplay.FirstTimeFlow
{
/// <summary>
/// 强制流程步骤基类
/// </summary>
public abstract class FirstTimeFlowStep
{
}
/// <summary>
/// 播放PV
/// </summary>
public sealed class PlayVideoStep : FirstTimeFlowStep
{
/// <summary>
/// 创建播放PV步骤
/// </summary>
/// <param name="videoPath">视频路径</param>
/// <returns></returns>
public static PlayVideoStep Create(string videoPath)
{
2025-03-27 16:47:05 +08:00
return new PlayVideoStep(videoPath);
}
/// <summary>
/// 视频路径
/// </summary>
private string videoPath;
private PlayVideoStep()
{
}
private PlayVideoStep(string path)
{
videoPath = path;
}
public async void Run()
{
await UI_PVAnimaPlayController.Open(videoPath);
}
}
/// <summary>
/// 进入剧情关卡
/// </summary>
public sealed class EnterStoryLevelStep : FirstTimeFlowStep
{
/// <summary>
/// 创建进入剧情关卡步骤
/// </summary>
/// <param name="videoPath">视频路径</param>
/// <returns></returns>
public static EnterStoryLevelStep Create(int levelId)
{
return new EnterStoryLevelStep(levelId);
}
/// <summary>
/// 关卡id
/// </summary>
private int levelId;
private EnterStoryLevelStep()
{
}
private EnterStoryLevelStep(int id)
{
levelId = id;
}
}
/// <summary>
/// 进入战斗关卡
/// </summary>
public sealed class EnterFightLevelStep : FirstTimeFlowStep
{
/// <summary>
/// 创建进入战斗关卡步骤
/// </summary>
/// <param name="videoPath">视频路径</param>
/// <returns></returns>
public static EnterFightLevelStep Create(int levelId)
{
return new EnterFightLevelStep(levelId);
}
/// <summary>
/// 关卡id
/// </summary>
private int levelId;
private EnterFightLevelStep()
{
}
private EnterFightLevelStep(int id)
{
levelId = id;
}
}
/// <summary>
/// 编队
/// </summary>
public sealed class EditTeamStep : FirstTimeFlowStep
{
/// <summary>
/// 创建进入战斗关卡步骤
/// </summary>
/// <param name="videoPath">视频路径</param>
/// <returns></returns>
public static EditTeamStep Create(int levelId)
{
return new EditTeamStep(levelId);
}
/// <summary>
/// 关卡id
/// </summary>
private int levelId;
private EditTeamStep()
{
}
private EditTeamStep(int id)
{
levelId = id;
2025-03-27 14:46:41 +08:00
}
}
}