diff --git a/7DaysProfileEditor/source/Skills/SkillData.cs b/7DaysProfileEditor/source/Skills/SkillData.cs index 6fd4965..b49ce61 100644 --- a/7DaysProfileEditor/source/Skills/SkillData.cs +++ b/7DaysProfileEditor/source/Skills/SkillData.cs @@ -11,6 +11,7 @@ namespace SevenDaysProfileEditor.Skills { internal class SkillData { public static int expToLevelDefault; public static int expToPlayerLevel; + public static double experienceMultiplier; public static int maxLevelDefault; public static int maxPlayerLevel; public static List skillList = new List(); diff --git a/7DaysProfileEditor/source/Skills/SkillsTab.cs b/7DaysProfileEditor/source/Skills/SkillsTab.cs index e251f6d..ca04d52 100644 --- a/7DaysProfileEditor/source/Skills/SkillsTab.cs +++ b/7DaysProfileEditor/source/Skills/SkillsTab.cs @@ -11,7 +11,7 @@ namespace SevenDaysProfileEditor.Skills { /// /// Tab for dealing with skills. /// - internal class SkillsTab : TabPage, IValueListener, IValueListener { + internal class SkillsTab : TabPage, IValueListener{ private bool locked; private TableLayoutPanel panel; private PlayerDataFile playerDataFile; @@ -35,20 +35,19 @@ public SkillsTab(PlayerDataFile playerDataFile, List recipes) { panel.Dock = DockStyle.Fill; TableLayoutPanel general = new TableLayoutPanel() { - Size = new Size(478, 36), + Size = new Size(550, 36), Anchor = AnchorStyles.Top }; - LabeledControl LabeledPlayerLevelBox = new LabeledControl("Player level", new NumericTextBox(playerDataFile.level, 1, SkillData.maxPlayerLevel, 80), 150); + LabeledControl LabeledPlayerLevelBox = new LabeledControl("Player level", new NumericTextBox(playerDataFile.level, 1, SkillData.maxPlayerLevel, 60), 150); playerDataFile.level.AddListener(this); general.Controls.Add(LabeledPlayerLevelBox, 0, 0); - LabeledControl LabeledSkillPointsBox = new LabeledControl("Skill points", new NumericTextBox(playerDataFile.skillPoints, 0, int.MaxValue, 80), 150); + LabeledControl LabeledSkillPointsBox = new LabeledControl("Skill points", new NumericTextBox(playerDataFile.skillPoints, 0, int.MaxValue, 60), 150); general.Controls.Add(LabeledSkillPointsBox, 1, 0); - LabeledControl LabeledExperienceBox = new LabeledControl("Experience", new NumericTextBox(playerDataFile.experience, 0u, (uint)(SkillData.expToPlayerLevel * SkillData.maxPlayerLevel), 80), 150); - playerDataFile.experience.AddListener(this); - general.Controls.Add(LabeledExperienceBox, 2, 0); + LabeledControl LabeledExpToNextLevelBox = new LabeledControl("Exp to next level", new NumericTextBox(playerDataFile.experience, 0u, (uint)(SkillData.expToPlayerLevel * SkillData.maxPlayerLevel), 60), 175); + general.Controls.Add(LabeledExpToNextLevelBox, 2, 0); panel.Controls.Add(general); @@ -104,7 +103,7 @@ public SkillsTab(PlayerDataFile playerDataFile, List recipes) { public void ValueUpdated(Value source) { if (!locked) { locked = true; - playerDataFile.experience.Set((uint)(source.Get() * SkillData.expToPlayerLevel)); + playerDataFile.experience.Set((uint)(SkillData.expToPlayerLevel * System.Math.Pow(SkillData.experienceMultiplier, source.Get()))); locked = false; } } @@ -113,13 +112,15 @@ public void ValueUpdated(Value source) { /// Updates player level based on experience. /// /// - public void ValueUpdated(Value source) { - if (!locked) { - locked = true; - playerDataFile.level.Set((int)source.Get() / SkillData.expToPlayerLevel); - locked = false; - } - } + + // This does not return the correct value, complicated maths involved. + //public void ValueUpdated(Value source) { + // if (!locked) { + // locked = true; + // playerDataFile.level.Set((int)source.Get() / SkillData.expToPlayerLevel); + // locked = false; + // } + //} /// /// Sets up skills for editing.