NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/LevelBaseState.cs

67 lines
2.2 KiB
C#
Raw Normal View History

using System;
2023-08-22 19:08:45 +08:00
using Framework;
2024-07-01 13:08:37 +08:00
using Gameplay.Guide;
2023-08-22 19:08:45 +08:00
using TGS;
using UnityEngine;
namespace Gameplay.Level
{
2023-10-19 15:00:19 +08:00
public abstract class LevelBaseState : IState
2023-08-22 19:08:45 +08:00
{
protected Level _level;
public LevelBaseState(Level level)
{
_level = level;
}
public void OnEnter()
{
//InputManager.Instance.OnClick += _OnClick;
EventManager.Instance.Unregister(EventManager.EventName.Level_OnClick, (Action<Vector2>) _OnClick);
EventManager.Instance.Register(EventManager.EventName.Level_OnClick, (Action<Vector2>) _OnClick);
2023-08-22 19:08:45 +08:00
_OnEnter();
}
public void OnUpdate(float deltaTime)
{
_OnUpdate(deltaTime);
}
public void OnExit()
{
_OnExit();
// _level.Map.TerrainGridSystem.OnCellClick -= _OnCellClick;
//InputManager.Instance.OnClick -= _OnClick;
EventManager.Instance.Unregister(EventManager.EventName.Level_OnClick, (Action<Vector2>) _OnClick);
2023-08-22 19:08:45 +08:00
}
protected abstract void _OnEnter();
protected abstract void _OnUpdate(float deltaTime);
protected abstract void _OnExit();
protected abstract void _OnCellClick(TerrainGridSystem tgs, int cellIndex, int buttonIndex);
protected abstract void _OnClick(Vector2 screenPosition);
2024-07-01 13:08:37 +08:00
/// <summary>
/// 检查能否点击地板
/// </summary>
protected void CheckCellClick(TerrainGridSystem tgs, int cellIndex, int buttonIndex)
{
if (GuideManager.Instance.IsGuiding && // 在新手引导中
2024-07-03 14:07:54 +08:00
GuideManager.Instance.IsControlFloor && // 是否控制地板点击
2024-07-01 13:08:37 +08:00
GuideManager.Instance.FloorIndex != cellIndex) // 点击的不是指定地板
{
2024-10-16 13:39:24 +08:00
EventManager.Instance.Send(EventManager.EventName.ToFightModelDragSuc, false);
2024-07-01 13:08:37 +08:00
return;
}
2024-10-16 13:39:24 +08:00
EventManager.Instance.Send(EventManager.EventName.Guide_ClickFloor, cellIndex);
2024-07-01 16:19:07 +08:00
2024-07-11 15:09:44 +08:00
DebugUtil.LogG($"用户点击格子:{cellIndex}");
2024-07-01 13:08:37 +08:00
_OnCellClick(tgs, cellIndex, buttonIndex);
}
2023-08-22 19:08:45 +08:00
}
}