Пример #1
0
        public void UnfreezePlayers()
        {
            GameEngine.GameState.CurrentPlayer = player;

            var fieryWarAxe = HearthEntityFactory.CreateCard <FieryWarAxe>();

            fieryWarAxe.WeaponOwner = player;
            player.Weapon           = fieryWarAxe;

            player.ApplyStatusEffects(PlayerStatusEffects.FROZEN);
            opponent.ApplyStatusEffects(PlayerStatusEffects.FROZEN);

            GameEngine.EndTurn();

            // The player should be unfrozen because they have not attacked their turn
            Assert.IsFalse(player.IsFrozen, "Verify player is unfrozen");

            // The opponent on the other hand should still be frozen
            Assert.IsTrue(opponent.IsFrozen, "Verify opponent is frozen");

            GameEngine.EndTurn();

            // Now the opponent should be unfrozen
            Assert.IsFalse(opponent.IsFrozen, "Verify opponent is unfrozen");

            player.Attack(opponent);
            player.ApplyStatusEffects(PlayerStatusEffects.FROZEN);

            GameEngine.EndTurn();

            // This time, the player should remain frozen because they have attacked on their turn
            Assert.IsTrue(player.IsFrozen, "Verify player is frozen");

            GameEngine.EndTurn();
            GameEngine.EndTurn();

            // And now, they should be unfrozen
            Assert.IsFalse(player.IsFrozen, "Verify player is unfrozen");
        }
Пример #2
0
        public void PlayerExhaustion()
        {
            var fieryWarAxe = HearthEntityFactory.CreateCard <FieryWarAxe>();

            fieryWarAxe.CurrentManaCost = 0;

            player.AddCardToHand(fieryWarAxe);
            player.PlayCard(fieryWarAxe, null);

            player.Attack(opponent);
            Assert.IsTrue(player.IsExhausted, "Verify the player is exhausted");
            Assert.IsFalse(player.CanAttack, "Verify the player can't attack");

            player.ApplyStatusEffects(PlayerStatusEffects.WINDFURY);
            Assert.IsFalse(player.IsExhausted, "Verify the player is unexhausted now");

            player.Attack(opponent);
            Assert.IsTrue(player.IsExhausted, "Verify the player is exhausted");
            Assert.IsFalse(player.CanAttack, "Verify the player can't attack");

            GameEngine.EndTurn();
            Assert.IsFalse(player.IsExhausted, "Verify the player is unexhausted after the turn ends");
        }
Пример #3
0
        public void DeathsBite()
        {
            var deathsbite = HearthEntityFactory.CreateCard <DeathsBite>();

            deathsbite.CurrentManaCost = 0;

            var yeti = HearthEntityFactory.CreateCard <ChillwindYeti>();

            GameEngine.GameState.CurrentPlayerPlayZone[0] = yeti;

            player.AddCardToHand(deathsbite);
            player.ApplyStatusEffects(PlayerStatusEffects.WINDFURY);

            player.PlayCard(deathsbite, null);

            deathsbite.Attack(opponent);
            deathsbite.Attack(opponent);

            Assert.IsTrue(GameEngine.DeadCardsThisTurn.Contains(deathsbite), "Verify the weapon broke");
            Assert.AreEqual(yeti.MaxHealth - 1, yeti.CurrentHealth, "Verify yeti took damage due to deathrattle");

            // Now, if Death's Bite was replaced, it should also trigger the deathrattle
            deathsbite = HearthEntityFactory.CreateCard <DeathsBite>();
            deathsbite.CurrentManaCost = 0;

            player.AddCardToHand(deathsbite);
            player.PlayCard(deathsbite, null);

            var weaponsmith = HearthEntityFactory.CreateCard <ArathiWeaponsmith>();

            weaponsmith.CurrentManaCost = 0;
            weaponsmith.Owner           = player;

            player.AddCardToHand(weaponsmith);
            player.PlayCard(weaponsmith, null);

            // death rattle should trigger, damaging the yeti and the weaponsmith
            Assert.IsTrue(GameEngine.DeadCardsThisTurn.Contains(deathsbite), "Verify the weapon broke");
            Assert.AreEqual(yeti.MaxHealth - 2, yeti.CurrentHealth, "Verify yeti got hit again");
            Assert.AreEqual(weaponsmith.MaxHealth - 1, weaponsmith.CurrentHealth, "Verify weaponsmith got hit");
        }