コード例 #1
0
        public void CannotNormalSetTwiceInSameMainPhase()
        {
            Assert.AreEqual(0, Kaiba.Field.GetMonsters().Count);
            Assert.AreEqual(CardLocation.Hand, BattleOx.Location);
            Assert.AreEqual(CardLocation.Hand, TwinHeadedBehemoth.Location);

            var phase   = new MainPhase1(Game);
            var success = phase.NormalSetWithoutTribute(BattleOx);

            // Fist summon should go through
            Assert.True(success);
            Assert.AreEqual(1, Kaiba.Field.GetMonsters().Count);
            Assert.AreEqual(CardLocation.MonsterZone, BattleOx.Location);
            Assert.AreEqual(CardLocation.Hand, TwinHeadedBehemoth.Location);

            success = phase.NormalSetWithoutTribute(TwinHeadedBehemoth);
            Assert.False(success);
            Assert.AreEqual(1, Kaiba.Field.GetMonsters().Count);
            Assert.AreEqual(CardLocation.MonsterZone, BattleOx.Location);
            Assert.AreEqual(CardLocation.Hand, TwinHeadedBehemoth.Location);
        }
コード例 #2
0
        public void CanActivateFluteIfLegal()
        {
            var lordOfD = (Monster)Kaiba.Deck.AddCardToHand(Kaiba.Hand, "Lord of D.");
            var flute   = (Spell)Kaiba.Deck.AddCardToHand(Kaiba.Hand, "The Flute of Summoning Dragon");
            var bewd    = (Monster)Kaiba.Deck.AddCardToHand(Kaiba.Hand, "Blue-Eyes White Dragon");
            var tdragon = (Monster)Kaiba.Deck.AddCardToHand(Kaiba.Hand, "Tyrant Dragon");

            Assert.AreEqual(4, Kaiba.Hand.Cards.Count);
            Assert.AreEqual(0, Kaiba.DiscardPile.Count);
            Assert.AreEqual(0, Kaiba.Field.SpellTrapZones.Where(z => z.SpellTrapCard != null).Count());
            Assert.AreEqual(0, Kaiba.Field.MonsterZones.Where(z => z.Monster != null).Count());

            var mp = new MainPhase1(Game);

            mp.NormalSetWithoutTribute(lordOfD);
            var success = mp.ActivateSpell(flute, bewd, tdragon);

            Assert.True(success);
            Assert.AreEqual(0, Kaiba.Hand.Cards.Count);
            Assert.AreEqual(1, Kaiba.DiscardPile.Count);
            Assert.AreEqual(0, Kaiba.Field.SpellTrapZones.Where(z => z.SpellTrapCard != null).Count());
            Assert.AreEqual(3, Kaiba.Field.MonsterZones.Where(z => z.Monster != null).Count());
        }