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); }