This commit is contained in:
CortexCore
2023-11-15 23:54:54 +08:00
parent ee3ecec6cb
commit 3c837a4a33
356 changed files with 73756 additions and 26493 deletions

View File

@@ -1,5 +1,6 @@
using System;
using BITFALL.Entities.Player.Movement.States;
using BITFALL.Player.Equip;
using BITFALL.Player.Movement;
using BITKit;
using BITKit.StateMachine;
@@ -109,13 +110,6 @@ namespace BITFALL.Entities.Player.Movement.States
[Serializable]
public sealed class Walk:BasicMovement,IPlayerWalkState
{
public override void OnStateEntry(IState old)
{
base.OnStateEntry(old);
characterController.ExpectRun.Reset();
characterController.ExpectSprint.Reset();
}
public override void AfterUpdateMovement(float deltaTime)
{
base.AfterUpdateMovement(deltaTime);
@@ -123,10 +117,10 @@ namespace BITFALL.Entities.Player.Movement.States
{
case (_,true):
characterController.TransitionState<Crouch>();
break;
case (true,false):
return;
case (true,false) when characterController.pauseRun.Allow is false:
characterController.TransitionState<Run>();
break;
return;
}
}
}
@@ -136,14 +130,21 @@ namespace BITFALL.Entities.Player.Movement.States
{
[SerializeField] private float moveDamping = 3f;
[SerializeField] private float damping = 1f;
[Inject] private IEquipService _equipService;
public override void OnStateEntry(IState old)
{
base.OnStateEntry(old);
characterController.InvokeOpenParachute();
_equipService.AllowEquip.AddDisableElements(this);
}
public override void OnStateExit(IState old, IState newState)
{
base.OnStateExit(old, newState);
characterController.InvokeCloseParachute();
_equipService.AllowEquip.RemoveDisableElements(this);
}
public override void UpdateRotation(ref Quaternion currentRotation, float deltaTime)
@@ -191,18 +192,25 @@ namespace BITFALL.Entities.Player.Movement.States
public override void AfterUpdateMovement(float deltaTime)
{
base.AfterUpdateMovement(deltaTime);
if (characterController.ExpectSprint.shouldBe)
{
characterController.TransitionState<Sprint>();
}
switch (characterController.ExpectRun.shouldBe,characterController.ExpectCrouch.shouldBe)
{
case (_,true):
characterController.TransitionState<Crouch>();
break;
return;
case (false,false):
characterController.TransitionState<Walk>();
break;
return;
}
if (characterController.pauseRun.Allow)
{
characterController.TransitionState<Walk>();
return;
}
if (characterController.ExpectSprint.shouldBe)
{
characterController.TransitionState<Sprint>();
return;
}
}
@@ -229,6 +237,7 @@ namespace BITFALL.Entities.Player.Movement.States
{
characterController.ExpectCrouch.being = true;
characterController.ExpectCrouch.shouldBe = true;
characterController.ExecuteCommand<PlayerCancelRunCommand>();
_addedVelocity = false;
}
@@ -319,22 +328,27 @@ namespace BITFALL.Entities.Player.Movement.States
public override void AfterUpdateMovement(float deltaTime)
{
base.AfterUpdateMovement(deltaTime);
if (characterController.pauseRun.Allow)
{
characterController.TransitionState<Walk>();
return;
}
switch (characterController.ExpectRun.shouldBe,characterController.ExpectCrouch.shouldBe)
{
case (_,_) when characterController.Stamina is 0:
characterController.ExpectSprint.Reset();
characterController.TransitionState<Run>();
break;
return;
case (_,true) when characterController.IsGrounded && characterController.Stamina >= slideCost:
characterController.Stamina -= slideCost;
characterController.TransitionState<Slide>();
break;
return;
case (_,true):
characterController.TransitionState<Crouch>();
break;
return;
case (false,false):
characterController.TransitionState<Walk>();
break;
return;
}
}
public override void ExecuteCommand<T>(T command)