TheKingsRace/Assets/Scripts/PlayerScripts/DebugStateMachine/DebugAerialState/DebugAerial/dAerialGroundedState.cs
Melbyj1125 15acf40031 have an understanding on how i want to do grapple
have gotten the intial force direction calculations completed and will
be working on expanding it further
2022-04-01 00:28:01 -05:00

42 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class dAerialGroundedState : dAerialBaseState
{
public override void EnterState(dAerialStateManager aSM, dAerialBaseState previousState){
//release is false if grounded
aSM.release = false;
}
public override void ExitState(dAerialStateManager aSM, dAerialBaseState nextState){
}
public override void UpdateState(dAerialStateManager aSM){
//if grav vel < 0 then falling
if(aSM.pStats.GravVel < 0 || (aSM.pStats.GravVel > 0 && (aSM.mSM.currentState == aSM.mSM.SlideState || aSM.mSM.currentState == aSM.mSM.CrouchState || aSM.mSM.currentState == aSM.mSM.RagdollState || aSM.mSM.currentState == aSM.mSM.RecoveringState))){
aSM.SwitchState(aSM.FallingState);
}
//if grav vel > 0 then jumping
else if(aSM.pStats.GravVel > 0 && (aSM.mSM.currentState != aSM.mSM.SlideState && aSM.mSM.currentState != aSM.mSM.CrouchState && aSM.mSM.currentState != aSM.mSM.RagdollState && aSM.mSM.currentState != aSM.mSM.RecoveringState)){
aSM.SwitchState(aSM.JumpingState);
}
//can grapple and in state that allows grapple
else if(aSM.CheckGrapple() && (aSM.mSM.currentState != aSM.mSM.SlideState && aSM.mSM.currentState != aSM.mSM.CrouchState && aSM.mSM.currentState != aSM.mSM.RagdollState && aSM.mSM.currentState != aSM.mSM.RecoveringState)){
aSM.SwitchState(aSM.GrappleAirState);
}
}
public override void FixedUpdateState(dAerialStateManager aSM){
//base gravity calculations
aSM.GravityCalculation(aSM.pStats.PlayerGrav);
}
}