using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public abstract class NPCDecision : ScriptableObject
{
    protected Coroutine executeRoutine;

    public abstract IEnumerator ExecuteCoroutine(NPCBrain npc);
    public void Execute(NPCBrain npc)
    {
        executeRoutine = npc.StartCoroutine(ExecuteCoroutine(npc));
    }
    public abstract void Interrupt(NPCBrain npc);

    public bool IsRunning() => executeRoutine != null;

    public abstract bool IsPossibleToExecute(NPCBrain npc);
}