private IEnumerator SkipToPlayResponse(PhaseChangeAction pca) { SkipToTurnPhaseAction skipAction = new SkipToTurnPhaseAction(GetCardSource(), TurnTaker.GetNextTurnPhase(TurnTaker.TurnPhases.Where(tp => tp.Phase == Phase.DrawCard).FirstOrDefault()), false, goImmediatelyToPhase: true, interruptActions: true); YesNoCardDecision decision = new YesNoCardDecision(GameController, DecisionMaker, SelectionType.SkipTurn, Card, action: skipAction, cardSource: GetCardSource()); IEnumerator coroutine = GameController.MakeDecisionAction(decision); if (UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } if (DidPlayerAnswerYes(decision)) { coroutine = DoAction(skipAction); if (UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } coroutine = GameController.SelectAndPlayCardFromHand(DecisionMaker, true, cardCriteria: new LinqCardCriteria(c => IsMomentum(c), "momentum"), cardSource: GetCardSource()); if (UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } } }