2024-05-27 15:39:03 +08:00
|
|
|
|
using cfg.GuideCfg;
|
2024-07-03 18:30:08 +08:00
|
|
|
|
using Code.Scripts.Gameplay.Game;
|
2024-05-27 15:39:03 +08:00
|
|
|
|
using Framework;
|
2024-07-02 19:29:18 +08:00
|
|
|
|
using Gameplay.Area;
|
2024-05-30 19:00:56 +08:00
|
|
|
|
using Gameplay.Level;
|
2024-07-05 16:14:23 +08:00
|
|
|
|
using Gameplay.Skill;
|
2024-07-02 20:17:07 +08:00
|
|
|
|
using Gameplay.Unit;
|
2024-05-27 15:39:03 +08:00
|
|
|
|
using System;
|
2024-07-02 14:23:13 +08:00
|
|
|
|
using System.Collections.Generic;
|
2024-05-27 15:39:03 +08:00
|
|
|
|
using UnityEngine;
|
2024-06-04 18:27:32 +08:00
|
|
|
|
using UnityEngine.UI;
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
namespace Gameplay.Guide
|
2024-05-27 15:39:03 +08:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// 新手引导步骤完成基类
|
2024-05-27 15:39:03 +08:00
|
|
|
|
/// </summary>
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public abstract class GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 引导完成回调
|
|
|
|
|
|
/// </summary>
|
2024-05-30 16:49:27 +08:00
|
|
|
|
private readonly Action completeAction;
|
2024-10-25 16:17:49 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private bool isComplete;
|
2024-05-29 16:36:30 +08:00
|
|
|
|
|
2024-07-05 19:22:10 +08:00
|
|
|
|
public DataGuideCfg Cfg { get; private set; }
|
|
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 引导完成类型
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public E_GuideCompleteType CompleteType
|
|
|
|
|
|
{
|
|
|
|
|
|
get; private set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public GuideCompleteBase(DataGuideCfg cfg, Action complete)
|
|
|
|
|
|
{
|
2024-07-05 19:22:10 +08:00
|
|
|
|
Cfg = cfg;
|
|
|
|
|
|
|
|
|
|
|
|
CompleteType = Cfg.GuideCompleteType;
|
2024-05-29 16:36:30 +08:00
|
|
|
|
completeAction = complete;
|
2024-10-25 16:17:49 +08:00
|
|
|
|
isComplete = false;
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 添加监听
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public abstract void AddListener();
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除监听
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public abstract void RemoveListener();
|
2024-05-30 16:49:27 +08:00
|
|
|
|
|
|
|
|
|
|
public virtual void Complete()
|
|
|
|
|
|
{
|
2024-10-25 16:17:49 +08:00
|
|
|
|
if (isComplete)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
isComplete = true;
|
2024-05-30 16:49:27 +08:00
|
|
|
|
completeAction?.Invoke();
|
|
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// 播放视频完成
|
2024-05-27 15:39:03 +08:00
|
|
|
|
/// </summary>
|
2024-05-29 16:36:30 +08:00
|
|
|
|
internal sealed class PlayVideoComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public PlayVideoComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-10-18 18:35:17 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.PlayVideoComplete, Complete);
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-10-18 18:35:17 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.PlayVideoComplete, Complete);
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
#region UI
|
2024-05-27 15:39:03 +08:00
|
|
|
|
/// <summary>
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// 打开UI完成
|
2024-05-27 15:39:03 +08:00
|
|
|
|
/// </summary>
|
2024-05-29 16:36:30 +08:00
|
|
|
|
internal sealed class OpenUIComplete : GuideCompleteBase
|
2024-05-27 15:39:03 +08:00
|
|
|
|
{
|
2024-05-29 16:36:30 +08:00
|
|
|
|
private readonly string uiName;
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public OpenUIComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.UI名");
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-10-10 15:52:57 +08:00
|
|
|
|
uiName = Cfg.CompleteTypeParams[0];
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIOpen, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIOpen, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
private void OnComplete(string uiName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.uiName != uiName)
|
|
|
|
|
|
return;
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-30 16:49:27 +08:00
|
|
|
|
Complete();
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 关闭UI完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class CloseUIComplete : GuideCompleteBase
|
2024-05-28 13:40:44 +08:00
|
|
|
|
{
|
2024-05-29 16:36:30 +08:00
|
|
|
|
private readonly string uiName;
|
2024-05-28 13:40:44 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public CloseUIComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.UI名");
|
2024-05-28 13:40:44 +08:00
|
|
|
|
|
2024-10-10 15:52:57 +08:00
|
|
|
|
uiName = Cfg.CompleteTypeParams[0];
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-28 13:40:44 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIClose, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
2024-05-28 13:40:44 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIClose, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
2024-05-28 13:40:44 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
private void OnComplete(string uiName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.uiName != uiName)
|
|
|
|
|
|
return;
|
2024-05-28 13:40:44 +08:00
|
|
|
|
|
2024-05-30 16:49:27 +08:00
|
|
|
|
Complete();
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-28 13:40:44 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-30 14:49:17 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 销毁UI完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class DestroyUIComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly string uiName;
|
|
|
|
|
|
|
|
|
|
|
|
public DestroyUIComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.UI名");
|
|
|
|
|
|
|
|
|
|
|
|
uiName = Cfg.CompleteTypeParams[0];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIDestroy, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIDestroy, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnComplete(string uiName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.uiName != uiName)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 打开UI并且UI动画播放完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class OpenUIAndAnimComplete : GuideCompleteBase
|
2024-05-27 16:57:51 +08:00
|
|
|
|
{
|
2024-05-29 16:36:30 +08:00
|
|
|
|
private readonly string uiName;
|
2024-05-27 16:57:51 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public OpenUIAndAnimComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.UI名");
|
2024-05-27 16:57:51 +08:00
|
|
|
|
|
2024-10-10 15:52:57 +08:00
|
|
|
|
uiName = Cfg.CompleteTypeParams[0];
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-30 15:01:43 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIOpenAndAnim, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
2024-05-27 16:57:51 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIOpenAndAnim, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
2024-05-27 16:57:51 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
private void OnComplete(string uiName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.uiName != uiName)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
2024-05-30 16:49:27 +08:00
|
|
|
|
Complete();
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-27 16:57:51 +08:00
|
|
|
|
}
|
2024-10-16 19:02:03 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 关闭UI并且UI动画播放完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class CloseUIAndAnimComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly string uiName;
|
|
|
|
|
|
|
|
|
|
|
|
public CloseUIAndAnimComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.UI名");
|
|
|
|
|
|
|
|
|
|
|
|
uiName = Cfg.CompleteTypeParams[0];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UICloseAndAnim, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UICloseAndAnim, (Action<string>)OnComplete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnComplete(string uiName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.uiName != uiName)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-04 15:13:16 +08:00
|
|
|
|
#endregion
|
2024-05-27 16:57:51 +08:00
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
#region 关卡战斗
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// <summary>
|
2024-06-04 13:26:59 +08:00
|
|
|
|
/// 进入战斗关卡完成
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// </summary>
|
2024-06-04 13:26:59 +08:00
|
|
|
|
internal sealed class EnterFightLevelComplete : GuideCompleteBase
|
2024-05-27 16:57:51 +08:00
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否切换关卡状态
|
|
|
|
|
|
/// </summary>
|
2024-06-04 15:13:16 +08:00
|
|
|
|
private bool isChangeLevelState;
|
2024-10-10 15:52:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否加载完成
|
|
|
|
|
|
/// </summary>
|
2024-06-04 15:13:16 +08:00
|
|
|
|
private bool isLoadingExecutor;
|
2024-10-10 15:52:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载界面是否关闭
|
|
|
|
|
|
/// </summary>
|
2024-06-27 13:22:21 +08:00
|
|
|
|
private bool isLoadingClose;
|
2024-05-29 16:36:30 +08:00
|
|
|
|
|
2024-06-04 13:26:59 +08:00
|
|
|
|
public EnterFightLevelComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
2024-05-29 16:36:30 +08:00
|
|
|
|
{
|
2024-06-04 15:13:16 +08:00
|
|
|
|
isChangeLevelState = false;
|
|
|
|
|
|
isLoadingExecutor = false;
|
2024-06-27 13:22:21 +08:00
|
|
|
|
isLoadingClose = false;
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-06-04 15:13:16 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_ChangeLevelState, OnChangeLevelState);
|
2024-08-28 17:03:50 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.LoadingExecutorComplete, OnLoadingExecutor);
|
2024-06-27 13:22:21 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIClose, (Action<string>)OnLoadingClose);
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-06-27 13:22:21 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIClose, (Action<string>)OnLoadingClose);
|
2024-08-28 17:03:50 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.LoadingExecutorComplete, OnLoadingExecutor);
|
2024-06-04 15:13:16 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_ChangeLevelState, OnChangeLevelState);
|
2024-05-30 13:48:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
private void OnChangeLevelState()
|
2024-05-30 13:48:26 +08:00
|
|
|
|
{
|
2024-06-04 15:13:16 +08:00
|
|
|
|
isChangeLevelState = true;
|
|
|
|
|
|
CheckComplete();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnLoadingExecutor()
|
|
|
|
|
|
{
|
|
|
|
|
|
isLoadingExecutor = true;
|
|
|
|
|
|
CheckComplete();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-27 13:22:21 +08:00
|
|
|
|
private void OnLoadingClose(string uiName)
|
|
|
|
|
|
{
|
2024-07-12 16:17:40 +08:00
|
|
|
|
if (UINameConst.UI_LoadingInterface != uiName)
|
2024-06-27 13:22:21 +08:00
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
isLoadingClose = true;
|
|
|
|
|
|
CheckComplete();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
private void CheckComplete()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!isChangeLevelState)
|
2024-05-30 13:48:26 +08:00
|
|
|
|
return;
|
|
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
if (!isLoadingExecutor)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
2024-06-27 13:22:21 +08:00
|
|
|
|
if (!isLoadingClose)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 进入故事关卡完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class EnterStorylineLevelComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否切换关卡状态
|
|
|
|
|
|
/// </summary>
|
2024-06-04 15:13:16 +08:00
|
|
|
|
private bool isChangeStoryState;
|
2024-10-10 15:52:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否加载完成
|
|
|
|
|
|
/// </summary>
|
2024-06-04 15:13:16 +08:00
|
|
|
|
private bool isLoadingExecutor;
|
2024-10-10 15:52:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载界面是否关闭
|
|
|
|
|
|
/// </summary>
|
2024-06-27 13:22:21 +08:00
|
|
|
|
private bool isLoadingClose;
|
2024-05-29 16:36:30 +08:00
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
public EnterStorylineLevelComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
isChangeStoryState = false;
|
|
|
|
|
|
isLoadingExecutor = false;
|
2024-06-27 13:22:21 +08:00
|
|
|
|
isLoadingClose = false;
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
public override void AddListener()
|
2024-05-29 16:36:30 +08:00
|
|
|
|
{
|
2024-06-04 15:13:16 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_ChangeStoryState, OnChangeStoryState);
|
2024-08-28 17:03:50 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.LoadingExecutorComplete, OnLoadingExecutor);
|
2024-06-27 13:22:21 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIClose, (Action<string>)OnLoadingClose);
|
2024-06-04 15:13:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-06-27 13:22:21 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIClose, (Action<string>)OnLoadingClose);
|
2024-08-28 17:03:50 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.LoadingExecutorComplete, OnLoadingExecutor);
|
2024-06-04 15:13:16 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_ChangeStoryState, OnChangeStoryState);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnChangeStoryState()
|
|
|
|
|
|
{
|
|
|
|
|
|
isChangeStoryState = true;
|
|
|
|
|
|
CheckComplete();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnLoadingExecutor()
|
|
|
|
|
|
{
|
|
|
|
|
|
isLoadingExecutor = true;
|
|
|
|
|
|
CheckComplete();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-27 13:22:21 +08:00
|
|
|
|
private void OnLoadingClose(string uiName)
|
|
|
|
|
|
{
|
2024-07-12 16:17:40 +08:00
|
|
|
|
if (UINameConst.UI_LoadingInterface != uiName)
|
2024-06-27 13:22:21 +08:00
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
isLoadingClose = true;
|
|
|
|
|
|
CheckComplete();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-04 15:13:16 +08:00
|
|
|
|
private void CheckComplete()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!isChangeStoryState)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
if (!isLoadingExecutor)
|
2024-05-29 16:36:30 +08:00
|
|
|
|
return;
|
|
|
|
|
|
|
2024-06-27 13:22:21 +08:00
|
|
|
|
if (!isLoadingClose)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
2024-05-30 16:49:27 +08:00
|
|
|
|
Complete();
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-27 16:57:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 关卡上阵完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class LevelEmbattleComplete : GuideCompleteBase
|
2024-05-27 15:39:03 +08:00
|
|
|
|
{
|
2024-05-30 15:01:43 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 上阵数量
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private readonly int embattleCount;
|
|
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public LevelEmbattleComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.上阵角色数量");
|
2024-06-03 16:48:18 +08:00
|
|
|
|
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (int.TryParse(Cfg.CompleteTypeParams[0], out int count))
|
2024-06-03 16:48:18 +08:00
|
|
|
|
embattleCount = count;
|
2024-10-10 15:52:57 +08:00
|
|
|
|
else
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},第1个参数类型错误:应该为int类型");
|
2024-06-03 16:48:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.LevelFightStartChange, OnStartChange);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.LevelFightStartChange, OnStartChange);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnStartChange()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (TeamManager.Instance.GetFightList().Count >= embattleCount)
|
|
|
|
|
|
Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 关卡载具上阵完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class LevelVehicleEmbattleComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 上阵数量
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private readonly int embattleCount;
|
|
|
|
|
|
|
|
|
|
|
|
public LevelVehicleEmbattleComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.上阵载具数量");
|
2024-05-30 15:01:43 +08:00
|
|
|
|
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (int.TryParse(Cfg.CompleteTypeParams[0], out int count))
|
2024-05-30 15:01:43 +08:00
|
|
|
|
embattleCount = count;
|
2024-10-10 15:52:57 +08:00
|
|
|
|
else
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},第1个参数类型错误:应该为int类型");
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-05-30 15:01:43 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.LevelFightStartChange, OnStartChange);
|
2024-05-29 16:36:30 +08:00
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
|
2024-05-29 16:36:30 +08:00
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-05-30 15:01:43 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.LevelFightStartChange, OnStartChange);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnStartChange()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (TeamManager.Instance.GetFightList().Count >= embattleCount)
|
2024-05-30 16:49:27 +08:00
|
|
|
|
Complete();
|
2024-05-30 15:01:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 战斗开始完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class FightBeginComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public FightBeginComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-05-30 16:49:27 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIPreLevelBattleBegin, Complete);
|
2024-05-30 15:01:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-05-30 16:49:27 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIPreLevelBattleBegin, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-07-02 13:45:19 +08:00
|
|
|
|
/// 战斗角色开始移动完成
|
2024-05-30 16:49:27 +08:00
|
|
|
|
/// </summary>
|
2024-07-02 13:45:19 +08:00
|
|
|
|
internal sealed class FightBeginMoveComplete : GuideCompleteBase
|
2024-05-30 16:49:27 +08:00
|
|
|
|
{
|
2024-07-02 13:45:19 +08:00
|
|
|
|
public FightBeginMoveComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
2024-05-30 16:49:27 +08:00
|
|
|
|
{
|
2024-05-30 15:01:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-30 16:49:27 +08:00
|
|
|
|
public override void AddListener()
|
2024-05-30 15:01:43 +08:00
|
|
|
|
{
|
2024-05-30 19:00:56 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.INFIGHT_OP_SET_MOVEPOS, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.INFIGHT_OP_SET_MOVEPOS, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-02 13:45:19 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 战斗角色移动完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class FightMoveComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 角色配置id
|
|
|
|
|
|
/// </summary>
|
2024-07-02 14:23:13 +08:00
|
|
|
|
private readonly List<int> listCharacterCfgId;
|
2024-07-02 13:45:19 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 地板索引
|
|
|
|
|
|
/// </summary>
|
2024-07-02 14:23:13 +08:00
|
|
|
|
private readonly List<int> listFloorIndex;
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成计数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private int total;
|
2024-07-02 13:45:19 +08:00
|
|
|
|
|
|
|
|
|
|
public FightMoveComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 1 && (Cfg.CompleteTypeParams.Length & 1) != 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.角色id,2.地板id;");
|
2024-07-02 13:45:19 +08:00
|
|
|
|
|
2024-10-10 15:52:57 +08:00
|
|
|
|
int count = Cfg.CompleteTypeParams.Length / 2;
|
2024-07-02 14:23:13 +08:00
|
|
|
|
listCharacterCfgId = new(count);
|
|
|
|
|
|
listFloorIndex = new(count);
|
|
|
|
|
|
total = 0;
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; ++i)
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (int.TryParse(Cfg.CompleteTypeParams[2 * i], out int cId))
|
2024-07-02 14:23:13 +08:00
|
|
|
|
listCharacterCfgId.Add(cId);
|
2024-10-10 15:52:57 +08:00
|
|
|
|
else
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},第{2 * i}个参数类型错误:应该为int类型");
|
2024-07-02 13:45:19 +08:00
|
|
|
|
|
2024-10-10 15:52:57 +08:00
|
|
|
|
if (int.TryParse(Cfg.CompleteTypeParams[2 * i + 1], out int fId))
|
2024-07-02 14:23:13 +08:00
|
|
|
|
listFloorIndex.Add(fId);
|
2024-10-10 15:52:57 +08:00
|
|
|
|
else
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},第{2 * i + 1}个参数类型错误:应该为int类型");
|
2024-07-02 14:23:13 +08:00
|
|
|
|
}
|
2024-07-02 13:45:19 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-07-11 16:04:22 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.LevelCharacterArriveBlock, (Action<Character.Character>)OnComplete);
|
2024-07-02 13:45:19 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-07-11 16:04:22 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.LevelCharacterArriveBlock, (Action<Character.Character>)OnComplete);
|
2024-07-02 13:45:19 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-11 16:04:22 +08:00
|
|
|
|
public void OnComplete(Character.Character character)
|
2024-07-02 13:45:19 +08:00
|
|
|
|
{
|
2024-07-02 14:23:13 +08:00
|
|
|
|
for (int i = 0; i < listCharacterCfgId.Count; ++i)
|
|
|
|
|
|
{
|
2024-07-11 16:04:22 +08:00
|
|
|
|
if (listCharacterCfgId[i] != character.runtimeData.configData.cfgId)
|
2024-07-02 14:23:13 +08:00
|
|
|
|
continue;
|
|
|
|
|
|
|
2024-07-11 16:04:22 +08:00
|
|
|
|
if (listFloorIndex[i] != character.transData.cellIndex)
|
2024-07-02 14:23:13 +08:00
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
++total;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
2024-07-02 13:45:19 +08:00
|
|
|
|
|
2024-07-02 14:23:13 +08:00
|
|
|
|
if (total < listCharacterCfgId.Count)
|
2024-07-02 13:45:19 +08:00
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-30 19:00:56 +08:00
|
|
|
|
/// <summary>
|
2024-07-02 14:23:13 +08:00
|
|
|
|
/// 战斗角色攻击完成
|
2024-05-30 19:00:56 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class FightAttackComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public FightAttackComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.INFIGHT_OP_SET_TARGET, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.INFIGHT_OP_SET_TARGET, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-10-10 15:52:57 +08:00
|
|
|
|
#endregion
|
2024-05-30 19:00:56 +08:00
|
|
|
|
|
2024-07-05 16:14:23 +08:00
|
|
|
|
#region 释放技能
|
2024-05-30 19:00:56 +08:00
|
|
|
|
/// <summary>
|
2024-07-02 16:44:14 +08:00
|
|
|
|
/// 角色准备释放技能完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class FightPreparaUseSkillComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public FightPreparaUseSkillComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UI_START_USE_SKILL, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UI_START_USE_SKILL, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-05 16:14:23 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 准备释放指挥官技能完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class FightPreparaUsePlayerSkillComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public FightPreparaUsePlayerSkillComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_PreparaPlayerSkill, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_PreparaPlayerSkill, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-02 16:44:14 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 角色释放技能完成
|
2024-05-30 19:00:56 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class FightUseSkillComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public FightUseSkillComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-07-03 13:08:26 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UI_USE_SKILL, Complete);
|
2024-05-30 16:49:27 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-07-03 13:08:26 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UI_USE_SKILL, Complete);
|
2024-05-31 15:01:21 +08:00
|
|
|
|
}
|
2024-05-30 16:49:27 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-05 16:14:23 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 指挥官释放技能完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class FightUsePlayerSkillComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public FightUsePlayerSkillComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_UsePlayerSkill, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_UsePlayerSkill, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
2024-05-30 19:55:53 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 关卡完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class LevelComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public LevelComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-06-04 18:27:32 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIOpen, (Action<string>)OnOpenUIPause);
|
2024-05-31 14:06:02 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.GuideExitLevel, Complete);
|
2024-05-30 19:55:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-05-31 14:06:02 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.GuideExitLevel, Complete);
|
2024-06-04 18:27:32 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIOpen, (Action<string>)OnOpenUIPause);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnOpenUIPause(string uiName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (UINameConst.UIPause != uiName)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
UIWindow uiWindow = UIManager.Instance.GetOpenedWindowByPath<UIWindow>(UINameConst.UIPause);
|
|
|
|
|
|
if (null == uiWindow)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
Transform ts = uiWindow.gameObject.transform.Find("UI_MainPause/UIRetreatAndReturn/Button_Retreat");
|
|
|
|
|
|
if (null == ts)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
2024-10-08 16:13:27 +08:00
|
|
|
|
if (!ts.TryGetComponent(out Button btn))
|
2024-06-04 18:27:32 +08:00
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
btn.interactable = false;
|
2024-05-30 19:55:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-03 15:57:43 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 点击引导按钮完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class ClickGuideButtonComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public ClickGuideButtonComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.GuideClickButton, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.GuideClickButton, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-01 13:08:37 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 点击地板完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class ClickGuideFloorComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public ClickGuideFloorComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-10-16 13:39:24 +08:00
|
|
|
|
EventManager.Instance.Register<int>(EventManager.EventName.Guide_ClickFloor, OnComplete);
|
2024-07-01 13:08:37 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-10-16 13:39:24 +08:00
|
|
|
|
EventManager.Instance.Unregister<int>(EventManager.EventName.Guide_ClickFloor, OnComplete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnComplete(int cellIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
Complete();
|
2024-07-01 16:19:07 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 等待战斗开始按钮显示完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class WaitFightStartButtonShowComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public WaitFightStartButtonShowComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_FightStartShow, Complete);
|
|
|
|
|
|
}
|
2024-07-01 13:08:37 +08:00
|
|
|
|
|
2024-07-01 16:19:07 +08:00
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_FightStartShow, Complete);
|
2024-07-01 13:08:37 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-02 14:23:13 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 等待备战区显示完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class WaitPreparatShowComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public WaitPreparatShowComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_PreparatShow, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_PreparatShow, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-02 19:45:05 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 等待敌人撤退
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class WaitEnemyRetreatComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public WaitEnemyRetreatComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-07-02 20:17:07 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.INFIGHT_STATUS_CHANGED, (Action<GameUnit>)OnComplete);
|
2024-07-02 19:45:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-07-02 20:17:07 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.INFIGHT_STATUS_CHANGED, (Action<GameUnit>)OnComplete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnComplete(GameUnit gameUnit)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!gameUnit.statusData.isRetreat)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
Complete();
|
2024-07-02 19:45:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-03 18:30:08 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 等待起名
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class WaitChangeNameComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public WaitChangeNameComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.STORY_OPEN_NAME_PANEL, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.STORY_OPEN_NAME_PANEL, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override async void Complete()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (GameStateManager.Instance.GetCurState() is GameStateStory gameStateStory)
|
|
|
|
|
|
gameStateStory.IsReady = false;
|
|
|
|
|
|
|
2025-03-27 15:26:49 +08:00
|
|
|
|
await UI_WriteNameController.Open(null);
|
2024-07-03 18:30:08 +08:00
|
|
|
|
|
|
|
|
|
|
base.Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-04 13:21:28 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 等待编队完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class WaitEditTeamComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
2024-07-04 13:48:56 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 队伍人数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private readonly int cCount;
|
|
|
|
|
|
|
2024-07-04 13:21:28 +08:00
|
|
|
|
public WaitEditTeamComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
2024-07-04 13:48:56 +08:00
|
|
|
|
if (cfg.CompleteTypeParams.Length <= 0)
|
2024-10-10 15:52:57 +08:00
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.队伍人数");
|
2024-07-04 13:48:56 +08:00
|
|
|
|
|
|
|
|
|
|
if (int.TryParse(cfg.CompleteTypeParams[0], out int count))
|
|
|
|
|
|
cCount = count;
|
2024-10-10 15:52:57 +08:00
|
|
|
|
else
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},第1个参数类型错误:应该为int类型");
|
2024-07-04 13:21:28 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-07-04 13:48:56 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.TeamModified, (Action<int>)OnTeamModfied);
|
2024-07-05 19:22:10 +08:00
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIOpen, (Action<string>)OnUIOpen);
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIClose, (Action<string>)OnUIClose);
|
2024-07-04 13:21:28 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-07-05 19:22:10 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIClose, (Action<string>)OnUIClose);
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIOpen, (Action<string>)OnUIOpen);
|
2024-07-04 13:48:56 +08:00
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.TeamModified, (Action<int>)OnTeamModfied);
|
|
|
|
|
|
}
|
2024-07-04 13:21:28 +08:00
|
|
|
|
|
2024-07-05 19:22:10 +08:00
|
|
|
|
private async void OnUIOpen(string uiName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (UINameConst.UISelectCharacter != uiName)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
await UI_GuideController.Open(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private async void OnUIClose(string uiName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (UINameConst.UISelectCharacter != uiName)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
await UI_GuideController.Open(Cfg, false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-04 13:48:56 +08:00
|
|
|
|
private void OnTeamModfied(int teamIndex)
|
|
|
|
|
|
{
|
2024-10-15 16:30:20 +08:00
|
|
|
|
Team team = TeamEditManager.Instance.GetTeamByIndex(teamIndex);
|
2024-07-04 13:48:56 +08:00
|
|
|
|
if (null == team)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
2024-10-12 13:47:47 +08:00
|
|
|
|
if (team.GetAllCharacterCount() < cCount)
|
2024-07-04 13:48:56 +08:00
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
Complete();
|
2024-07-04 13:21:28 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-04 14:40:00 +08:00
|
|
|
|
|
2024-10-15 20:05:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 等待清除队伍完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class ClearTeamComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public ClearTeamComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.TeamClear, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.TeamClear, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-15 19:40:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 等待加载完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class WaitLoadingComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public WaitLoadingComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.LoadingExecutorComplete, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.LoadingExecutorComplete, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-04 14:40:00 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 任意点击完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class AnyClickComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 点击次数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private int clickCount;
|
2024-07-04 19:56:55 +08:00
|
|
|
|
|
2024-07-04 14:40:00 +08:00
|
|
|
|
public AnyClickComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
2024-10-23 19:42:35 +08:00
|
|
|
|
clickCount = 1;
|
2024-07-04 14:40:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
2024-10-23 19:42:35 +08:00
|
|
|
|
InputManager.Instance.OnAnyClick += OnClick;
|
2024-07-04 14:40:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
2024-10-23 19:42:35 +08:00
|
|
|
|
InputManager.Instance.OnAnyClick -= OnClick;
|
2024-07-04 14:40:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-23 19:42:35 +08:00
|
|
|
|
private void OnClick()
|
2024-07-04 14:40:00 +08:00
|
|
|
|
{
|
2024-10-10 15:52:57 +08:00
|
|
|
|
--clickCount;
|
2024-10-23 19:42:35 +08:00
|
|
|
|
if (clickCount != 0)
|
2024-07-04 19:56:55 +08:00
|
|
|
|
return;
|
|
|
|
|
|
|
2024-07-04 14:40:00 +08:00
|
|
|
|
Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-05 20:49:03 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 保存队伍完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class SaveTeamComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public SaveTeamComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.TeamUpdate, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.TeamUpdate, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-09 15:53:50 +08:00
|
|
|
|
|
2024-10-29 17:59:00 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 保存队伍并且关闭UI完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class SaveTeamAndCloseUIComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly string uiName;
|
|
|
|
|
|
private bool isSave;
|
|
|
|
|
|
private bool isClose;
|
|
|
|
|
|
|
|
|
|
|
|
public SaveTeamAndCloseUIComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
isSave = false;
|
|
|
|
|
|
isClose = false;
|
|
|
|
|
|
|
|
|
|
|
|
if (Cfg.CompleteTypeParams.Length <= 0)
|
|
|
|
|
|
throw new Exception($"引导id:{Cfg.Id}, 引导类型:{Cfg.GuideStepType},参数数量错误:1.UI名");
|
|
|
|
|
|
|
|
|
|
|
|
uiName = Cfg.CompleteTypeParams[0];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.TeamUpdate, SaveComplete);
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.UIClose, (Action<string>)CloseUIComplete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.UIClose, (Action<string>)CloseUIComplete);
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.TeamUpdate, SaveComplete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void SaveComplete()
|
|
|
|
|
|
{
|
|
|
|
|
|
isSave = true;
|
|
|
|
|
|
|
|
|
|
|
|
Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void CloseUIComplete(string name)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (name != uiName)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
isClose = true;
|
|
|
|
|
|
|
|
|
|
|
|
Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void Complete()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!isSave)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
if (!isClose)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
base.Complete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-16 17:40:49 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 选择队伍完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class SelectTeamComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public SelectTeamComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.SetSelectTeam, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.SetSelectTeam, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-09 15:53:50 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 上载具
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class JoinVehicle : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public JoinVehicle(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_JoinVehicle, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_JoinVehicle, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-10-16 13:02:48 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 上阵完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class GoBattleComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public GoBattleComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_JoinVehicle, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_JoinVehicle, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-10-16 19:02:03 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 技能冷却完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class SkillCDComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public SkillCDComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_JoinVehicle, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_JoinVehicle, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-10-17 19:06:35 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 等待完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
internal sealed class WaitComplete : GuideCompleteBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public WaitComplete(DataGuideCfg cfg, Action complete) : base(cfg, complete)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void AddListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.Guide_Wait, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void RemoveListener()
|
|
|
|
|
|
{
|
|
|
|
|
|
EventManager.Instance.Unregister(EventManager.EventName.Guide_Wait, Complete);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-05-27 15:39:03 +08:00
|
|
|
|
}
|