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);
                }
            }
        }