Пример #1
0
        public void PlayerLevelUpTest()
        {
            PlayerState ps = MakePlayer();

            int level1hp      = ps.GetHealthMax();
            int level1mana    = ps.GetManaMax();
            int level1stamina = ps.GetStaminaMax();

            Assert.IsFalse(ps.AddExperience(499)); // not quite enough
            Assert.IsTrue(ps.AddExperience(1));    // there we go
            int level2hp      = ps.GetHealthMax();
            int level2mana    = ps.GetManaMax();
            int level2stamina = ps.GetStaminaMax();

            Assert.IsFalse(ps.AddExperience(999)); // not quite enough
            Assert.IsTrue(ps.AddExperience(1));    // there we go
            int level3hp      = ps.GetHealthMax();
            int level3mana    = ps.GetManaMax();
            int level3stamina = ps.GetStaminaMax();

            // this should update the player's health, mana, and stamina
            Assert.AreEqual(level1hp + 3, level2hp);
            Assert.AreEqual(level1mana + 1, level2mana);
            Assert.AreEqual(level1stamina + 1, level2stamina);

            Assert.AreEqual(level2hp + 3, level3hp);
            Assert.AreEqual(level2mana + 2, level3mana); // because 2->3 is an odd levelup, should get 2
            // more mana on this level (1.5 = +1 on even levels, +2 on odd)
            Assert.AreEqual(level2stamina + 1, level3stamina);
        }