public void ClearActionQueue() { for (var i = actionQueue.Count - 1; i >= 0; --i) { OnActionDequeue?.Invoke(i); } actionQueue.Clear(); Pathfinder.RepaintHexColors(); }
public void CancelLastAction() { if (!isExecutingActions) { return; } if (actionQueue.Count == 1) { Interrupt(); return; } actionQueue.RemoveAt(actionQueue.Count - 1); OnActionDequeue?.Invoke(actionQueue.Count - 1); }
private IEnumerator DequeueCoroutine() { isExecutingActions = true; while (actionQueue.Count != 0) { var action = actionQueue.First(); Debug.Log(action); yield return(action.Execute()); actionQueue.RemoveAt(0); OnActionDequeue?.Invoke(0); if (action.HasBeenInterrupted) { ClearActionQueue(); break; } } isExecutingActions = false; }