public void RunAction(IGameAction action) { if (_currentAction != null) { return; } //Пропуск хода if (action == null) { EndAction(null); return; } if (action.Check()) { OnActionStart?.Invoke(action); _currentAction = action; action.status = actionStatuses.start; StartCoroutine(action.Execute()); } else { Debug.LogFormat("Действие {0} не прошло проверку", action.GetType()); } }