using Fie.Object; using System; using System.Collections.Generic; using UnityEngine; namespace Fie.Ponies.Applejack { public class FieStateMachineApplejackFlying : FieStateMachineGameCharacterBase { private const float FLYING_MOVE_FORCE_ROUND = 0.5f; private bool _isEnd; private Type _nextState = typeof(FieStateMachineCommonIdle); public override void updateState(ref T gameCharacter) { if (gameCharacter is FieApplejack) { FieApplejack fieApplejack = gameCharacter as FieApplejack; Vector3 externalInputVector = fieApplejack.externalInputVector; float externalInputForce = fieApplejack.externalInputForce; externalInputVector.y = (externalInputVector.z = 0f); if (fieApplejack.animationManager.IsEndAnimation(0)) { fieApplejack.animationManager.SetAnimation(20, isLoop: true); } if (fieApplejack.groundState == FieObjectGroundState.Grounding) { _nextState = typeof(FieStateMachinePoniesLanding); _isEnd = true; } else { gameCharacter.addMoveForce(externalInputVector * (fieApplejack.getDefaultMoveSpeed() * fieApplejack.externalInputForce) * 0.5f, 0.4f); fieApplejack.physicalForce.SetPhysicalForce(gameCharacter.getNowMoveForce() * -1f, 1500f); } } } public override void initialize(FieGameCharacter gameCharacter) { if (!(gameCharacter == null)) { gameCharacter.setGravityRate(1f); gameCharacter.isEnableGravity = true; gameCharacter.isEnableAutoFlip = true; } } public override void terminate(FieGameCharacter gameCharacter) { if (!(gameCharacter == null)) { gameCharacter.setGravityRate(1f); gameCharacter.isEnableGravity = true; gameCharacter.isEnableAutoFlip = true; } } public override bool isEnd() { return _isEnd; } public override Type getNextState() { return _nextState; } public override List getAllowedStateList() { List list = new List(); list.Add(typeof(FieStateMachineApplejackFireAir)); list.Add(typeof(FieStateMachineApplejackFireRope)); list.Add(typeof(FieStateMachineApplejackRopeActionAir)); list.Add(typeof(FieStateMachineApplejackYeehawActionMidAir)); list.Add(typeof(FieStateMachineApplejackStompAction)); return list; } } }