Anonymous

Template:Damage: Difference between revisions

From Elwiki
12,172 bytes removed ,  3 April 2022
Replaced content with "<includeonly>{{#invoke:Damage Test|main}}</includeonly>"
(it didn;'t like nested loops)
(Replaced content with "<includeonly>{{#invoke:Damage Test|main}}</includeonly>")
Tag: Replaced
Line 1: Line 1:
<includeonly>
<includeonly>{{#invoke:Damage Test|main}}</includeonly>
<div style="display:none">
<!-- define passive values -->
{{#if: {{{passive1|}}}
| {{#arraydefine: passive1 | {{{passive1|}}} }}
}}
{{#if: {{{passive2|}}}
| {{#arraydefine: passive2 | {{{passive2|}}} }}
}}
 
<!-- define useful penalty -->
{{#vardefine: useful_penalty | {{{useful_penalty|}}} }}
 
<!-- define helper arrays -->
{{#arraydefine: arr_useful  |total_damage, avg_damage}}
{{#arraydefine: arr_rest    |total_damage, avg_damage, total_damage_awk, avg_damage_awk}}
<!-- separate the code between PvE and PvP accordingly -->
 
<!-- define damage and hit count values -->
{{#arraydefine: arguments |dmg, awk_dmg, hits, avg_hits, awk_hits, avg_awk_hits, pvp_dmg, pvp_awk_dmg}}
{{#arrayprint:arguments||@@@@|<nowiki/>
    {{#forargs: @@@@
    | key
    | value
    | <nowiki />
    {{#vardefine: @@@@{{#var:key}}  |{{#var:value}} }}
    }}
}}
 
<!-- define max hitcount values - useful trait -->
{{#forargs: hits_useful
    | key
    | value
    | <nowiki />
    {{#vardefine: hits{{#var:key}}_useful  |{{#var:value}} }}
}}
 
<!-- define average hitcount values - useful trait -->
{{#forargs: avg_hits_useful
    | key
    | value
    | <nowiki />
    {{#vardefine: avg_hits{{#var:key}}_useful  |{{#var:value}} }}
}}
 
{{#arrayprint:arr_useful||@@@@|<nowiki/>
    <!-- total/avg damage -->
    {{#vardefine: @@@@ |0}}
    {{#forargs: dmg
        | key
        | value
        | <nowiki /> 
        {{#vardefine: @@@@  | {{#expr: {{#var:@@@@ }} + {{#var:dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg_damage|avg_}}hits{{#var:key}} }} }} }}
    }}
    <!-- total/avg damage in awk -->
    {{#vardefine: @@@@_awk  |0}}
    {{#forargs: awk_dmg
    | key
    | value
    | <nowiki />
    {{#vardefine: @@@@_awk  | {{#expr: {{#var:@@@@_awk }} + {{#var:awk_dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg_damage|avg_}}awk_hits{{#var:key}} }} }} }}
    }}
}}
 
<!-- damage with useful, if exists -->
{{#if:{{{hits_useful1|}}}
    {{#arrayprint:arr_useful||@@@@|<nowiki/>
        {{#vardefine: @@@@_useful  |0}}
        {{#forargs: dmg
            | key
            | value
            | <nowiki />
            {{#vardefine: @@@@_useful  | {{#expr: {{#var:@@@@_useful }} + {{#var:dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg_damage|avg_}}hits{{#var:key}}_useful }} }} }}
            }}
            {{#vardefine: @@@@_useful | {{#expr: {{#var:@@@@_useful }} * {{#var:useful_penalty}} }}
        }} 
    }}
}}
   
 
 
<!-- traits -->
{{#if: {{{empowered|}}} | {{#vardefine: empowered | {{#ifeq: {{{empowered|}}}|true|1.2|{{{empowered|}}} }} }} }}
{{#arrayprint:arr_rest||@@@@|<nowiki/>
    {{#if:{{{heavy|}}}|{{#vardefine: @@@@_heavy |{{#expr: {{#var:@@@@ }} * 1.44 }} }} }}
    {{#if: {{{empowered|}}}|{{#vardefine: @@@@_empowered |{{#expr: {{#var:@@@@ }} * {{#var:empowered}} }} }} }}
    {{#if:{{{enhanced|}}}|{{#vardefine: @@@@_enhanced |{{#expr: {{#var:@@@@ }} * 0.8 }} }} }}
}}
 
 
<!-- damage - considering passive 1 exists -->
{{#if: {{{passive1|}}}|
    {{#arrayprint:arr_rest||@@@@|<nowiki/>
        {{#vardefine: @@@@_passive1 | {{#expr: {{#var:@@@@ }} * {{#arrayindex:passive1|0 }} round2 }} }}
        <!-- check if the second passive exists. if so, generate another variable that multiplies them together -->
        {{#if: {{{passive2|}}}
            | {{#vardefine: @@@@_passive1_passive2 | {{#expr: {{#var:@@@@_passive1 }} * {{#arrayindex:passive2|0 }} round2 }} }}
        }}
        {{#if: {{{heavy|}}}
            | {{#vardefine: @@@@_passive1_heavy | {{#expr: {{#var:@@@@_passive1 }} * 1.44 round2 }} }}
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2_heavy | {{#expr: {{#var:@@@@_passive1_heavy }} * {{#arrayindex:passive2|0 }} round2 }} }}
            }}
        }}
        {{#if: {{{empowered|}}}
            | {{#vardefine: @@@@_passive1_empowered | {{#expr: {{#var:@@@@_passive1 }} * {{#var:empowered}} round2 }} }}
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2_empowered | {{#expr: {{#var:@@@@_passive1_empowered }} * {{#arrayindex:passive2|0 }} round2 }} }}
            }}
        }}
        {{#if: {{{enhanced|}}}
            | {{#vardefine: @@@@_passive1_enhanced | {{#expr: {{#var:@@@@_passive1 }} * 0.8 round2 }} }}
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2_enhanced | {{#expr: {{#var:@@@@_passive1_enhanced }} * {{#arrayindex:passive2|0 }} round2 }} }}
            }}
        }}
        {{#if: {{{hits_useful1|}}}
            | {{#vardefine: @@@@_passive1_useful | {{#expr: {{#var:@@@@_useful}} * {{#arrayindex:passive1|0 }} round2 }} }}
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2_useful | {{#expr: {{#var:@@@@_passive1_useful }} * {{#arrayindex:passive2|0 }} round2 }} }}
            }}
        }}
 
        <!-- considering passive 2 exists -->
        {{#if: {{{passive2|}}}
            | {{#vardefine: @@@@_passive2 | {{#expr: {{#var:@@@@ }} * {{#arrayindex:passive2|0 }} round2 }} }}
            {{#if: {{{heavy|}}}
                | {{#vardefine: @@@@_passive2_heavy | {{#expr: {{#var:@@@@_passive2 }} * 1.44 round2 }} }}
            }}
            {{#if: {{{empowered|}}}
                | {{#vardefine: @@@@_passive2_empowered | {{#expr: {{#var:@@@@_passive2 }} * {{#var:empowered}} round2 }} }}
            }}
            {{#if: {{{enhanced|}}}
                | {{#vardefine: @@@@_passive2_enhanced | {{#expr: {{#var:@@@@_passive2 }} * 0.8 round2 }} }}
            }}
            {{#if: {{{hits_useful1|}}}
                | {{#vardefine: @@@@_passive2_useful | {{#expr: {{#var:@@@@_useful }} * {{#arrayindex:passive2|0 }} round2 }} }}
            }}
        }}
    }}
}}
 
<!-- pvp ---------------------
------------------------------
------------------------------
------------------------------
------------------------------
-------------------------- -->
 
{{#arrayprint:arr_useful||@@@@|<nowiki/>
    <!-- total/avg damage -->
    {{#vardefine: @@@@_pvp |0}}
    {{#forargs: pvp_dmg
        | key
        | value
        | <nowiki /> 
        {{#vardefine: @@@@_pvp  | {{#expr: {{#var:@@@@_pvp}} + {{#var:pvp_dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg_damage|avg_}}hits{{#var:key}} }} }} }}
    }}
 
    <!-- total/avg damage in awk -->
    {{#vardefine: @@@@_awk_pvp  |0}}
    {{#forargs: pvp_awk_dmg
    | key
    | value
    | <nowiki />
    {{#vardefine: @@@@_awk_pvp  | {{#expr: {{#var:@@@@_awk_pvp}} + {{#var:pvp_awk_dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg_damage|avg_}}awk_hits{{#var:key}} }} }} }}
    }}
}}
 
<!-- damage with useful, if exists -->
{{#if:{{{hits_useful1|}}}
    {{#arrayprint:arr_useful||@@@@|<nowiki/>
        {{#vardefine: @@@@_useful_pvp  |0}}
        {{#forargs: dmg
            | key
            | value
            | <nowiki />
            {{#vardefine: @@@@_useful_pvp  | {{#expr: {{#var:@@@@_useful_pvp }} + {{#var:pvp_dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg_damage|avg_}}hits{{#var:key}}_useful }} }} }}
            }}
            {{#vardefine: @@@@_useful_pvp | {{#expr: {{#var:@@@@_useful_pvp }} * {{#var:useful_penalty}} }} }} 
    }}
   
}}
 
<!-- traits -->
{{#if: {{{empowered|}}} | {{#vardefine: empowered | {{#ifeq: {{{empowered|}}}|true|1.2|{{{empowered|}}} }} }} }}
{{#arrayprint:arr_rest||@@@@|<nowiki/>
    {{#if:{{{heavy|}}}|{{#vardefine: @@@@_heavy_pvp |{{#expr: {{#var:@@@@_pvp }} * 1.44 }} }} }}
    {{#if: {{{empowered|}}}|{{#vardefine: @@@@_empowered_pvp |{{#expr: {{#var:@@@@_pvp }} * {{#var:empowered}} }} }} }}
    {{#if:{{{enhanced|}}}|{{#vardefine: @@@@_enhanced_pvp |{{#expr: {{#var:@@@@_pvp }} * 0.8 }} }} }}
}}
 
 
<!-- damage - considering passive 1 exists -->
{{#if: {{{passive1|}}}|
    {{#arrayprint:arr_rest||@@@@|<nowiki/>
        {{#vardefine: @@@@_passive1_pvp | {{#expr: {{#var:@@@@_pvp }} * {{#arrayindex:passive1|1 }} round2 }} }}
        <!-- check if the second passive exists. if so, generate another variable that multiplies them together -->
        {{#if: {{{passive2|}}}
            | {{#vardefine: @@@@_passive1_passive2_pvp | {{#expr: {{#var:@@@@_passive1_pvp }} * {{#arrayindex:passive2|1 }} round2 }} }}
        }}
        {{#if: {{{heavy|}}}
            | {{#vardefine: @@@@_passive1_heavy_pvp | {{#expr: {{#var:@@@@_passive1_pvp }} * 1.44 round2 }} }}
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2_heavy_pvp | {{#expr: {{#var:@@@@_passive1_heavy_pvp }} * {{#arrayindex:passive2|1 }} round2 }} }}
            }}
        }}
        {{#if: {{{empowered|}}}
            | {{#vardefine: @@@@_passive1_empowered_pvp | {{#expr: {{#var:@@@@_passive1_pvp }} * {{#var:empowered}} round2 }} }}
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2_empowered_pvp | {{#expr: {{#var:@@@@_passive1_empowered_pvp }} * {{#arrayindex:passive2|1 }} round2 }} }}
            }}
        }}
        {{#if: {{{enhanced|}}}
            | {{#vardefine: @@@@_passive1_enhanced_pvp | {{#expr: {{#var:@@@@_passive1_pvp }} * 0.8 round2 }} }}
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2_enhanced_pvp | {{#expr: {{#var:@@@@_passive1_enhanced_pvp }} * {{#arrayindex:passive2|1 }} round2 }} }}
            }}
        }}
        {{#if: {{{hits_useful1|}}}
            | {{#vardefine: @@@@_passive1_useful_pvp | {{#expr: {{#var:@@@@_useful_pvp }} * {{#arrayindex:passive1|1 }} round2 }} }}
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2_useful_pvp | {{#expr: {{#var:@@@@_passive1_useful_pvp }} * {{#arrayindex:passive2|1 }} round2 }} }}
            }}
        }}
 
        <!-- considering passive 2 exists -->
        {{#if: {{{passive2|}}}
            | {{#vardefine: @@@@_passive2_pvp | {{#expr: {{#var:@@@@_pvp }} * {{#arrayindex:passive2|1 }} round2 }} }}
            {{#if: {{{heavy|}}}
                | {{#vardefine: @@@@_passive2_heavy_pvp | {{#expr: {{#var:@@@@_passive2_pvp }} * 1.44 round2 }} }}
            }}
            {{#if: {{{empowered|}}}
                | {{#vardefine: @@@@_passive2_empowered_pvp | {{#expr: {{#var:@@@@_passive2_pvp }} * {{#var:empowered}} round2 }} }}
            }}
            {{#if: {{{enhanced|}}}
                | {{#vardefine: @@@@_passive2_enhanced_pvp | {{#expr: {{#var:@@@@_passive2_pvp }} * 0.8 round2 }} }}
            }}
            {{#if: {{{hits_useful1|}}}
                | {{#vardefine: @@@@_passive2_useful_pvp | {{#expr: {{#var:@@@@_useful_pvp }} * {{#arrayindex:passive2|1 }} round2 }} }}
            }}
        }}
    }}
}}
 
<!-- formatting - list all values -->
 
{{#ifeq: {{{format|}}}|false||
    {{#arraydefine: elements|
        {{#arrayprint:arr_rest||@@@@|<nowiki/>
        ,@@@@,
        @@@@_heavy,
        @@@@_empowered,
        @@@@_enhanced,
        @@@@_useful,
        @@@@_passive1,
        @@@@_passive1_heavy,
        @@@@_passive1_empowered,
        @@@@_passive1_enhanced,
        @@@@_passive1_useful,
        @@@@_passive2,
        @@@@_passive2_heavy,
        @@@@_passive2_empowered,
        @@@@_passive2_enhanced,
        @@@@_passive2_useful,
        @@@@_passive1_passive2,
        @@@@_passive1_passive2_heavy,
        @@@@_passive1_passive2_empowered,
        @@@@_passive1_passive2_enhanced,
        @@@@_passive1_passive2_useful,
        ,@@@@_pvp,
        @@@@_heavy_pvp,
        @@@@_empowered_pvp,
        @@@@_enhanced_pvp,
        @@@@_useful_pvp,
        @@@@_passive1_pvp,
        @@@@_passive1_heavy_pvp,
        @@@@_passive1_empowered_pvp,
        @@@@_passive1_enhanced_pvp,
        @@@@_passive1_useful_pvp,
        @@@@_passive2_pvp,
        @@@@_passive2_heavy_pvp,
        @@@@_passive2_empowered_pvp,
        @@@@_passive2_enhanced_pvp,
        @@@@_passive2_useful_pvp,
        @@@@_passive1_passive2_pvp,
        @@@@_passive1_passive2_heavy_pvp,
        @@@@_passive1_passive2_empowered_pvp,
        @@@@_passive1_passive2_enhanced_pvp,
        @@@@_passive1_passive2_useful_pvp,
        }}
    }}
}}
 
<!-- formatting - write to actual variables -->
{{#ifeq: {{{format|}}}|false||
    {{#arrayprint:elements||@@@@|<nowiki/>
    {{#vardefine: @@@@ | {{formatnum:{{#var:@@@@}} }}% }}
    }}
}}
</div>
</includeonly><noinclude>{{Doc}}</noinclude>