public class ChargingState : BaseState
{
    public ChargingState(PlayerController player) : base(player)
	{
	}

	public override void OnEnter()
    {
        controller.AttackInstance.OnButtonPressed(controller);
    }

	public override BaseState Update()
    {
        return null;
    }

	public override void OnExit()
    {

    }

	public override BaseState HandleInput()
    {
        if (controller.InputActions.Rotate != 0)
        {
            controller.Transform.Rotate(controller.Transform.forward, -controller.InputActions.Rotate.Value * controller.Stats.TurnSpeed);
        }

        if (!controller.InputActions.Attack.IsPressed)
        {
            ((ChargeAttack)controller.AttackInstance).OnButtonReleased(controller);
            return new ActiveState(controller);
        }

        return null;
    }
}