65 lines
1.7 KiB
C#
65 lines
1.7 KiB
C#
using Gameplay.Vehicle.Impl;
|
|
using LTGame;
|
|
namespace Gameplay.Vehicle.State
|
|
{
|
|
public class VehicleStateIdle: BaseVehicleState
|
|
{
|
|
|
|
private int _loopAudioId;
|
|
|
|
public VehicleStateIdle(NormalVehicle owner) : base(owner, EVehicleState.Idle)
|
|
{
|
|
}
|
|
|
|
protected override void _OnEnter(NBaseState exitState,
|
|
object param)
|
|
{
|
|
base._OnEnter(exitState, param);
|
|
|
|
owner.vAnim.targetAnim = "idle";
|
|
_PlayAudio();
|
|
}
|
|
|
|
private void _PlayAudio()
|
|
{
|
|
_loopAudioId = -1;
|
|
if (string.IsNullOrEmpty(owner.configData.audioData.IdleLoopAudioId))
|
|
{
|
|
return;
|
|
}
|
|
_loopAudioId = AudioManager.Instance.PlayAudio(owner.configData.audioData.IdleLoopAudioId, AudioCriManager.EPlayType.Sound, owner.Node.GameObject, true);
|
|
}
|
|
|
|
protected override void _OnRunning()
|
|
{
|
|
base._OnRunning();
|
|
|
|
if (owner.aliveData.currentHp <= 0)
|
|
{
|
|
isFinished = true;
|
|
nextState = EVehicleState.Destroy;
|
|
return;
|
|
}
|
|
|
|
if (owner.controlData.targetCellIndex != -1)
|
|
{
|
|
isFinished = true;
|
|
nextState = EVehicleState.Move;
|
|
return;
|
|
}
|
|
}
|
|
|
|
protected override void _OnExit(NBaseState exitState,
|
|
object param)
|
|
{
|
|
base._OnExit(exitState, param);
|
|
|
|
if (_loopAudioId != 0)
|
|
{
|
|
AudioManager.Instance.StopSoundById(_loopAudioId);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|