TheKingsRace/Assets/Scripts/PlayerScripts/DebugPlayer/DebugStateStuff/MovementState/Incapacitated/MoveRagdollState.cs
Melbyj1125 833183d034 Finished the Movement and Aerial groups
Working on the Dash, Nitro, and offense groups now
2022-02-15 21:19:12 -06:00

52 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveRagdollState : MoveBaseState
{
float ragTime;
Vector3 prevRot;
bool beginRagTimer = false;
public override void EnterState(MoveStateManager mSM, MoveBaseState previousState){
Debug.Log("Ragdoll State");
ragTime = mSM.pStats.RecovTime;
prevRot = mSM.transform.localEulerAngles;
mSM.capCol.enabled = true;
mSM.moveController.enabled = false;
mSM.rB.isKinematic = false;
mSM.rB.detectCollisions = true;
mSM.rB.AddForce(mSM.dirHit, ForceMode.Impulse);
}
public override void ExitState(MoveStateManager mSM, MoveBaseState nextState){
mSM.pStats.GravVel = 50;
mSM.capCol.enabled = false;
mSM.moveController.enabled = true;
mSM.rB.isKinematic = true;
mSM.rB.detectCollisions = false;
mSM.transform.localEulerAngles = prevRot;
}
public override void UpdateState(MoveStateManager mSM){
if(!beginRagTimer){
beginRagTimer = Physics.Raycast(mSM.transform.position, -Vector3.up, mSM.distToGround + 1f);
}
else{
ragTime -= Time.deltaTime;
}
}
public override void FixedUpdateState(MoveStateManager mSM){
//Has to be in Fixed Update because it has player movement
if(ragTime <= 0 && beginRagTimer){
ragTime = 0;
beginRagTimer = false;
mSM.SwitchState(mSM.RecoveringState);
}
}
}