Scaling

From Tales of Maj'Eyal
Revision as of 22:35, 5 August 2014 by Vyn (Talk | contribs) ((cS) combatScale: Updated with template)

Jump to: navigation, search

This page will list some of the scaling functions that are frequently used in game to calculate talent parameters. The sections below are named after the actual function names used in the game's Lua files. The goal here is to provide a very basic understanding of how various talent parameters are scaled so that talent pages do not need to be filled with a plethora of unknown X's. Instead, the actual range of values can be displayed on each talent page with a footnote linking to this article for further details.

(cL) combatLimit

Talent parameters that scale by this function should be noted with the CL template

This function is the archetype for both combatStatLimit and combatTalentLimit.

(cS) combatScale

Talent parameters that scale by this function should be noted with the CS template

This function is the archetype for both combatStatScale and combatTalentScale.

Example of talent description
The value is ylowyhighcS as parameter x varies from xlowxhigh
What the talent description means
The value will be ylow when the parameter is xlow, and yhigh when the parameter is xhigh, with some diminishing returns.
What the game actually does
Using the function y(x) = m * (t + shift) power + b + add,
find the values of m and b that produce the best fit to the two points y( xlow ) = ylow and y( xhigh ) = yhigh,
then return the value y(x) with the fitted function given the actual parameter x of the character
Default values for the fit parameters are
power = 0.5
shift = 0
add = 0
Example calculation
The trap detection power of Heightened Senses is 0–125cS as (0.25 * Cunning * Talent Level) varies from 0–125
The resulting fit function is y = 11.18 * (0.25 * Cunning * Talent Level) 0.5 and will, for example, produce the following results:
Talent Level Cunning Detection Power
1 10 18
1 20 25
1 40 35
5 40 79
5 100 125
5 150 153

(cSL) combatStatLimit

Talent parameters that scale by this function should be noted with the CSL template

(cSS) combatStatScale

Talent parameters that scale by this function should be noted with the CSS template

This function is almost identical to combatScale except that it sets xlow = 10 and xhigh = 100 to represent the stat that the scaling is based on. Prodigies will typically use xlow = 50 instead.

(cTL) combatTalentLimit

Talent parameters that scale by this function should be noted with the CTL template

(cTMD) combatTalentMindDamage

Talent parameters that scale by this function should be noted with the CTMD template

Example of talent description
Talent deals d1– d2cTMD damage.
What the talent description means
The talent's damage will scale with respect to both mind power and talent level, dealing d2 damage at 100 mind power and talent level 5.
What the game actually does
The actual talent damage will be ( d2 * Mind Power Factor * Talent Factor )1.04, where
Mind Power Factor = (d1 + Mind Power) / (d1 + 100),
Talent Factor = (0.2 + 0.8 * √ Talent Level) / (0.2 + 0.8 * √ 5)

(cTS) combatTalentScale

Talent parameters that scale by this function should be noted with the CTS template

This function is almost identical to combatScale except that is sets xlow = 1 and xhigh = 5 to represent the talent level that the scaling is based on.

Example of talent description
Value is ylow– yhighcTS
What the talent description means
The talent parameter will have value ylow at talent level 1, and value yhigh at talent level 5, with some diminishing returns.
What the game actually does
Using the function y(x) = m * (x + shift) power + b + add,
find the values of m and b that produce the best fit to the two points y(1) = ylow and y(5) = yhigh,
then return the value of y(x) with the fitted function given the actual talent level x of the character
Default values for the fit parameters are
power = 0.5
shift = 0
add = 0
Custom power
With a talent description of: Value is 5–10cTS:0.75P
the fit parameter power = 0.75 will be used instead.
Higher power suppresses the effects of diminishing returns.
Custom shift
With a talent description of: Value is 5–10cTS:2S
the fit parameter shift = 2 will be used instead.
Higher shift basically acts as a direct bonus to your talent level.
Logarithmic fits
With a talent description of: Value is 5–10cTS:log
the game will use a logarithmic fit with the function y(x) = m * Log10(x + shift) + b + add instead
Paradox modifier
With a talent description of: Value is 5–10cTS:PM
the game will multiply your talent level by a Paradox Modifier and return y ( x * Paradox Modifier ), where
Paradox Modifier = (0.5 + Paradox / 600)0.5
Example of calculation
If the description of a talent is: This skill has a range of 5–10cTS
then the game will use default values to produce the fit function
y(x) = 4.045 * x 0.5 + 0.955
which would return the following values for the talent's range
Talent Level x Range y(x)
1 5
2 6.68
3 7.96
4 9.05
5 10
6 10.86
7 11.66
In cases such as this where non-integer values are not meaningful, talent ranges are typically rounded down, while durations are rounded up.

(cTSpD) combatTalentSpellDamage

Talent parameters that scale by this function should be noted with the CTSPD template.

Example of talent description
Damage is d1– d2cTSpD
What the talent description means
The talent's damage will scale with respect to both spell power and talent level, dealing d2 damage at 100 spell power and talent level 5.
What the game actually does
The actual talent damage will be ( d2 * Spell Power Factor * Talent Factor )1.04, where
Spell Power Factor = (d1 + Spell Power) / (d1 + 100),
Talent Factor = (0.2 + 0.8 * √ Talent Level) / (0.2 + 0.8 * √ 5)
Spell power override
With a talent description of: Damage is d1– d2cTSpD:50SP,
the game will calculate the damage assuming 50 spellpower instead.
Paradox modifier
With a talent description of: Damage is d1– d2cTSpD:PM,
the game will multiply the final damage by your Paradox Modifier
Paradox Modifier = (0.5 + Paradox / 600)0.5

(cTStD) combatTalentStatDamage

Talent parameters that scale by this function should be noted with the CTSTD template

Example of talent description
Damage is d1– d2cTStD:Stat
What the talent description means
The talent's base damage before diminishing returns will scale with respect to both stat and talent level, dealing d2 base damage at 100 stat and talent level 5.
What the game actually does
Calculate Base Damage = ( d2 * Stat Factor * Talent Factor ), where
Stat Factor = (d1 + Stat) / (d1 + 100),
Talent Factor = (0.2 + 0.8 * √ Talent Level) / (0.2 + 0.8 * √ 5),
then return Final Damage = Base Damage * ( 1 - Log10(2 * Base Damage) / 7 )

(cTWD) combatTalentWeaponDamage

Talent parameters that scale by this function should be noted with the CTWD template