public override IEnumerator StartGame() { if (CharacterCardController is TheRamCharacterCardController) { IEnumerator coroutine = HandleWinters(banish: true); if (UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } coroutine = MoveUpCloseToTrash(); if (UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } coroutine = GameController.PlayCard(this, FindCardsWhere((Card c) => c.Identifier == "GrapplingClaw").FirstOrDefault(), cardSource: new CardSource(CharacterCardController)); if (base.UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } var shuffleAction = new ShuffleCardsAction(new CardSource(CharacterCardController), this.TurnTaker.Deck); coroutine = GameController.DoAction(shuffleAction); if (base.UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } } yield break; }
public override IEnumerator StartGame() { if (CharacterCardController is TheRamCharacterCardController) { //"At the start of the game, put {TheRam}'s villain character cards into play, “Mechanical Juggernaut” side up.", IEnumerator coroutine; //"Search the villain deck for all copies of Up Close and put them in the trash. coroutine = MoveUpCloseToTrash(); if (UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } //Put Grappling Claw into play. Shuffle the villain deck." coroutine = GameController.PlayCard(this, FindCardsWhere((Card c) => c.Identifier == "GrapplingClaw").FirstOrDefault(), cardSource: new CardSource(CharacterCardController)); if (base.UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } var shuffleAction = new ShuffleCardsAction(new CardSource(CharacterCardController), this.TurnTaker.Deck); coroutine = GameController.DoAction(shuffleAction); if (base.UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } } else { //"At the start of the game, put {TheRam} and {AdmiralWinters}' villain character cards into play, “Amphibious Dreadnought” and “Dreadnought Pilot” sides up. IEnumerator coroutine; //Search the villain deck for all copies of Up Close and put them in the trash. coroutine = MoveUpCloseToTrash(); if (UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } //Put 2 copies of Remote Mortar into play. Shuffle the villain deck." coroutine = PutCardsIntoPlay(new LinqCardCriteria((Card c) => c.Identifier == "RemoteMortar"), 2); if (UseUnityCoroutines) { yield return(GameController.StartCoroutine(coroutine)); } else { GameController.ExhaustCoroutine(coroutine); } } yield break; }