NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Summon/State/BaseSummonState.cs

56 lines
1.3 KiB
C#

namespace Gameplay.Summon
{
using LTGame;
public class BaseSummonState : NBaseState
{
public readonly BaseSummon owner;
public BaseSummonState(BaseSummon owner, int id) : base(id)
{
this.owner = owner;
}
protected virtual void _OnPreCheck()
{
if (owner.runtimeData.remainExistTime <= 0)
{
isFinished = true;
nextState = ESummonState.WaitRemove;
return;
}
if (owner.statusData.canBeAttack && owner.aliveData.currentHp <= 0)
{
isFinished = true;
owner.statusData.isDead = true;
nextState = ESummonState.WaitRemove;
}
}
public override void Run(float dt)
{
if (isFinished) return;
deltaTime = dt;
passTime += deltaTime;
_OnPreCheck();
if (isFinished) return;
_OnRunning();
}
protected override void _OnEnter(NBaseState exitState, object param)
{
}
protected override void _OnExit(NBaseState exitState, object param)
{
}
protected override void _OnRunning()
{
}
}
}