public ActionPhase(ITurnScope turnScope, CardSet availableActions) : base(turnScope) { Description = String.Format("{0}, select an action to play", turnScope.Player.Name); AvailableActions = new CardSet(availableActions.OrderByDescending(a => a.BaseCost).ToList()); AvailableActions.ToList().ForEach(actionCard => _availableResponses.Add(new PlayActionResponse(turnScope, actionCard))); if (_availableResponses.Any()) { _availableResponses.Add(new SkipActionPhaseResponse(turnScope)); } }