Example #1
0
        public void IsPlayableTest()
        {
            GameState G = new GameState(DeckChoiceUI.COMBO_DECK, DeckChoiceUI.COMBO_DECK, true, 0);
            // Create a few cards
            var First = new SpellCard(G)
            {
                ManaCost   = 0,
                IsTargeted = true,
                Owner      = G.PlayerOne,
            };
            var Second = new MinionCard(G)
            {
                Health    = 1,
                ManaCost  = 0,
                OnBoard   = true,
                CanAttack = true,
                Owner     = G.PlayerOne,
            };

            G.PlayerOne.Board.Add(Second);
            G.PlayerOne.Hand.Add(First);
            // This should NOT be playable - invalid target
            Assert.IsFalse(First.IsPlayable(new Move(First.Id, 0)));
            // This should NOT be playable - invalid target
            Assert.IsFalse(Second.IsPlayable(new Move(Second.Id, 0)));
            // But this should be
            Assert.IsTrue(Second.IsPlayable(new Move(Second.Id, G.PlayerTwo.PlayerCard.Id)));
            // Finally, this should be
            Assert.IsTrue(First.IsPlayable(new Move(First.Id, Second.Id)));
        }