NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Vehicle/Battery/BatteryStateReload.cs

55 lines
1.5 KiB
C#

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;
_reloadTime = _reloadTime > 0 ? _reloadTime : 0.01f;
owner.owner.statusData.isReloading = true;
owner.owner.statusData.reloadProgress = 0;
}
protected override void _OnRunning()
{
base._OnRunning();
var targetEnemy = owner.owner.controlData.targetEnemy;
if (targetEnemy == null)
{
targetEnemy = owner.owner.controlData.followUnit;
}
owner.RotateTower(targetEnemy, deltaTime);
var progress = passTime / _reloadTime;
owner.owner.statusData.reloadProgress = progress;
if (progress >= 1)
{
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;
}
}
}