using System;
using Cirno.Scripts.Components.Actors;
using Godot;

namespace Cirno.Scripts.Components.FSM;

public partial class PlayerStateMachine : StateMachineBase<PlayerState, CharacterBody2D>
{
    [Export] public override PlayerState InitialState { get; protected set; } = PlayerState.Init;

    [Export] public Vector2 StartingDirection { get; set; } = Vector2.Down;
    
    [Export] public ActorResourceProvider MotivationResource { get; private set; } 
    
    [Export] public ActorResourceProvider Shield { get; private set; }
    
    public void RefillHealth()
    {
        GD.Print("Refilling health");
    }

    public void RefilleShield()
    {
        GD.Print("Refilling shield");
    }

    public void NoClip()
    {
        GD.Print("NoClip");
    }

    public void AddMotivation(float motivation)
    {
        MotivationResource.CurrentResource += motivation;
    }
    
}
