public void Races_level_up()
        {
            var level        = TestHelper.BuildLevel(".");
            var playerEntity = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 0));
            var player       = playerEntity.Player;

            ItemData.PotionOfExperience.Instantiate(playerEntity, 13);
            ItemData.PotionOfElfness.Instantiate(playerEntity);
            var manager = playerEntity.Manager;

            manager.Queue.ProcessQueue(manager);

            Assert.Equal(0, player.SkillPoints);
            Assert.Equal(0, player.TraitPoints);
            Assert.Equal(0, player.MutationPoints);
            Assert.Equal(1000, player.NextLevelXP);
            Assert.Equal(14, manager.AbilitiesToAffectableRelationship[playerEntity.Id].Count());
            Assert.Equal(2, manager.EntityItemsToContainerRelationship[playerEntity.Id].Count());

            TestHelper.ActivateAbility(ItemData.PotionOfExperience.Name + ": Drink", playerEntity, manager);
            manager.Queue.ProcessQueue(manager);

            Assert.Equal(2, manager.XPSystem.GetXPLevel(playerEntity, manager));
            Assert.Equal(3, player.SkillPoints);
            Assert.Equal(3, player.TraitPoints);
            Assert.Equal(0, player.MutationPoints);
            Assert.Equal(2000, player.NextLevelXP);
            var experienceAbility =
                manager.AffectableAbilitiesIndex[(playerEntity.Id, ItemData.PotionOfExperience.Name + ": Drink")];
        public void Hp_and_ep_depend_on_might_and_focus_and_regenerate_with_xp()
        {
            var level        = TestHelper.BuildLevel(".");
            var playerEntity = PlayerRace.InstantiatePlayer("Dudley", Sex.Male, level.Entity, new Point(0, 0));

            ItemData.PotionOfOgreness.Instantiate(playerEntity);
            var manager = playerEntity.Manager;

            manager.Queue.ProcessQueue(manager);

            var being = playerEntity.Being;

            Assert.Equal(100, being.EnergyPointMaximum);
            Assert.Equal(100, being.EnergyPoints);
            Assert.Equal(100, being.HitPointMaximum);
            Assert.Equal(100, being.HitPoints);

            being.EnergyPoints -= 50;
            being.HitPoints    -= 50;
            manager.XPSystem.AddPlayerXP(25, manager);

            manager.Queue.ProcessQueue(manager);

            Assert.Equal(60, being.EnergyPoints);
            Assert.Equal(60, being.HitPoints);

            TestHelper.ActivateAbility(ItemData.PotionOfOgreness.Name + ": Drink", playerEntity, manager);
            manager.Queue.ProcessQueue(manager);

            Assert.Equal(90, being.EnergyPointMaximum);
            Assert.Equal(60, being.EnergyPoints);
            Assert.Equal(120, being.HitPointMaximum);
            Assert.Equal(60, being.HitPoints);
        }