示例#1
0
        public void SetLevelAndStats(int level)
        {
            // Set the level and handle excess experience by looping here.
            int carryOverXp = (int)(Stats.Experience.Actual - Stats.Experience.Max);

            Stats.Experience.Actual = Stats.Experience.Min + carryOverXp;
            Stats.Level.Actual      = level;
            Stats.Experience.Max    = StaticUtil.StatShouldBe(Stats.Experience, (int)Stats.Level.Actual);
            if (Stats.Experience.Actual > Stats.Experience.Max)
            {
                LevelUp();
            }

            // The level is correct, now calculate all of the stats.
            Stats.XpReward.Actual = StaticUtil.StatShouldBe(Stats.XpReward, (int)Stats.Level.Actual);
            Stats.Health.Max      = StaticUtil.StatShouldBe(Stats.Health, (int)Stats.Level.Actual);
            Stats.Armor.Max       = StaticUtil.StatShouldBe(Stats.Armor, (int)Stats.Level.Actual);

            Stats.Agility.Actual   = StaticUtil.StatShouldBe(Stats.Agility, (int)Stats.Level.Actual);
            Stats.Dexterity.Actual = StaticUtil.StatShouldBe(Stats.Dexterity, (int)Stats.Level.Actual);
            Stats.Endurance.Actual = StaticUtil.StatShouldBe(Stats.Endurance, (int)Stats.Level.Actual);
            Stats.Strength.Actual  = StaticUtil.StatShouldBe(Stats.Strength, (int)Stats.Level.Actual);
        }