Have a lot of the basic movement in the stateMachine

Will need to finish up and implement some of the ragdoll interactions
This commit is contained in:
Melbyj1125
2022-02-14 00:32:37 -06:00
parent 6f0b3a0d0b
commit e1cf0bb094
36 changed files with 6338 additions and 96 deletions

View File

@@ -0,0 +1,52 @@
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){
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 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.pStats.GravVel = 50;
mSM.capCol.enabled = false;
mSM.moveController.enabled = true;
mSM.rB.isKinematic = true;
mSM.rB.detectCollisions = false;
mSM.transform.localEulerAngles = prevRot;
mSM.SwitchState(mSM.RecoveringState);
}
}
public override void OnCollisionEnter(MoveStateManager mSM){
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b7164475ffa0df6409ecd43b0517e4b0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,24 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveRecoveringState : MoveBaseState
{
////// ADD SOMETHING THAT CHECKS ANIMATION FINISH BEFORE GO TO IDLE
public override void EnterState(MoveStateManager mSM){
mSM.CancelMomentum();
}
public override void UpdateState(MoveStateManager mSM){
mSM.SwitchState(mSM.IdleState);
}
public override void FixedUpdateState(MoveStateManager mSM){
}
public override void OnCollisionEnter(MoveStateManager mSM){
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: dee57766c5fb3c34c8979d3e14d4e94e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: