using LTGame; namespace Gameplay.Vehicle { public class BatteryStateAttackEnd : BaseBaterryState { private float _waitTime; public BatteryStateAttackEnd(BaseBattery owner) : base(owner, EBatteryState.AttackEnd) { } protected override void _OnEnter(NBaseState exitState, object param) { base._OnEnter(exitState, param); _waitTime = owner.owner.fightData.attackEndTime; _waitTime = _waitTime > 0 ? _waitTime : 0.01f; owner.owner.statusData.isAttackEnd = true; owner.owner.statusData.attackEndProgress = 0f; } protected override void _OnRunning() { base._OnRunning(); var progress = passTime / _waitTime; owner.owner.statusData.attackEndProgress = progress; if (progress >= 1) { isFinished = true; nextState = EBatteryState.Idle; } } protected override void _OnExit(NBaseState exitState, object param) { base._OnExit(exitState, param); owner.owner.statusData.isAttackEnd = false; } } }