Difference between revisions of "Template:Stat Factors Table"
m (Added missing closing tags) |
Arcangelus (talk | contribs) (Changed Q to #Show where equivalent. This reduced the Preprocessor node count by ~6%. All examples work, so I think this won't cause issues.) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
-->{{#vardefine: statMax | {{Q|{{#var: statName}}|Stat Maximum|99999999}} }}<!-- | -->{{#vardefine: statMax | {{Q|{{#var: statName}}|Stat Maximum|99999999}} }}<!-- | ||
-->{{#vardefine: statMin | {{Q|{{#var: statName}}|Stat Minimum|0}} }}<!-- | -->{{#vardefine: statMin | {{Q|{{#var: statName}}|Stat Minimum|0}} }}<!-- | ||
− | -->{{#vardefine: skillBase | {{ | + | -->{{#vardefine: skillBase | {{#show: {{#var: statName}}|?Skill Base Factor}} }}<!-- |
− | -->{{#vardefine: skillBonus | {{ | + | -->{{#vardefine: skillBonus | {{#show: {{#var: statName}}|?Skill Bonus Factor}} }}<!-- |
-->{{#vardefine: capName | {{ucfirst:{{{2|{{#switch: 1 | -->{{#vardefine: capName | {{ucfirst:{{{2|{{#switch: 1 | ||
<!-- If a cap isn't defined, is there an uncapped capacity--> | <!-- If a cap isn't defined, is there an uncapped capacity--> | ||
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Manipulation Limit}} | - |1|0}} = Manipulation |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Sight Limit}} | - |1|0}} = Sight |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Moving Limit}} | - |1|0}} = Moving |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Talking Limit}} | - |1|0}} = Talking |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Hearing Limit}} | - |1|0}} = Hearing |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Eating Limit}} | - |1|0}} = Eating |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Consciousness Limit}} | - |1|0}} = Consciousness |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Blood Pumping Limit}} | - |1|0}} = Blood Pumping |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Breathing Limit}} | - |1|0}} = Breathing |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Metabolism Limit}} | - |1|0}} = Metabolism |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Blood Filtration Limit}} | - |1|0}} = Blood Filtration |
− | | {{#ifeq: {{ | + | | {{#ifeq: {{#show: {{#var: statName}}|?Pain Limit}} | - |1|0}} = Pain |
<!-- If no, is there an a capacity with limit > 100%--> | <!-- If no, is there an a capacity with limit > 100%--> | ||
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Manipulation Limit}} > 1|1|0}} = Manipulation |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Sight Limit}} > 1|1|0}} = Sight |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Moving Limit}} > 1|1|0}} = Moving |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Talking Limit}} > 1|1|0}} = Talking |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Hearing Limit}} > 1|1|0}} = Hearing |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Eating Limit}} > 1|1|0}} = Eating |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Consciousness Limit}} > 1|1|0}} = Consciousness |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Blood Pumping Limit}} > 1|1|0}} = Blood Pumping |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Breathing Limit}} > 1|1|0}} = Breathing |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Metabolism Limit}} > 1|1|0}} = Metabolism |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Blood Filtration Limit}} > 1|1|0}} = Blood Filtration |
− | | {{#ifexpr: {{ | + | | {{#ifexpr: {{#show: {{#var: statName}}|?Pain Limit}} > 1|1|0}} = Pain |
<!--Is there any capacity --> | <!--Is there any capacity --> | ||
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Manipulation Importance}}|1|0}} = Manipulation |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Sight Importance}}|1|0}} = Sight |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Moving Importance}}|1|0}} = Moving |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Talking Importance}}|1|0}} = Talking |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Hearing Importance}}|1|0}} = Hearing |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Eating Importance}}|1|0}} = Eating |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Consciousness Importance}}|1|0}} = Consciousness |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Blood Pumping Importance}}|1|0}} = Blood Pumping |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Breathing Importance}}|1|0}} = Breathing |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Metabolism Importance}}|1|0}} = Metabolism |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Blood Filtration Importance}}|1|0}} = Blood Filtration |
− | | {{#if: {{ | + | | {{#if: {{#show: {{#var: statName}}|?Pain Importance}}|1|0}} = Pain |
| #default = default | | #default = default | ||
}} | }} | ||
}}} | }}} | ||
}} }}{{#ifeq:{{#var:capName}}|Default|{{#vardefine: resultCols | 1 }}|<!-- If default, then no capacity is defined, only skill. Therefore, skip everything else capacity related. | }} }}{{#ifeq:{{#var:capName}}|Default|{{#vardefine: resultCols | 1 }}|<!-- If default, then no capacity is defined, only skill. Therefore, skip everything else capacity related. | ||
− | -->{{#vardefine: capImportance | {{ | + | -->{{#vardefine: capImportance | {{#show: {{#var: statName}}|?{{#var: capName}} Importance}} }}<!-- |
-->{{#vardefine: capLimit | {{Q|{{#var: statName}} | {{#var: capName}} Limit | 99999999}} }}<!-- | -->{{#vardefine: capLimit | {{Q|{{#var: statName}} | {{#var: capName}} Limit | 99999999}} }}<!-- | ||
-->{{#switch: 1 | -->{{#switch: 1 | ||
Line 57: | Line 57: | ||
| {{#expr: {{#var: capLimit}} > 1.5 }} = {{#vardefine: resultCols | 3 }} {{#vardefine: column3Limit | 150% }} | | {{#expr: {{#var: capLimit}} > 1.5 }} = {{#vardefine: resultCols | 3 }} {{#vardefine: column3Limit | 150% }} | ||
}}}}<!-- | }}}}<!-- | ||
− | -->{| class = "wikitable" width="180" style="text-align: center;" | + | -->{| class = "mw-collapsible wikitable" width="180" style="text-align: center;" |
− | ! rowspan={{#ifeq: {{#var: resultCols}} | 1 | 1 | 2}} | {{ | + | ! rowspan={{#ifeq: {{#var: resultCols}} | 1 | 1 | 2}} | {{#show: {{#var: statName}}|?Skill}} Skill Level |
! colspan={{#var: resultCols}} | {{#var: statName}} | ! colspan={{#var: resultCols}} | {{#var: statName}} | ||
{{#switch: {{#var: resultCols}} | {{#switch: {{#var: resultCols}} | ||
Line 71: | Line 71: | ||
}} | }} | ||
|- | |- | ||
− | {{Stat Factors Table Row|0}} | + | {{Stat Factors Table Row|0|{{{l0|}}}}} |
− | {{Stat Factors Table Row|1}} | + | {{Stat Factors Table Row|1|{{{l1|}}}}} |
− | {{Stat Factors Table Row|2}} | + | {{Stat Factors Table Row|2|{{{l2|}}}}} |
− | {{Stat Factors Table Row|3}} | + | {{Stat Factors Table Row|3|{{{l3|}}}}} |
− | {{Stat Factors Table Row|4}} | + | {{Stat Factors Table Row|4|{{{l4|}}}}} |
− | {{Stat Factors Table Row|5}} | + | {{Stat Factors Table Row|5|{{{l5|}}}}} |
− | {{Stat Factors Table Row|6}} | + | {{Stat Factors Table Row|6|{{{l6|}}}}} |
− | {{Stat Factors Table Row|7}} | + | {{Stat Factors Table Row|7|{{{l7|}}}}} |
− | {{Stat Factors Table Row|8}} | + | {{Stat Factors Table Row|8|{{{l8|}}}}} |
− | {{Stat Factors Table Row|9}} | + | {{Stat Factors Table Row|9|{{{l9|}}}}} |
− | {{Stat Factors Table Row|10}} | + | {{Stat Factors Table Row|10|{{{l10|}}}}} |
− | {{Stat Factors Table Row|11}} | + | {{Stat Factors Table Row|11|{{{l11|}}}}} |
− | {{Stat Factors Table Row|12}} | + | {{Stat Factors Table Row|12|{{{l12|}}}}} |
− | {{Stat Factors Table Row|13}} | + | {{Stat Factors Table Row|13|{{{l13|}}}}} |
− | {{Stat Factors Table Row|14}} | + | {{Stat Factors Table Row|14|{{{l14|}}}}} |
− | {{Stat Factors Table Row|15}} | + | {{Stat Factors Table Row|15|{{{l15|}}}}} |
− | {{Stat Factors Table Row|16}} | + | {{Stat Factors Table Row|16|{{{l16|}}}}} |
− | {{Stat Factors Table Row|17}} | + | {{Stat Factors Table Row|17|{{{l17|}}}}} |
− | {{Stat Factors Table Row|18}} | + | {{Stat Factors Table Row|18|{{{l18|}}}}} |
− | {{Stat Factors Table Row|19}} | + | {{Stat Factors Table Row|19|{{{l19|}}}}} |
− | {{Stat Factors Table Row|20}} | + | {{Stat Factors Table Row|20|{{{l20|}}}}} |
|}</includeonly><noinclude> | |}</includeonly><noinclude> | ||
{{documentation}} | {{documentation}} | ||
</noinclude> | </noinclude> |
Latest revision as of 17:21, 9 August 2024
This page has been suggested for recoding. Reason: The capacity detection system (the huge switch statement) is only a proof of concept and its a cludge with a lot of needless memory usage atm. Needs to be refined but I've run out of time and can't do code on a phone -- Harakoni (Wiki Moderator) (talk). You can help RimWorld Wiki by improving it. |
This template generates a table of values for a stat for the full range of skill levels, as well as showing the effect of gains in a single capacity at the 100%, 125%, and 150% levels.
If the effect of the capacity is limited, then the table will only display the columns with new information, and the column headers will be replaced to demonstrate that they only apply to
This template is dependent on Template:Stat Factors Table Row.
PLEASE NOTE: This table is not suitable for every stat page. Anything with multiple controlling capacities (i.e. capacities maximums above 100%) will not be properly represented, and the template is completely incompatible with post factored statistics. It is not feasible to create detection metrics for every single stat variant, so the editor applying the template must use it correctly. Please also read the notes and limitations below.
Notes[edit]
Planned features[edit]
These features are planned to be added in the future.
- Currently does not account for different common values for capacities.
Features under consideration[edit]
These are under consideration as to how and whether to implement them. Direct any thoughts/opinions/feedback to User: Harakoni
- Currently(?) does not account for Global Work Speed
Known limitations[edit]
These are unlikely to change due to the format/concept of the template.
- Does not account for multi-skill stats.
- Does not account for multi-capacity stats.
Parameters[edit]
The first parameter (if present) will specify which stat to generate the template for.
If absent, {{PAGENAME}}
will be used.
The second parameter (if present) will specify which capacity to generate the template for. If absent, it will attempt to select the most important capacity, and if none are detected, it will default to only showing the skill table.
Parameters l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 are used to manually set values where they are not skill derived.
Example usage[edit]
{{Stat Factors Table}}
on the Butchery Efficiency page would produce:
Cooking Skill Level | Butchery Efficiency | ||
---|---|---|---|
100% Manipulation | 125% Manipulation | 150% Manipulation | |
0 | 75% | 91.88% | 108.75% |
1 | 77.5% | 94.94% | 112.38% |
2 | 80% | 98% | 116% |
3 | 82.5% | 101.06% | 119.62% |
4 | 85% | 104.13% | 123.25% |
5 | 87.5% | 107.19% | 126.88% |
6 | 90% | 110.25% | 130.5% |
7 | 92.5% | 113.31% | 134.13% |
8 | 95% | 116.38% | 137.75% |
9 | 97.5% | 119.44% | 141.37% |
10 | 100% | 122.5% | 145% |
11 | 102.5% | 125.56% | 148.62% |
12 | 105% | 128.63% | 150% |
13 | 107.5% | 131.69% | 150% |
14 | 110% | 134.75% | 150% |
15 | 112.5% | 137.81% | 150% |
16 | 115% | 140.88% | 150% |
17 | 117.5% | 143.94% | 150% |
18 | 120% | 147% | 150% |
19 | 122.5% | 150% | 150% |
20 | 125% | 150% | 150% |
{{Stat Factors Table|Foraged Food Amount}}
on any page would produce:
Plants Skill Level | Foraged Food Amount | ||
---|---|---|---|
100% Sight | 125% Sight | 150% Sight | |
0 | 0% | 0% | 0% |
1 | 9% | 11.03% | 13.05% |
2 | 18% | 22.05% | 26.1% |
3 | 27% | 33.08% | 39.15% |
4 | 36% | 44.1% | 52.2% |
5 | 45% | 55.13% | 65.25% |
6 | 54% | 66.15% | 78.3% |
7 | 63% | 77.18% | 91.35% |
8 | 72% | 88.2% | 104.4% |
9 | 81% | 99.23% | 117.45% |
10 | 90% | 110.25% | 130.5% |
11 | 99% | 121.28% | 143.55% |
12 | 108% | 132.3% | 156.6% |
13 | 117% | 143.33% | 169.65% |
14 | 126% | 154.35% | 182.7% |
15 | 135% | 165.38% | 195.75% |
16 | 144% | 176.4% | 208.8% |
17 | 153% | 187.43% | 221.85% |
18 | 162% | 198.45% | 234.9% |
19 | 171% | 209.48% | 247.95% |
20 | 180% | 220.5% | 261% |
Example when limit is 100%:
{{Stat Factors Table|Arrest Success Chance}}
it produces:
Social Skill Level | Arrest Success Chance |
---|---|
0 | 60% |
1 | 67.5% |
2 | 75% |
3 | 82.5% |
4 | 90% |
5 | 97.5% |
6 | 100% |
7 | 100% |
8 | 100% |
9 | 100% |
10 | 100% |
11 | 100% |
12 | 100% |
13 | 100% |
14 | 100% |
15 | 100% |
16 | 100% |
17 | 100% |
18 | 100% |
19 | 100% |
20 | 100% |
Example when limit is >100% but <125%: Note: Research Speed is not an appropriate use of the template, as it relies equally on two different capacities, however, at the time of writing no compatible example of an inter-column limit exists:
{{Stat Factors Table|Research Speed }}
on any page would produce:
Intellectual Skill Level | Research Speed | |
---|---|---|
100% Manipulation | 110%+ Manipulation | |
0 | 8% | 8.4% |
1 | 19.5% | 20.48% |
2 | 31% | 32.55% |
3 | 42.5% | 44.63% |
4 | 54% | 56.7% |
5 | 65.5% | 68.78% |
6 | 77% | 80.85% |
7 | 88.5% | 92.93% |
8 | 100% | 105% |
9 | 111.5% | 117.08% |
10 | 123% | 129.15% |
11 | 134.5% | 141.23% |
12 | 146% | 153.3% |
13 | 157.5% | 165.38% |
14 | 169% | 177.45% |
15 | 180.5% | 189.53% |
16 | 192% | 201.6% |
17 | 203.5% | 213.68% |
18 | 215% | 225.75% |
19 | 226.5% | 237.83% |
20 | 238% | 249.9% |
Example when skills have to be specifically defined:
{{Stat Factors Table|Plant Harvest Yield|l0=0.60|l1=0.70|l2=0.75|l3=0.80|l4=0.85|l5=0.90|l6=0.95|l7=0.98|l8=1.00|l9=1.01|l10=1.02|l11=1.03|l12=1.04|l13=1.05|l14=1.06|l15=1.07|l16=1.08|l17=1.09|l18=1.10|l19=1.12|l20=1.13}}
it produces:
Plants Skill Level | Plant Harvest Yield | ||
---|---|---|---|
100% Manipulation | 125% Manipulation | 150% Manipulation | |
0 | 60% | 64.5% | 69% |
1 | 70% | 75.25% | 80.5% |
2 | 75% | 80.62% | 86.25% |
3 | 80% | 86% | 92% |
4 | 85% | 91.38% | 97.75% |
5 | 90% | 96.75% | 103.5% |
6 | 95% | 102.13% | 109.25% |
7 | 98% | 105.35% | 112.7% |
8 | 100% | 107.5% | 115% |
9 | 101% | 108.58% | 116.15% |
10 | 102% | 109.65% | 117.3% |
11 | 103% | 110.73% | 118.45% |
12 | 104% | 111.8% | 119.6% |
13 | 105% | 112.88% | 120.75% |
14 | 106% | 113.95% | 121.9% |
15 | 107% | 115.03% | 123.05% |
16 | 108% | 116.1% | 124.2% |
17 | 109% | 117.18% | 125.35% |
18 | 110% | 118.25% | 126.5% |
19 | 112% | 120.4% | 128.8% |
20 | 113% | 121.47% | 129.95% |
The above documentation is transcluded from Template:Stat Factors Table/doc. (edit | history) Editors can experiment in this template's sandbox (create | mirror) and testcases (create) pages. Please add categories to the /doc subpage. Subpages of this template. |