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

55 lines
1.5 KiB
C#
Raw Normal View History

2023-08-22 19:08:45 +08:00
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;
2024-10-22 15:48:46 +08:00
owner.owner.statusData.isReloading = true;
owner.owner.statusData.reloadProgress = 0;
2023-08-22 19:08:45 +08:00
}
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)
2023-08-22 19:08:45 +08:00
{
2023-10-19 15:00:19 +08:00
owner.remainBulletCount = owner.owner.fightData.maxBulletCount;
2023-08-22 19:08:45 +08:00
isFinished = true;
nextState = EBatteryState.Idle;
}
}
2024-10-22 15:48:46 +08:00
protected override void _OnExit(NBaseState exitState,
object param)
{
base._OnExit(exitState, param);
owner.owner.statusData.isReloading = false;
}
2023-08-22 19:08:45 +08:00
}
}