Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #4
0
        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));
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
        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);
        }