Difference between revisions of "Scaling"
(→(CFD) Cursed Form Damage: Copy edit) |
(Changed template names to lower case. Will have to clean up section links later. Also some copy edits.) |
||
| Line 1: | Line 1: | ||
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 majority of these functions can be found in ''tome.team/mod/class/interface/Combat.lua''. | 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 majority of these functions can be found in ''tome.team/mod/class/interface/Combat.lua''. | ||
| − | The goal here is to provide | + | The goal here is to provide basic explanations of how various talent parameters are scaled so that talent pages do not need to be filled with unknown variables. Instead, the actual range of values can be displayed on each talent page with a footnote linking to this article for further details. |
==(CFD) Cursed Form Damage <span id="CFD"></span>== | ==(CFD) Cursed Form Damage <span id="CFD"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:cfd]]'' |
''This function is defined in tome.team/data/talents/cursed/cursed-form.lua as combatTalentDamage and is only used for {{c|Cursed Form}} talents'' | ''This function is defined in tome.team/data/talents/cursed/cursed-form.lua as combatTalentDamage and is only used for {{c|Cursed Form}} talents'' | ||
| Line 17: | Line 17: | ||
==(cL) combatLimit <span id="cL"></span>== | ==(cL) combatLimit <span id="cL"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:cl]]'' |
''This function is the archetype for both [[#cSL|combatStatLimit]] and [[#cTL|combatTalentLimit]].'' | ''This function is the archetype for both [[#cSL|combatStatLimit]] and [[#cTL|combatTalentLimit]].'' | ||
| Line 23: | Line 23: | ||
==(cS) combatScale <span id="cS"></span>== | ==(cS) combatScale <span id="cS"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:cs]]'' |
''This function is the archetype for both [[#cSS|combatStatScale]] and [[#cTS|combatTalentScale]].'' | ''This function is the archetype for both [[#cSS|combatStatScale]] and [[#cTS|combatTalentScale]].'' | ||
| Line 44: | Line 44: | ||
;Example calculation | ;Example calculation | ||
| − | :The trap detection power of | + | :The trap detection power of {{t|Heightened Senses}} is {{cs|(0.25 * Cunning * Talent Level)|0|0|125|125}} |
:The resulting fit function is '''''y = 11.18 * (0.25 * Cunning * Talent Level) <sup>0.5</sup>''''' and will, for example, produce the following results: | :The resulting fit function is '''''y = 11.18 * (0.25 * Cunning * Talent Level) <sup>0.5</sup>''''' and will, for example, produce the following results: | ||
:{|class = "wikitable" | :{|class = "wikitable" | ||
| Line 64: | Line 64: | ||
==(cSL) combatStatLimit <span id="cSL"></span>== | ==(cSL) combatStatLimit <span id="cSL"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:csl]]'' |
;Example of talent description | ;Example of talent description | ||
| − | :The value is {{ | + | :The value is {{csl|'''stat'''|'''limit'''|'''low'''|'''high'''}} |
;What the talent description means | ;What the talent description means | ||
| Line 74: | Line 74: | ||
==(cSS) combatStatScale <span id="cSS"></span>== | ==(cSS) combatStatScale <span id="cSS"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:css]] '' |
''This function is almost identical to [[#cS|combatScale]] except that it sets '''''x<sub>low</sub> = 10''''' and '''''x<sub>high</sub> = 100''''' to represent the stat that the scaling is based on. [[Prodigies]] will typically use '''''x<sub>low</sub> = 50''''' instead.'' | ''This function is almost identical to [[#cS|combatScale]] except that it sets '''''x<sub>low</sub> = 10''''' and '''''x<sub>high</sub> = 100''''' to represent the stat that the scaling is based on. [[Prodigies]] will typically use '''''x<sub>low</sub> = 50''''' instead.'' | ||
| Line 80: | Line 80: | ||
==(cTID) combatTalentIntervalDamage <span id="cTID"></span>== | ==(cTID) combatTalentIntervalDamage <span id="cTID"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:ctid]] '' |
;Example of talent description | ;Example of talent description | ||
| − | :The value is {{ | + | :The value is {{ctid|'''stat'''|'''min'''|'''max'''|'''stat_weight''' * }} |
;What the talent description means | ;What the talent description means | ||
| Line 97: | Line 97: | ||
==(cTL) combatTalentLimit <span id="cTL"></span>== | ==(cTL) combatTalentLimit <span id="cTL"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:ctl]]'' |
;Example of talent description | ;Example of talent description | ||
| − | :The value is {{ | + | :The value is {{ctl|'''limit'''|'''low'''|'''high'''}} |
;What the talent description means | ;What the talent description means | ||
| Line 106: | Line 106: | ||
;Paradox modifier | ;Paradox modifier | ||
| − | :With a talent description of: Value is {{ | + | :With a talent description of: Value is {{ctl|'''limit'''|'''low'''|'''high'''|PM}} |
:the game will multiply your talent level by a Paradox Modifier when calculating the value, where | :the game will multiply your talent level by a Paradox Modifier when calculating the value, where | ||
:'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>''' | :'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>''' | ||
| Line 112: | Line 112: | ||
==(cTMD) combatTalentMindDamage <span id="cTMD"></span>== | ==(cTMD) combatTalentMindDamage <span id="cTMD"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:ctmd]]'' |
;Example of talent description | ;Example of talent description | ||
| − | :The value is {{ | + | :The value is {{ctmd|'''base'''|'''max'''}} |
;What the talent description means | ;What the talent description means | ||
| Line 128: | Line 128: | ||
==(cTPD) combatTalentPhysicalDamage <span id="cTPD"></span>== | ==(cTPD) combatTalentPhysicalDamage <span id="cTPD"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:ctpd]]'' |
;Example of talent description | ;Example of talent description | ||
| − | :The value is {{ | + | :The value is {{ctpd|'''base'''|'''max'''}} |
;What the talent description means | ;What the talent description means | ||
| Line 144: | Line 144: | ||
==(cTS) combatTalentScale <span id="cTS"></span>== | ==(cTS) combatTalentScale <span id="cTS"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:cts]]'' |
''This function is almost identical to [[#cS|combatScale]] except that is sets '''''x<sub>low</sub> = 1''''' and '''''x<sub>high</sub> = 5''''' to represent the talent level that the scaling is based on. | ''This function is almost identical to [[#cS|combatScale]] except that is sets '''''x<sub>low</sub> = 1''''' and '''''x<sub>high</sub> = 5''''' to represent the talent level that the scaling is based on. | ||
;Example of talent description | ;Example of talent description | ||
| − | :Value is {{ | + | :Value is {{cts|'''low'''|'''high'''}} |
;What the talent description means | ;What the talent description means | ||
| Line 165: | Line 165: | ||
;Custom power | ;Custom power | ||
| − | :With a talent description of: Value is | + | :With a talent description of: Value is {{cts|5|10|0.75P}} |
:the fit parameter '''power = 0.75''' will be used instead. | :the fit parameter '''power = 0.75''' will be used instead. | ||
:Higher '''power''' suppresses the effects of diminishing returns. | :Higher '''power''' suppresses the effects of diminishing returns. | ||
;Custom shift | ;Custom shift | ||
| − | :With a talent description of: Value is | + | :With a talent description of: Value is {{cts|5|10|2S}} |
:the fit parameter '''shift = 2''' will be used instead. | :the fit parameter '''shift = 2''' will be used instead. | ||
:Higher '''shift''' basically acts as a direct bonus to your talent level. | :Higher '''shift''' basically acts as a direct bonus to your talent level. | ||
;Logarithmic fits | ;Logarithmic fits | ||
| − | :With a talent description of: Value is | + | :With a talent description of: Value is {{cts|5|10|log}} |
:the game will use a logarithmic fit with the function '''y(x) = m * Log<sub>10</sub>(x + shift) + b + add''' instead | :the game will use a logarithmic fit with the function '''y(x) = m * Log<sub>10</sub>(x + shift) + b + add''' instead | ||
;Paradox modifier | ;Paradox modifier | ||
| − | :With a talent description of: Value is | + | :With a talent description of: Value is {{cts|5|10|PM}} |
:the game will multiply your talent level by a Paradox Modifier and return '''y ( x * Paradox Modifier )''', where | :the game will multiply your talent level by a Paradox Modifier and return '''y ( x * Paradox Modifier )''', where | ||
:'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>''' | :'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>''' | ||
;Example of calculation | ;Example of calculation | ||
| − | :If the description of a talent is: This skill has a range of | + | :If the description of a talent is: This skill has a range of {{cts|5|10}} |
:then the game will use default values to produce the fit function | :then the game will use default values to produce the fit function | ||
:'''y(x) = 4.045 * x <sup>0.5</sup> + 0.955''' | :'''y(x) = 4.045 * x <sup>0.5</sup> + 0.955''' | ||
| Line 209: | Line 209: | ||
==(cTSpD) combatTalentSpellDamage <span id="cTSpD"></span>== | ==(cTSpD) combatTalentSpellDamage <span id="cTSpD"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:ctspd|ctspd]] template.'' |
;Example of talent description | ;Example of talent description | ||
| − | :Value is {{ | + | :Value is {{ctspd|'''base'''|'''max'''}} |
;What the talent description means | ;What the talent description means | ||
| Line 223: | Line 223: | ||
;Paradox modifier | ;Paradox modifier | ||
| − | :With a talent description of: Value is {{ | + | :With a talent description of: Value is {{ctspd|'''base'''|'''max'''|PM}}, |
:the game will multiply the final value by your Paradox Modifier, which is defined as | :the game will multiply the final value by your Paradox Modifier, which is defined as | ||
:'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>''' | :'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>''' | ||
| Line 229: | Line 229: | ||
==(cTStD) combatTalentStatDamage <span id="cTStD"></span>== | ==(cTStD) combatTalentStatDamage <span id="cTStD"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:ctstd]]'' |
;Example of talent description | ;Example of talent description | ||
| − | :Value is {{ | + | :Value is {{ctstd|'''stat'''|'''base'''|'''max'''}} |
;What the talent description means | ;What the talent description means | ||
| Line 245: | Line 245: | ||
==(cTWD) combatTalentWeaponDamage <span id="cTWD"></span>== | ==(cTWD) combatTalentWeaponDamage <span id="cTWD"></span>== | ||
| − | ''Talent parameters that scale by this function should be noted with | + | ''Talent parameters that scale by this function should be noted with [[Template:ctwd]]'' |
;Example of talent description | ;Example of talent description | ||
| − | :Value is {{ | + | :Value is {{ctwd|'''base'''|'''max'''}} |
;What the talent description means | ;What the talent description means | ||
| Line 259: | Line 259: | ||
:An extra '''t2''' parameter can sometimes be provided (e.g. [[Shield pummel (talent)|Shield Pummel]]), in which case | :An extra '''t2''' parameter can sometimes be provided (e.g. [[Shield pummel (talent)|Shield Pummel]]), in which case | ||
:the value is ('''base''' + ('''max''' - '''base''') * √ ((Talent Level + '''t2''' / 2 ) / 5) ) | :the value is ('''base''' + ('''max''' - '''base''') * √ ((Talent Level + '''t2''' / 2 ) / 5) ) | ||
| − | :Although | + | :Although [[Template:ctwd]] will accept an extra parameter for '''t2''', it is probably best to just explain its effects directly in a talent's description instead. |
[[Category:Game Mechanics]] | [[Category:Game Mechanics]] | ||
Revision as of 12:05, 25 August 2014
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 majority of these functions can be found in tome.team/mod/class/interface/Combat.lua.
The goal here is to provide basic explanations of how various talent parameters are scaled so that talent pages do not need to be filled with unknown variables. Instead, the actual range of values can be displayed on each talent page with a footnote linking to this article for further details.
Contents
- 1 (CFD) Cursed Form Damage
- 2 (cL) combatLimit
- 3 (cS) combatScale
- 4 (cSL) combatStatLimit
- 5 (cSS) combatStatScale
- 6 (cTID) combatTalentIntervalDamage
- 7 (cTL) combatTalentLimit
- 8 (cTMD) combatTalentMindDamage
- 9 (cTPD) combatTalentPhysicalDamage
- 10 (cTS) combatTalentScale
- 11 (cTSpD) combatTalentSpellDamage
- 12 (cTStD) combatTalentStatDamage
- 13 (cTWD) combatTalentWeaponDamage
(CFD) Cursed Form Damage
Talent parameters that scale by this function should be noted with Template:cfd
This function is defined in tome.team/data/talents/cursed/cursed-form.lua as combatTalentDamage and is only used for Cursed Form talents
- Example of talent description
- The value is [min]maxcTSpD
- What the game actually does
- The value will be identical to [min]maxcTSpD, except it uses (1.2 * (Character Level + Willpower) ) as your effective spellpower.
(cL) combatLimit
Talent parameters that scale by this function should be noted with Template:cl
This function is the archetype for both combatStatLimit and combatTalentLimit.
(cS) combatScale
Talent parameters that scale by this function should be noted with Template:cs
This function is the archetype for both combatStatScale and combatTalentScale.
- Example of talent description
- The value is ylow–yhighcS as parameter x varies from xlow–xhigh
- What the talent description means
- The value will be ylow when parameter x 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 Template:csl
- Example of talent description
- The value is low–highcSL:limit,stat
- What the talent description means
- The value will be low when the stat is 10, and high when the stat is 100, with some diminishing returns and will never exceed limit.
(cSS) combatStatScale
Talent parameters that scale by this function should be noted with Template:css
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.
(cTID) combatTalentIntervalDamage
Talent parameters that scale by this function should be noted with Template:ctid
- Example of talent description
- The value is min–maxcTID:stat_weight *stat
- What the talent description means
- The value will be max when stat is 100 and the talent level is 6.5.
- What the game actually does
- Calculate Base Value = min + (max - min) * ( (stat_weight * stat / 100) + (1 - stat_weight) * Talent Level / 6.5 )
- then return Final Value = Base Value * ( 1 - Log10(2 * Base Value) / 7 )
- The stat_weight parameter
- The stat_weight parameter determines the relative weight between stats and talent level. It defaults to 0.5 to indicate equal contributions.
(cTL) combatTalentLimit
Talent parameters that scale by this function should be noted with Template:ctl
- Example of talent description
- The value is low–highcTL:limit
- What the talent description means
- The value will be low at talent level 1, and high at talent level 5, with some diminishing returns and will never exceed limit.
- Paradox modifier
- With a talent description of: Value is low–highcTL:limit,PM
- the game will multiply your talent level by a Paradox Modifier when calculating the value, where
- Paradox Modifier = (0.5 + Paradox / 600)0.5
(cTMD) combatTalentMindDamage
Talent parameters that scale by this function should be noted with Template:ctmd
- Example of talent description
- The value is [base]maxcTMD
- What the talent description means
- The value will scale with respect to both mind power and talent level, returning max at 100 mind power and talent level 5.
- What the game actually does
- The actual value will be ( max * Mind Power Factor * Talent Factor )1.04, where
- Mind Power Factor = (base + Mind Power) / (base + 100),
- Talent Factor = (0.2 + 0.8 * √ Talent Level) / (0.2 + 0.8 * √ 5)
- Notice that base is not actually the minimum possible value.
(cTPD) combatTalentPhysicalDamage
Talent parameters that scale by this function should be noted with Template:ctpd
- Example of talent description
- The value is [base]maxcTPD
- What the talent description means
- The value will scale with respect to both physical power and talent level, returning max at 100 physical power and talent level 5.
- What the game actually does
- The actual value will be ( max * Physical Power Factor * Talent Factor )1.04, where
- Physical Power Factor = (base + Physical Power) / (base + 100),
- Talent Factor = (0.2 + 0.8 * √ Talent Level) / (0.2 + 0.8 * √ 5)
- Notice that base is not actually the minimum possible value.
(cTS) combatTalentScale
Talent parameters that scale by this function should be noted with Template:cts
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 low–highcTS
- What the talent description means
- The value will be low at talent level 1, and high 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 m and b that produce the best fit to the two points y(1) = low and y(5) = high,
- then return y(x) as the desired value using the fitted function and 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, the final value will be rounded up or down, though no convention has yet been set to indicate how this rounding will be expressed.
(cTSpD) combatTalentSpellDamage
Talent parameters that scale by this function should be noted with ctspd template.
- Example of talent description
- Value is [base]maxcTSpD
- What the talent description means
- The value will scale with respect to both spell power and talent level, returning max1.04 at 100 spell power and talent level 5.
- What the game actually does
- The actual value will be ( max * Spell Power Factor * Talent Factor )1.04, where
- Spell Power Factor = (base + Spell Power) / (base + 100),
- Talent Factor = (0.2 + 0.8 * √ Talent Level) / (0.2 + 0.8 * √ 5)
- Paradox modifier
- With a talent description of: Value is [base]maxcTSpD:PM,
- the game will multiply the final value by your Paradox Modifier, which is defined as
- Paradox Modifier = (0.5 + Paradox / 600)0.5
(cTStD) combatTalentStatDamage
Talent parameters that scale by this function should be noted with Template:ctstd
- Example of talent description
- Value is [base]maxcTStD:stat
- What the talent description means
- The value before diminishing returns will scale with respect to both stat and talent level, returning max at 100 stat and talent level 5.
- What the game actually does
- Calculate Base Value = ( max * Stat Factor * Talent Factor ), where
- Stat Factor = (base + Stat) / (base + 100),
- Talent Factor = (0.2 + 0.8 * √ Talent Level) / (0.2 + 0.8 * √ 5),
- then return Final Value = Base Value * ( 1 - Log10(2 * Base Value) / 7 )
(cTWD) combatTalentWeaponDamage
Talent parameters that scale by this function should be noted with Template:ctwd
- Example of talent description
- Value is base–maxcTWD
- What the talent description means
- The value will be max at talent level 5.
- What the game actually does
- The value is (base + (max - base) * √ (Talent Level / 5) )
- The t2 Parameter
- An extra t2 parameter can sometimes be provided (e.g. Shield Pummel), in which case
- the value is (base + (max - base) * √ ((Talent Level + t2 / 2 ) / 5) )
- Although Template:ctwd will accept an extra parameter for t2, it is probably best to just explain its effects directly in a talent's description instead.