/// <summary> /// Called at the start of the turn to check for the activation of a delayed action and it's respective delayed /// status effects. Activates a delayed action if it's turn counter is 0. /// </summary> /// <param name="character">The character whose turn is starting.</param> public void StartTurn(Character character) { _statusEffectController.BeginStartTurn(character); if (_delayedActions.ContainsKey(character)) { var removeActions = new List <DelayedAction>(); foreach (var action in _delayedActions[character]) { action.TurnsRemaining--; if (action.TurnsRemaining <= 0) { removeActions.Add(action); ApplyHealingAndDamage(action); } } foreach (var action in removeActions) { _delayedActions[character].Remove(action); } } _statusEffectController.FinishStartTurn(character); }