Fix job levels being reset when adding new jobs via >addjob #357
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes an issue where existing job levels would be incorrectly reduced when adding a new job with the
>addjobcommand.Root Cause
The Job.Level property is dynamically calculated from TotalExp and the character's current rank (sum of all job
circles). When a new job is added, the rank increases, which changes the EXP curve - the same TotalExp value now
corresponds to a lower level at the higher rank.
Steps to reproduce (before this fix):
>joblevelup 14(Archer is now level 15)>addjob 3002(Hunter)>joblevelup 44(Hunter is now level 45)>addjob 3005(Sapper) - Hunter drops from level 45 to level 9 (not shown in client)>joblevelup 44(Sapper is now level 45)Fix
Before adding a new job, store the current levels of all existing jobs. After adding the job (which increases the
rank), recalculate TotalExp for each existing job to maintain their levels at the new rank.