示例#1
0
        public void Hydra_TakeCombatDamage()
        {
            hydra.TakeCombatDamage(20, damageNonFire.Object, attacker1.Object, 1);

            Assert.AreEqual(2, (int)newHeadsToGrow.GetValue(hydra));
            Assert.IsFalse((bool)tookFireDamage.GetValue(hydra));
            Assert.AreEqual(4, hydra.EquipedWeapon.Count());
            RoundOfDamage rndOfDamage = (RoundOfDamage)roundOfDamage.GetValue(hydra);

            Assert.AreEqual(20, rndOfDamage.TotalDamage);
            Assert.AreEqual(attacker1.Object, rndOfDamage.LastAttacker);
            Assert.AreEqual(1u, rndOfDamage.CombatRound);
            Assert.IsTrue(rndOfDamage.HeadCut);
            notify.Verify(e => e.Mob(attacker1.Object, It.Is <ITranslationMessage>(f => f.Message == "You cut off on of the hydras heads.")), Times.Once);
            notify.Verify(e => e.Room(attacker1.Object, hydra, null, It.Is <ITranslationMessage>(f => f.Message == "{performer} cut off on of the hydras heads."), null, false, false), Times.Once);
        }