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() { } } }