public void TestIncapacitateOption2ToTrash_Hero() { // Arrange SetupGameController("BaronBlade", DeckNamespace, "Ra", "Legacy", "Megalopolis"); StartGame(); Card dangerSense = GetCard("DangerSense"); PutOnDeck(legacy, dangerSense); SetHitPoints(TangoOne.CharacterCard, 1); DealDamage(baron, TangoOne, 2, DamageType.Melee); DecisionSelectLocation = new LocationChoice(legacy.TurnTaker.Deck); DecisionMoveCardDestination = new MoveCardDestination(legacy.TurnTaker.Trash, false); // Act GoToUseIncapacitatedAbilityPhase(TangoOne); UseIncapacitatedAbility(TangoOne, 1); // Assert AssertIncapacitated(TangoOne); AssertOnTopOfTrash(legacy, dangerSense); }
public void TestBookOfTheDeadSearchTrashAndPutIntoHand() { SetupGameController("BaronBlade", "Cauldron.Necro", "Ra", "Megalopolis"); StartGame(); GoToPlayCardPhase(necro); //Search your deck or trash for a ritual and put it into play or into your hand. If you searched your deck, shuffle your deck. //since no decisions specified, searching deck and putting in play var ritual = PutInTrash("BloodRite"); QuickHandStorage(necro, ra); var shuffleCheck = necro.HeroTurnTaker.Deck.GetTopCards(2).Concat(necro.HeroTurnTaker.Deck.GetBottomCards(2)).ToList(); DecisionSelectLocation = new LocationChoice(necro.HeroTurnTaker.Trash); DecisionMoveCardDestination = new MoveCardDestination(necro.HeroTurnTaker.Hand); DecisionSelectCard = ritual; var card = PutIntoPlay("BookOfTheDead"); QuickHandCheck(2, 0); AssertInHand(necro, ritual); AssertInTrash(necro, card); AssertDeckShuffled(necro, shuffleCheck[0], shuffleCheck[1], shuffleCheck[2], shuffleCheck[3]); }
public void TestRenegadeCricketIncap1() { SetupGameController("BaronBlade", "Cauldron.Cricket/RenegadeCricketCharacter", "Legacy", "Bunker", "TheScholar", "Magmaria"); StartGame(); SetupIncap(baron); DecisionSelectLocations = new LocationChoice[] { new LocationChoice(baron.TurnTaker.Deck), new LocationChoice(legacy.TurnTaker.Deck), new LocationChoice(env.TurnTaker.Deck) }; Card battalion = PutOnDeck("BladeBattalion"); //Select a deck and put its top card into play. UseIncapacitatedAbility(cricket, 0); AssertIsInPlay(battalion); Card ring = PutOnDeck("TheLegacyRing"); //Select a deck and put its top card into play. UseIncapacitatedAbility(cricket, 0); AssertIsInPlay(ring); Card defender = PutOnDeck("SeismicDefender"); //Select a deck and put its top card into play. UseIncapacitatedAbility(cricket, 0); AssertIsInPlay(defender); }
public void TestInfiltrate() { // Arrange SetupGameController("BaronBlade", DeckNamespace, "Ra", "Legacy", "Megalopolis"); MakeCustomHeroHand(TangoOne, new List <string>() { InfiltrateCardController.Identifier, GhostReactorCardController.Identifier }); StartGame(); PutOnDeck(TangoOne, GetCard(CriticalHitCardController.Identifier)); PutOnDeck(TangoOne, GetCard(FarsightCardController.Identifier)); DecisionSelectLocation = new LocationChoice(TangoOne.HeroTurnTaker.Deck); DecisionSelectCard = GetCard(CriticalHitCardController.Identifier); // First drawn card to put back on deck DecisionSelectCardToPlay = GetCard(CriticalHitCardController.Identifier); // Act GoToStartOfTurn(TangoOne); PlayCardFromHand(TangoOne, InfiltrateCardController.Identifier); // Assert AssertIsInPlay(GetCardInPlay(CriticalHitCardController.Identifier)); }
public void TestIncapacitateOption2ToDeck_Villain() { // Arrange SetupGameController("BaronBlade", DeckNamespace, "Ra", "Legacy", "Megalopolis"); StartGame(); Card backlashField = GetCard("BacklashField"); PutOnDeck(baron, backlashField); SetHitPoints(TangoOne.CharacterCard, 1); DealDamage(baron, TangoOne, 2, DamageType.Melee); DecisionSelectLocation = new LocationChoice(baron.TurnTaker.Deck); DecisionMoveCardDestination = new MoveCardDestination(baron.TurnTaker.Deck, false); // Act GoToUseIncapacitatedAbilityPhase(TangoOne); UseIncapacitatedAbility(TangoOne, 1); // Assert AssertIncapacitated(TangoOne); AssertOnTopOfDeck(baron, backlashField); }
public void TestVoiceMimicry() { SetupGameController("AkashBhuta", "Cauldron.Cricket", "Legacy", "Bunker", "TheScholar", "Magmaria"); StartGame(); DecisionSelectLocations = new LocationChoice[] { new LocationChoice(akash.TurnTaker.Deck), new LocationChoice(legacy.TurnTaker.Deck), new LocationChoice(env.TurnTaker.Deck) }; Card phlange = PutOnDeck("ArborealPhalanges"); //Play the top card of a deck. PlayCard("VoiceMimicry"); AssertIsInPlay(phlange); Card ring = PutOnDeck("TheLegacyRing"); //Play the top card of a deck. PlayCard("VoiceMimicry"); AssertIsInPlay(ring); Card defender = PutOnDeck("SeismicDefender"); //Play the top card of a deck. PlayCard("VoiceMimicry"); AssertIsInPlay(defender); }
public void TestEnhancedHearing() { SetupGameController("AkashBhuta", "Cauldron.Cricket", "Legacy", "Bunker", "TheScholar", "Megalopolis"); StartGame(); DecisionSelectLocations = new LocationChoice[] { new LocationChoice(bunker.TurnTaker.Deck), new LocationChoice(env.TurnTaker.Deck) }; Card hear = PlayCard("EnhancedHearing"); //At the start of your turn, reveal the top card of 2 different decks, then replace them. GoToStartOfTurn(cricket); AssertNumberOfCardsInRevealed(bunker, 0); AssertNumberOfCardsInRevealed(env, 0); //Increase sonic damage dealt to {Cricket} by 1. QuickHPStorage(cricket); DealDamage(akash, cricket, 2, DamageType.Sonic); QuickHPCheck(-3); //check only sonic damage QuickHPUpdate(); DealDamage(akash, cricket, 2, DamageType.Fire); QuickHPCheck(-2); //check only cricket QuickHPStorage(bunker); DealDamage(akash, bunker, 2, DamageType.Sonic); QuickHPCheck(-2); //Power: Destroy this card. UsePower(hear); AssertInTrash(hear); }
public void TestCricketIncap2Trash() { SetupGameController("Apostate", "Cauldron.Cricket", "Legacy", "Bunker", "TheScholar", "Megalopolis"); StartGame(); SetupIncap(apostate); Card ring = PutOnDeck("TheLegacyRing"); DecisionSelectLocation = new LocationChoice(legacy.TurnTaker.Deck); DecisionMoveCardDestination = new MoveCardDestination(legacy.TurnTaker.Trash); //Look at the top card of a deck and replace or discard it. UseIncapacitatedAbility(cricket, 1); AssertOnTopOfTrash(legacy, ring); AssertNumberOfCardsInRevealed(cricket, 0); }
public void TestHeadlongIncap3_Replace() { SetupGameController("BaronBlade", "Chasejyd.Headlong", "Legacy", "Bunker", "TheScholar", "Megalopolis"); StartGame(); DestroyNonCharacterVillainCards(); SetupIncap(baron); Card legacyTop = legacy.TurnTaker.Deck.TopCard; GoToUseIncapacitatedAbilityPhase(headlong); DecisionSelectLocation = new LocationChoice(legacy.TurnTaker.Deck); DecisionMoveCardDestination = new MoveCardDestination(legacy.TurnTaker.Deck); //You may look at the top card of a deck, then replace it or Discard it. UseIncapacitatedAbility(headlong, 2); AssertOnTopOfDeck(legacyTop); }
public void TestWastelandRoninCricketIncap3() { SetupGameController("AkashBhuta", "Cauldron.Cricket/WastelandRoninCricketCharacter", "Legacy", "Bunker", "TheScholar", "Magmaria"); StartGame(); SetupIncap(akash); DecisionSelectLocations = new LocationChoice[] { new LocationChoice(akash.TurnTaker.Deck), new LocationChoice(legacy.TurnTaker.Deck), new LocationChoice(env.TurnTaker.Deck) }; Card akashBottom = GetBottomCardOfDeck(akash); Card legacyBottom = GetBottomCardOfDeck(legacy); Card envBottom = GetBottomCardOfDeck(env); //Move the bottom card of a deck to the top. UseIncapacitatedAbility(cricket, 2); UseIncapacitatedAbility(cricket, 2); UseIncapacitatedAbility(cricket, 2); AssertOnTopOfDeck(akashBottom); AssertOnTopOfDeck(legacyBottom); AssertOnTopOfDeck(envBottom); }
public void TestRenegadeCricketInnatePower() { SetupGameController("Chokepoint", "Cauldron.Cricket/RenegadeCricketCharacter", "Legacy", "Bunker", "TheScholar", "Megalopolis"); StartGame(); Card staff = PutOnDeck("TelescopingStaff"); Card ring = PutOnDeck("TheLegacyRing"); //Reveal the top card of a hero deck. You may discard a card to put it into play, otherwise put it into that player's hand. QuickHandStorage(cricket); UsePower(cricket); QuickHandCheck(-1); AssertIsInPlay(staff); DecisionSelectLocation = new LocationChoice(legacy.TurnTaker.Deck); DecisionDoNotSelectCard = SelectionType.DiscardCard; QuickHandStorage(cricket); UsePower(cricket); QuickHandCheck(0); AssertInHand(legacy, ring); }
public void VanishIncap2_MoveToTop() { SetupGameController("BaronBlade", "Cauldron.Vanish", "Haka", "Bunker", "TheScholar", "Megalopolis"); StartGame(); DestroyCard("MobileDefensePlatform"); SetupIncap(baron); AssertIncapacitated(vanish); GoToUseIncapacitatedAbilityPhase(vanish); var topCard = haka.TurnTaker.Deck.TopCard; var bottomCard = haka.TurnTaker.Deck.BottomCard; DecisionSelectLocation = new LocationChoice(haka.TurnTaker.Deck); DecisionMoveCardDestination = new MoveCardDestination(haka.TurnTaker.Deck, false); UseIncapacitatedAbility(vanish, 1); AssertNumberOfCardsInRevealed(haka, 0); AssertOnTopOfDeck(bottomCard); AssertOnTopOfDeck(topCard, 1); }
public void TestGenesisIncap3Replace() { var promoDict = new Dictionary <string, string> { }; promoDict["Cauldron.Starlight"] = "GenesisStarlightCharacter"; SetupGameController(new List <string> { "BaronBlade", "Cauldron.Starlight", "Legacy", "TheHarpy", "Megalopolis" }, false, promoDict); StartGame(); SetupIncap(baron); Card takedown = PutOnDeck("TakeDown"); DecisionMoveCardDestination = new MoveCardDestination(legacy.TurnTaker.Deck); DecisionSelectLocation = new LocationChoice(legacy.TurnTaker.Deck); UseIncapacitatedAbility(starlight, 2); AssertOnTopOfDeck(legacy, takedown); }