using System.Collections.Generic; using System.Threading; using Cysharp.Threading.Tasks; using UnityEngine; namespace Code.OfficeGame.BattleMode.Actions { public abstract class EntityTimelineActor : MonoBehaviour { public BattleAction CurrentAction { get; protected set;} public bool Finished => CurrentAction == null || CurrentAction.Finished; public abstract UniTask DecideAction(CancellationToken ctx); public Animator animator; protected readonly Dictionary BattleActions = new(); private void Awake() { foreach (var action in GetComponents()) { BattleActions.Add(action.ActionType, action); } } } }