using Framework; using Gameplay.Area; using Gameplay.Common; using Gameplay.Effect; using Gameplay.Level; using Gameplay.Vehicle.Impl; using LTGame; namespace Gameplay.Vehicle.State { public class VehicleStateEvacuate : BaseVehicleState { public VehicleStateEvacuate(NormalVehicle vehicle) : base(vehicle, EVehicleState.Evacuate) { } protected override void _OnEnter(NBaseState exitState, object param) { base._OnEnter(exitState, param); isFinished = true; nextState = EVehicleState.FadeOut; ++LevelManager.Instance.CurrentLevel.RetreatCount; EventManager.Instance.Send(EventManager.EventName.INFIGHT_UNIT_EVACUATE_FINISH, owner); var cellIndex = owner.transData.cellIndex; var worldPos = AreaManager.instance.GetWorldPosByIndex(cellIndex); EffectManager.instance.PlayEffectById(CodeDefine.Fight.Evacuate.EFFECT_ID_SUCCESS, worldPos); } } }