using Cysharp.Threading.Tasks; namespace DanieleMarotta.RiversongCodeShowcase { public abstract class IntentExecutionLogic { public virtual UniTask InitializeAsync(IServiceLocator serviceLocator) { return UniTask.CompletedTask; } public virtual IntentExecutionResult OnStartingIntent(Agent agent, in AgentIntent intent) { return IntentExecutionResult.Success; } public virtual void OnCanceled(Agent agent, AgentIntent intent) { } public abstract IntentExecutionResult Execute(Agent agent, in AgentIntent intent); } }