Skip to content

Rewrite functions for scaling with diminishing returns approaching a limit

Lisa Greene requested to merge Bunny/t-engine4:limit-scaling-functions into master

Why change anything: current limit scaling functions have an issue where they are very frontloaded and give scaling curves where the vast majority of scaling is done within the first few talent levels. The combatTalentLimit (cTL) function is particularly egregious for this, and it is to the point that @Shibari, @razakai and myself all do not use it and rather use math.min or math.max(combatTalentScale) for better scaling curves. This tends to be an issue most often when the limit is close to the value desired at talent level 5, which is a common use case for cTL of talent cooldowns, talent range, debuff duration, etc.

Happy happy math fun time: the formula I wrote for cTL uses a general calculation of limit*(1-exp[a√(x)+b]) as opposed to the current formula using a general calculation of limit(x + a)/(x + b), where for both functions a, b are determined based on the parameters giving for scaling. Both of these are sigmoid functions, i.e. are bounded by a limit and will monotonically either increase or decrease as desired at a slowing rate. The primary desired aspect of the replacement function I suggest is that it will exhibit less drastic increases within the first few talent levels and show more growth from moderate talent levels.
Similar exponential decay functions are proposed to replace combatStatLimit and combatLimit for consistency; however, these functions do not have as much issue as cTL. As such, I used x^0.75 rather than √x which will provide more similar results to existing combatLimit and combatStatLimit.

Merge request reports