-- the effects of class and stats on calculating a character's salary are no longer hard-coded; instead, these can now be manipulated on a per-class basis!
Here's how it works: the game now looks to two new attributes in each character class in Classes.xml to calculate a character's salary, baseSalary and salaryStatValues.
First, baseSalary, sets the salary for a hypothetical character of that class possessing 100 Materialism and 0 in all other stats. Very straightforward.
Next, salaryStatValues allows stats to factor in. It works like baseStatModifiers, but instead of the value in the key-value-pair being an operation, it's simply a float. The float value is multiplied by the named stat for that character, then rounded to the nearest integer and added to the character's salary. ("Res." is a catch-all key to refer to every resistance a character possesses.) For instance:
salaryStatValues="Health,0.4/Energy,0.5/Strength,30/Counter Limit,35/Res.,1"
If a character belongs to the class that uses these salaryStatValues and the character possesses 20 Health, 10 Energy, 5 Strength, 1 Counter limit, and 5 Slash Resistance (but 0 in every other resistance), that character would get +8 to salary from their Health (0.4 x 20), +5 to salary for their Energy (0.5 x 10), +150 to salary for their Strength (30 x 5), +35 to salary for their 1 counterattack, and +5 for their 5 Slash resistance.
Whatever the result, the character's Materialism stat then acts as a multiplier to produce the final salary.