49 lines
1.7 KiB
C#
49 lines
1.7 KiB
C#
![]() |
using BlueWater.Interfaces;
|
||
|
|
||
|
namespace BlueWater.Players.Tycoons
|
||
|
{
|
||
|
public class DashState : IStateMachine<TycoonPlayer>
|
||
|
{
|
||
|
public void EnterState(TycoonPlayer character)
|
||
|
{
|
||
|
var dashSpeed = character.TycoonMovement.DashTime;
|
||
|
character.SpineController.PlayAnimationDuration(TycoonPlayerSpineAnimation.Dash, false, dashSpeed);
|
||
|
}
|
||
|
|
||
|
public void UpdateState(TycoonPlayer character)
|
||
|
{
|
||
|
if (character.TycoonMovement.IsDashing) return;
|
||
|
|
||
|
if (character.TycoonMovement.IsMoving)
|
||
|
{
|
||
|
character.StateMachineController.TransitionToState(character.TycoonPickupHandler.IsPickedUpAnything()
|
||
|
? character.ServingState
|
||
|
: character.WalkingState, character);
|
||
|
}
|
||
|
else if (character.IsMakingCocktail)
|
||
|
{
|
||
|
character.StateMachineController.TransitionToState(character.MakingCocktailState, character);
|
||
|
}
|
||
|
else if (character.IsCleaningFloor)
|
||
|
{
|
||
|
character.StateMachineController.TransitionToState(character.CleaningFloorState, character);
|
||
|
}
|
||
|
else if (character.IsCleaningTable)
|
||
|
{
|
||
|
character.StateMachineController.TransitionToState(character.CleaningTableState, character);
|
||
|
}
|
||
|
else if (!character.TycoonMovement.IsMoving)
|
||
|
{
|
||
|
character.StateMachineController.TransitionToState(character.TycoonPickupHandler.IsPickedUpAnything()
|
||
|
? character.ServingIdleState
|
||
|
: character.IdleState, character);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void ExitState(TycoonPlayer character)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|