예제 #1
0
        public void SpecialItem_Add()
        {
            SpecialItem specialItem     = new SpecialItemCombat("useless item", 1, 0);
            SpecialItem specialItemSame = new SpecialItemCombat("useless item", 1, 0);
            Hero        hero            = new Hero("hero");

            hero.AddLoot(specialItem);

            Assert.AreEqual(true, hero.GetSpecialItems.Contains(specialItem));
            Assert.AreEqual(true, hero.GetSpecialItems.Contains(specialItemSame));
        }
예제 #2
0
        public void HeroStrenghtDifference()
        {
            Hero  Belterius       = new Hero("Belterius");
            Enemy evilHuman       = new Enemy("Common Human", 10, 10, EnemyTypes.Human);
            int   heroBaseAgility = Belterius.BaseAgility;

            //Base test
            int expectedStrenghtDifference = heroBaseAgility - LDVELH_WPF.Hero.UnharmedCombatDebuff - evilHuman.BaseAgility;

            Assert.AreEqual(expectedStrenghtDifference, Belterius.FindStrenghtDifference(evilHuman));

            //Item test
            SpecialItem shield = new SpecialItemCombat("iron shield", 4, 0);

            Belterius.AddLoot(shield);
            expectedStrenghtDifference = (heroBaseAgility + ((SpecialItemCombat)shield).AgilityBonus - LDVELH_WPF.Hero.UnharmedCombatDebuff) - evilHuman.BaseAgility;

            Assert.AreEqual(expectedStrenghtDifference, Belterius.FindStrenghtDifference(evilHuman));

            //PsychicPower test
            Belterius.AddCapacity(CapacityType.PsychicPower);
            expectedStrenghtDifference = (heroBaseAgility + ((SpecialItemCombat)shield).AgilityBonus + Capacity.PhychicPowerStrenght - LDVELH_WPF.Hero.UnharmedCombatDebuff) - evilHuman.BaseAgility;

            Assert.AreEqual(expectedStrenghtDifference, Belterius.FindStrenghtDifference(evilHuman));

            //Weapon Mastery (with and without weapon) test
            Belterius.AddCapacity(CapacityType.WeaponMastery);
            expectedStrenghtDifference = (heroBaseAgility + ((SpecialItemCombat)shield).AgilityBonus + Capacity.PhychicPowerStrenght - LDVELH_WPF.Hero.UnharmedCombatDebuff) - evilHuman.BaseAgility; //No weapon related to the Weapon mastery so no bonus

            Assert.AreEqual(expectedStrenghtDifference, Belterius.FindStrenghtDifference(evilHuman));

            Weapon wmWeapon = new Weapon("perfect weapon", Belterius.WeaponMastery);

            Belterius.WeaponHolder.Add(wmWeapon);
            expectedStrenghtDifference = (heroBaseAgility + ((SpecialItemCombat)shield).AgilityBonus + Capacity.PhychicPowerStrenght + Capacity.WeaponMasteryStrenght) - evilHuman.BaseAgility;

            Assert.AreEqual(expectedStrenghtDifference, Belterius.FindStrenghtDifference(evilHuman));

            //Multiples Items, Weapon Mastery, and psychic immune
            //WARNING TEST WILL FAIL IF ORC IS NOT IMMUN TO PSYCHIC ANYMORE, can check in Ennemy isWeakToPsychic
            SpecialItem ring = new SpecialItemCombat("magic ring", 6, 0);

            Belterius.AddLoot(ring);
            Enemy evilOrc = new Enemy("Common Orc", 15, 10, EnemyTypes.Orc);

            expectedStrenghtDifference = (heroBaseAgility + ((SpecialItemCombat)shield).AgilityBonus + ((SpecialItemCombat)ring).AgilityBonus + Capacity.WeaponMasteryStrenght) - evilOrc.BaseAgility;

            Assert.AreEqual(expectedStrenghtDifference, Belterius.FindStrenghtDifference(evilOrc));
        }
예제 #3
0
        public void SpecialItem_Remove()
        {
            SpecialItem specialItem = new SpecialItemCombat("useless item", 1, 0);
            Hero        hero        = new Hero("hero");

            hero.AddLoot(specialItem);

            Assert.AreEqual(true, hero.GetSpecialItems.Contains(specialItem));

            SpecialItem specialItemRemoval = new SpecialItemCombat("useless item", 1, 0);

            hero.RemoveLoot(specialItemRemoval);

            Assert.AreEqual(false, hero.GetSpecialItems.Contains(specialItem));
        }