public void EndAction(ActionType actionType) { switch (actionType) { case ActionType.Activation: ActivateUnit(); break; case ActionType.Deactivation: DeactivateUnit(); break; case ActionType.Movement: SetUnitPhase(UnitPhase.AfterMovement); _unitAnimations.AnimateIdle(); HandleActivatingAttackMode(); break; case ActionType.Attack: _unitList.CheckWinCondition(); if (_unitAbility.GetAbilityType() == AbilityType.Dash) { ActivateDash(); } else { SkipTurn(); } break; case ActionType.MovementBeforeAttack: HandleAttackUnit(_attackAfterMovementXTarget, _attackAfterMovementYTarget); break; case ActionType.ActiveAbility: ActiveAbility(); break; case ActionType.ExecuteAbility: _unitList.CheckWinCondition(); if (_unitAbility.GetAbilityType() == AbilityType.Dash) { ActivateDash(); } else { SkipTurn(); } break; case ActionType.Dash: _unitAnimations.AnimateIdle(); SkipTurn(); break; case ActionType.SkipTurn: Invoke("NextTurn", 0.4f); break; } }