Difference between revisions of "Template:Weapon DPS Chart"
(Work in progess, just a bakcup save) |
m (no redirect) |
||
(14 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | {{#vardefine: name | {{{1|{{PAGENAME}} }}} }} | + | <includeonly>{{#vardefine: name | {{{1|{{PAGENAME}} }}} }} {{#vardefine: range | {{#expr: {{Q|{{#var: name}}|Range}} round 0}}}} {{#if: {{{2|}}} | |
− | {{# | + | {{#ifeq: {{{2|}}} | Awful | |
− | {{#vardefine: TouchAccuracy |{{#expr: {{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: ShortAccuracy |{{#expr: {{Q|{{#var: name}}|Accuracy (Short) Base}}/100}}}} | + | {{#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 |{{#expr: {{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 |{{#expr: {{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 | + | {{#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: 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: 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: TouchAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 100 | | ||
− | {{#vardefine: | ||
− | {{#vardefine: MediumAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Medium) Base}} round 2}} > 100 | | ||
− | {{#vardefine: LongAccuracy | {{#ifexpr: {{ #expr: 0.9*{{Q|{{#var: name}}| Accuracy (Long) Base}} round 2}} > 100 | | ||
{{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}}}}}} | {{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}}}}}} | ||
− | }} | + | |}} |
− | {{#ifeq: {{{2}}} | Normal | + | {{#ifeq: {{{2|}}} | Normal | |
− | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.0*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 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 | | + | {{#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 | | + | {{#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: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}}}}}} | {{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}}}}}} | ||
− | }} | + | |}} |
− | {{#ifeq: {{{2}}} | Good | + | {{#ifeq: {{{2|}}} | Good | |
− | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.1*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 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 | | + | {{#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 | | + | {{#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: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}}}}}} | + | {{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}} }} }} |
− | }} | + | |}} |
− | {{#ifeq: {{{2}}} | Excellent | + | {{#ifeq: {{{2|}}} | Excellent | |
− | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.2*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 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 | | + | {{#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 | | + | {{#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: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}}}} | + | {{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}} }} }} |
− | }} | + | |}} |
− | {{#ifeq: {{{2}}} | Masterwork | + | {{#ifeq: {{{2|}}} | Masterwork | |
− | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.35*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 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 | | + | {{#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 | | + | {{#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: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}} * 1.25}}}} | {{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}} * 1.25}}}} | ||
− | }} | + | |}} |
− | {{#ifeq: {{{2}}} | Legendary | + | {{#ifeq: {{{2|}}} | Legendary | |
− | {{#vardefine: TouchAccuracy | {{#ifexpr: {{ #expr: 1.5*{{Q|{{#var: name}}| Accuracy (Touch) Base}} round 2}} > 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 | | + | {{#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 | | + | {{#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: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}} * 1.5}}}} | {{#vardefine: DPS |{{#expr: {{Q|{{#var: name}}|Maximum DPS}} * 1.5}}}} | ||
+ | |}} | ||
+ | |||
+ | | | ||
+ | {{#vardefine: TouchAccuracy |{{#expr: {{Q|{{#var: name}}| Accuracy (Touch) Base}}/100}}}} | ||
+ | {{#vardefine: ShortAccuracy |{{#expr: {{Q|{{#var: name}}| Accuracy (Short) Base}}/100}}}} | ||
+ | {{#vardefine: MediumAccuracy |{{#expr: {{Q|{{#var: name}}|Accuracy (Medium) Base}}/100}}}} | ||
+ | {{#vardefine: LongAccuracy |{{#expr: {{Q|{{#var: name}}| Accuracy (Long) Base}}/100}}}} | ||
+ | {{#vardefine: DPS | {{Q|{{#var: name}}|Maximum DPS}} }} | ||
}} | }} | ||
+ | {{#vardefine: XAxisString | 1 }} | ||
+ | {{#vardefine: YAxisString | {{#expr: {{#var: TouchAccuracy}} * {{#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> | |
+ | {{Documentation}} | ||
+ | </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. |