
using Godot;
using System.Collections.Generic;


namespace Rokojori
{  
  [Tool]
  [GlobalClass, Icon("res://addons/rokojori_action_library/Icons/ConditionalAction.svg")]
  public partial class CoolDown : Action
  {
    [Export]
    public Action action;

    [Export]
    public Duration coolDownDuration;

    bool _isCoolingDown = false;
    protected override void _OnTrigger()
    {
      if ( _isCoolingDown )
      {
        return;
      }

      _isCoolingDown = coolDownDuration !=  null;
      Trigger( action );

      if ( coolDownDuration != null )
      {
        TimeLineManager.ScheduleEventIn(
          coolDownDuration.timeLine, coolDownDuration.GetDurationInSeconds(),
          ev => _isCoolingDown = false 
        );
      }

    }
  }
}