Difference between revisions of "Template:Weapon DPS Chart"
m (no redirect) |
|||
(11 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | <includeonly>{{#vardefine: name | {{{1|{{PAGENAME}} }}} }} | + | <includeonly>{{#vardefine: name | {{{1|{{PAGENAME}} }}} }} {{#vardefine: range | {{#expr: {{Q|{{#var: name}}|Range}} round 0}}}} {{#if: {{{2|}}} | |
− | {{#if: {{{2|}}} | | ||
{{#ifeq: {{{2|}}} | Awful | | {{#ifeq: {{{2|}}} | Awful | | ||
{{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | ||
− | {{#vardefine: | + | {{#vardefine: ShortAccuracy | {{#ifexpr: {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Short) Base}} round 2}} > 100 | 1 | {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Short) Base}}/100}}}}}} |
{{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | {{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | ||
{{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | {{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 0.8*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | ||
− | {{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}} }}}} | + | {{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}} * 0.9}}}} |
|}} | |}} | ||
{{#ifeq: {{{2|}}} | Poor | | {{#ifeq: {{{2|}}} | Poor | | ||
{{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | ||
− | {{#vardefine: | + | {{#vardefine: ShortAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Short) Base}} round 2}} > 100 | 1 | {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Short) Base}}/100}}}}}} |
{{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | {{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | ||
{{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | {{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | ||
Line 19: | Line 18: | ||
{{#ifeq: {{{2|}}} | Normal | | {{#ifeq: {{{2|}}} | Normal | | ||
{{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | ||
− | {{#vardefine: | + | {{#vardefine: ShortAccuracy | {{#ifexpr: {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Short) Base}} round 2}} > 100 | 1 | {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Short) Base}}/100}}}}}} |
{{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | {{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | ||
{{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | {{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | ||
Line 27: | Line 26: | ||
{{#ifeq: {{{2|}}} | Good | | {{#ifeq: {{{2|}}} | Good | | ||
{{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | ||
− | {{#vardefine: | + | {{#vardefine: ShortAccuracy | {{#ifexpr: {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Short) Base}} round 2}} > 100 | 1 | {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Short) Base}}/100}}}}}} |
{{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | {{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | ||
{{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | {{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | ||
Line 35: | Line 34: | ||
{{#ifeq: {{{2|}}} | Excellent | | {{#ifeq: {{{2|}}} | Excellent | | ||
{{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | ||
− | {{#vardefine: | + | {{#vardefine: ShortAccuracy | {{#ifexpr: {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Short) Base}} round 2}} > 100 | 1 | {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Short) Base}}/100}}}}}} |
{{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | {{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | ||
{{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | {{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | ||
Line 43: | Line 42: | ||
{{#ifeq: {{{2|}}} | Masterwork | | {{#ifeq: {{{2|}}} | Masterwork | | ||
{{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | ||
− | {{#vardefine: | + | {{#vardefine: ShortAccuracy | {{#ifexpr: {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Short) Base}} round 2}} > 100 | 1 | {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Short) Base}}/100}}}}}} |
{{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | {{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | ||
{{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | {{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | ||
Line 51: | Line 50: | ||
{{#ifeq: {{{2|}}} | Legendary | | {{#ifeq: {{{2|}}} | Legendary | | ||
{{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | 1 | {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}}}} | ||
− | {{#vardefine: | + | {{#vardefine: ShortAccuracy | {{#ifexpr: {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Short) Base}} round 2}} > 100 | 1 | {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Short) Base}}/100}}}}}} |
{{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | {{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | 1 | {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Medium) Base}}/100}}}}}} | ||
{{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | {{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | 1 | {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}}}} | ||
Line 65: | Line 64: | ||
}} | }} | ||
− | {{# | + | {{#vardefine: XAxisString | 1 }} |
− | {{# | + | {{#vardefine: YAxisString | {{#expr: {{#var: TouchAccuracy}} * {{#var: DPS}} }} }} |
− | {{# | ||
− | {{#var: | ||
− | {{#var: DPS }} | ||
− | {{ | + | {{#ifexpr: {{#var:range}} > 2| |
− | + | {{#vardefine: XAxisString | {{#var: XAxisString}}, 3}} | |
+ | {{#vardefine: YAxisString | {{#var: YAxisString}}, {{#expr: {{#var: TouchAccuracy}} * {{#var: DPS}} }}}} | ||
+ | |||
+ | {{#ifexpr: {{#var:range}} > 11| | ||
+ | {{#vardefine: XAxisString | {{#var: XAxisString}}, 12}} | ||
+ | {{#vardefine: YAxisString | {{#var: YAxisString}}, {{#expr: {{#var: ShortAccuracy}} * {{#var: DPS}} }}}} | ||
+ | |||
+ | {{#ifexpr: {{#var:range}} > 24| | ||
+ | {{#vardefine: XAxisString | {{#var: XAxisString}}, 25}} | ||
+ | {{#vardefine: YAxisString | {{#var: YAxisString}}, {{#expr: {{#var: MediumAccuracy}} * {{#var: DPS}}}}}} | ||
+ | |||
+ | {{#ifexpr: {{#var:range}} > 39| | ||
+ | {{#vardefine: XAxisString | {{#var: XAxisString}}, 40}} | ||
+ | {{#vardefine: YAxisString | {{#var: YAxisString}}, {{#expr: {{#var: LongAccuracy}} * {{#var: DPS}} }}}} | ||
+ | |||
+ | {{#vardefine: XAxisString | {{#var: XAxisString}}, {{#var:range}}}} | ||
+ | {{#vardefine: YAxisString | {{#var: YAxisString}}, {{#expr: {{#var: LongAccuracy}} * {{#var: DPS}} }}}} | ||
+ | |||
+ | | | ||
+ | {{#vardefine: XAxisString | {{#var: XAxisString}}, {{#var:range}}}} | ||
+ | {{#vardefine: YAxisString | {{#var: YAxisString}}, {{#expr: ((40-{{#var:range}})*{{#var: MediumAccuracy}} + ({{#var:range}}-25)*{{#var: LongAccuracy}})*{{#var:DPS}}/(40-25) }} }} | ||
+ | }} | ||
+ | | | ||
+ | {{#vardefine: XAxisString | {{#var: XAxisString}}, {{#var:range}}}} | ||
+ | {{#vardefine: YAxisString | {{#var: YAxisString}}, {{#expr: ((25-{{#var:range}})*{{#var: ShortAccuracy}} + ({{#var:range}}-12)*{{#var: MediumAccuracy}})*{{#var:DPS}}/(25-12) }} }} | ||
+ | }} | ||
+ | | | ||
+ | {{#vardefine: XAxisString | {{#var: XAxisString}}, {{#var:range}}}} | ||
+ | {{#vardefine: YAxisString | {{#var: YAxisString}}, {{#expr: ((12-{{#var:range}})*{{#var: TouchAccuracy}} + ({{#var:range}}-3)*{{#var: ShortAccuracy}})*{{#var:DPS}}/(12-3) }} }} | ||
+ | }} | ||
+ | |}} | ||
+ | {{Graph:Chart|width=400 | ||
|height=200 | |height=200 | ||
+ | |type=area | ||
|xAxisTitle=Range (Cells) | |xAxisTitle=Range (Cells) | ||
|xAxisMin = 0 | |xAxisMin = 0 | ||
|xAxisMax = 38 | |xAxisMax = 38 | ||
|yAxisMin = 1 | |yAxisMin = 1 | ||
− | |yAxisMax = | + | |yAxisMax = 30 |
− | |yAxisTitle=DPS | + | |yAxisTitle=DPS |
− | |x | + | |x= {{#var: XAxisString}} |
− | + | |y1= {{#var: YAxisString}} | |
− | }} | + | }}</includeonly><noinclude> |
− | </includeonly> | ||
− | <noinclude> | ||
{{Documentation}} | {{Documentation}} | ||
</noinclude> | </noinclude> |
Latest revision as of 10:19, 6 January 2024
Creates a graph showing the optimum DPS that a ranged weapon is capable of at each range, assuming perfect Pawn accuracy. The dimensions and display are standardized to offer ease of comparison.
Usage[edit]
Without parameters, the template will display the chart for the current PAGENAME, assuming normal quality. For example, if the following was used on the assault rifle page:
{{Weapon DPS Chart}}
it would produce:
The first parameter, if present, allows the weapon to be chosen if it is not used on the page of the weapon in question. The template will display the chart for the chosen weapon, assuming normal quality. For example, if the following was used on any page:
{{Weapon DPS Chart|Sniper rifle}}
it would produce:
The second parameter, if present, allows the quality of the weapon to be chosen. It can be used with or without first parameter. The template will display the chart for the chosen weapon and quality. For example, if the following was used on the minigun page
{{Weapon DPS Chart||Legendary}}
it would produce:
The above documentation is transcluded from Template:Weapon DPS Chart/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. |