lolstaticdata
lolstaticdata copied to clipboard
Discussion: Percent vs Flat values for stats that stack additively (critical strike chance, lifesteal, omnivamp)
I'm wondering about the way Critical Strike Chance, Lifesteal, and Omnivamp are classified in item stats.
Each of these stats is displayed as a percentage in game. However, for the purposes of stat calculation, they behave more like flat bonuses; that is to say, they stack additively. This is in contrast to a stat like Armor Penetration which is both displayed as a percentage and stacks multiplicatively (and is also stored as a percent in the meraki data).
While the effects of these stats are indeed applied as percentages (e.g. 20% chance to critically strike or lifesteal healing for 8% of inflicted damage), the values are handled more like flat bonuses. Currently, meraki stores each of these three stats as percent values, but I think it would be more accurate to store them as flat values. To me, the difference between the way the stats stack seems more pertinent than the format in which they are displayed.
"6692": { // Eclipse
"stats": {
"omnivamp": {
"flat": 0.0,
"percent": 7.0,
"perLevel": 0.0,
"percentPerLevel": 0.0,
"percentBase": 0.0,
"percentBonus": 0.0
},
},
}
Obviously this would be a major change, so I wanted to ask some opinions on it.
Hello, as you said this would be a major change. We do not want to make breaking changes to the JSON.
With either naming scheme you as the user have to know how to use the data.
What about adding a stackMethod
property to each stat? That would provide useful data for stat calculation without breaking the current format.
"stackMethod": "additive" || "multiplicative"
Edit: On second thought, there are some issues with that solution since Riot doesn't handle flat Magic Penetration (additive) and percent Magic Penetration (multiplicative) as separate stats, the way they do for Lethality and Armor Penetration. In the JSON, you wouldn't be able to set a stackMethod
value for magicPenetration
. That's kind of the crux of the issue with the current format; you can't trust flat and percent to behave consistently across different stats.