using LTGame; namespace Gameplay.Vehicle { public class BatteryStateReload: BaseBaterryState { private float _reloadTime; public BatteryStateReload(BaseBattery owner) : base(owner, EBatteryState.Reload) { } protected override void _OnEnter(NBaseState exitState, object param) { base._OnEnter(exitState, param); _reloadTime = owner.owner.fightData.reloadTime; owner.owner.statusData.isReloading = true; } protected override void _OnRunning() { base._OnRunning(); var targetEnemy = owner.owner.controlData.targetEnemy; if (targetEnemy == null) { targetEnemy = owner.owner.controlData.followUnit; } owner.RotateTower(targetEnemy, deltaTime); if (passTime >= _reloadTime) { owner.remainBulletCount = owner.owner.fightData.maxBulletCount; isFinished = true; nextState = EBatteryState.Idle; } } protected override void _OnExit(NBaseState exitState, object param) { base._OnExit(exitState, param); owner.owner.statusData.isReloading = false; } } }