Difference between revisions of "Scaling"

From Tales of Maj'Eyal
Jump to: navigation, search
(Added links)
(Moved anchors into section headers)
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 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.
 
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==
+
==(cL) combatLimit <span id="cL"></span>==
<span id="cL"></span>
+
  
 
''This function is the archetype for both [[#cSL|combatStatLimit]] and [[#cTL|combatTalentLimit]].''
 
''This function is the archetype for both [[#cSL|combatStatLimit]] and [[#cTL|combatTalentLimit]].''
  
==(cS) combatScale==
+
==(cS) combatScale <span id="cS"></span>==
<span id="cS"></span>
+
  
 
''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 27: Line 25:
 
:'''''add = 0'''''
 
:'''''add = 0'''''
  
==(cSL) combatStatLimit==
+
==(cSL) combatStatLimit <span id="cSL"></span>==
<span id="cSL"></span>
+
 
 +
==(cSS) combatStatScale <span id="cSS"></span>==
  
==(cSS) combatStatScale==
 
<span id="cSS"></span>
 
  
 
''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.''
  
==(cTL) combatTalentLimit==
+
==(cTL) combatTalentLimit <span id="cTL"></span>==
<span id="cTL"></span>
+
 
  
==(cTMD) combatTalentMindDamage==
+
==(cTMD) combatTalentMindDamage <span id="cTMD"></span>==
<span id="cTMD"></span>
+
  
 
;Example of talent description
 
;Example of talent description
Line 52: Line 48:
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5)
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5)
  
==(cTS) combatTalentScale==
+
==(cTS) combatTalentScale <span id="cTS"></span>==
<span id="cTS"></span>
+
  
 
''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.
Line 106: Line 101:
 
:In cases such as this where non-integer values are not meaningful, they are generally rounded down to the nearest integer instead.
 
:In cases such as this where non-integer values are not meaningful, they are generally rounded down to the nearest integer instead.
  
==(cTSD) combatTalentStatDamage==
+
==(cTSD) combatTalentStatDamage <span id="cTSD"></span>==
<span id="cTSD"></span>
+
  
==(cTWD) combatTalentWeaponDamage==
+
==(cTWD) combatTalentWeaponDamage <span id="cTWD"></span>==
<span id="cTWD"></span>
+
  
 
[[Category:Game Mechanics]]
 
[[Category:Game Mechanics]]

Revision as of 08:55, 27 July 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 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

This function is the archetype for both combatStatLimit and combatTalentLimit.

(cS) combatScale

This function is the archetype for both combatStatScale and combatTalentScale.

Example of talent description
The value is ylow– yhigh as the parameter varies from xlow– xhigh cS
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

(cSL) combatStatLimit

(cSS) combatStatScale

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

(cTMD) combatTalentMindDamage

Example of talent description
Talent deals d1– d2cTMD damage.
What the talent description means
The talent's damage will scale linearly 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, where
Mind Power Factor = (d1 + Mind Power) / (d1 + 100),
Talent Factor = (0.2 + 0.8 * √ Talent Level) / (0.2 + 0.8 * √ 5)

(cTS) combatTalentScale

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.
(this is all you need to know in the majority of cases)
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 fit parameters should be noted on the talent page if possible
If the talent description is: This skill has a range of 5–10cTS:0.75P
then the fit parameter power = 0.75 will be used instead.
Logarithmic fits
If the talent description is: This skill has a range of 5–10cTS:log
then the game will use a logarithmic fit with the function y(x) = m * Log10(x + shift) + b + add instead
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, they are generally rounded down to the nearest integer instead.

(cTSD) combatTalentStatDamage

(cTWD) combatTalentWeaponDamage