Template:Damage: Difference between revisions

no edit summary
(managed to simplify that much LOL)
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly>
<includeonly>{{#invoke:Damage|main}}</includeonly><noinclude>{{Doc}}</noinclude>
<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, avg}}
{{#arraydefine: arr_rest    |total_damage, avg_damage, total_damage_awk, avg_damage_awk}}
 
{{#loop: counter
    | 0
    | 2
    | <nowiki />
 
    <!-- separate the code between PvE and PvP accordingly -->
    {{#vardefine: number        |0}}
 
    {{#ifeq:{{#var: counter}}|1|
        {{#vardefine: suffix    |_pvp}}
        {{#vardefine: prefix    |pvp_}}
        {{#vardefine: number    |1}}
    }}
   
    <!-- define damage and hit count values -->
    {{#arraydefine: arguments |{{#var:prefix}}dmg, {{#var:prefix}}awk_dmg, hits, avg_hits, awk_hits, avg_awk_hits}}
    {{#arrayprint:arguments||@@@@|<nowiki/>
        {{#forargs: @@@@
        | key
        | value
        | <nowiki />
        {{#vardefine: @@@@{{#var:key}}  |{{#var:value}} }}
        }}
    }}
 
    <!-- define total/avg damage -->
    {{#arrayprint:arr_useful||@@@@|<nowiki/>
        {{#vardefine: @@@@_damage{{#var:suffix}}  |0}}
            {{#forargs: {{#var:prefix}}dmg
            | key
            | value
            | <nowiki />
            {{#vardefine: @@@@_damage{{#var:suffix}}  | {{#expr: {{#var:@@@@_damage{{#var:suffix}} }} + {{#var:{{#var:prefix}}dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg|avg_}}hits{{#var:key}} }} }} }}
        }}
    }}
 
    <!-- define total/avg damage in awakening -->
    {{#arrayprint:arr_useful||@@@@|<nowiki/>
        {{#vardefine: @@@@_damage_awk{{#var:suffix}}  |0}}
        {{#forargs: {{#var:prefix}}awk_dmg
        | key
        | value
        | <nowiki />
        {{#vardefine: @@@@_damage_awk{{#var:suffix}}  | {{#expr: {{#var:@@@@_damage_awk{{#var:suffix}} }} + {{#var:{{#var:prefix}}awk_dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg|avg_}}awk_hits{{#var:key}} }} }} }}
        }}
    }}
 
    <!-- 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}} }}
    }}
 
    <!-- damage with useful, if exists -->
    {{#if:{{{hits_useful1|}}}
        {{#arrayprint:arr_useful||@@@@|<nowiki/>
            {{#vardefine: @@@@_damage_useful{{#var:suffix}}  |0}}
            {{#forargs: dmg
            | key
            | value
            | <nowiki />
            {{#vardefine: @@@@_damage_useful{{#var:suffix}}  | {{#expr: {{#var:@@@@_damage_useful{{#var:suffix}} }} + {{#var:{{#var:prefix}}dmg{{#var:key}} }} * {{#var:{{#ifeq:@@@@|avg|avg_}}hits{{#var:key}}_useful }} }} }}
            }}
            {{#vardefine: @@@@_damage_useful{{#var:suffix}} | {{#expr: {{#var:@@@@_damage_useful{{#var:suffix}} }} * {{#var:useful_penalty}} }} }} 
        }}
       
    }}
 
    <!-- traits -->
    {{#if: {{{empowered|}}} | {{#vardefine: empowered | {{#ifeq: {{{empowered|}}}|true|1.2|{{{empowered|}}} }} }} }}
    {{#arrayprint:arr_rest||@@@@|<nowiki/>
        {{#if:{{{heavy|}}}|{{#vardefine: @@@@_heavy{{#var:suffix}} |{{#expr: {{#var:@@@@{{#var:suffix}} }} * 1.44 }} }} }}
        {{#if: {{{empowered|}}}|{{#vardefine: @@@@_empowered{{#var:suffix}} |{{#expr: {{#var:@@@@{{#var:suffix}} }} * {{#var:empowered}} }} }} }}
        {{#if:{{{enhanced|}}}|{{#vardefine: @@@@_enhanced{{#var:suffix}} |{{#expr: {{#var:@@@@{{#var:suffix}} }} * 0.8 }} }} }}
    }}
 
 
    <!-- damage - considering passive 1 exists -->
    {{#if: {{{passive1|}}}|
        {{#arrayprint:arr_rest||@@@@|<nowiki/>
            {{#vardefine: @@@@_passive1{{#var:suffix}} | {{#expr: {{#var:@@@@{{#var:suffix}} }} * {{#arrayindex:passive1|{{#var:number}} }} round2 }} }}
            <!-- check if the second passive exists. if so, generate another variable that multiplies them together -->
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive1_passive2{{#var:suffix}} | {{#expr: {{#var:@@@@_passive1{{#var:suffix}} }} * {{#arrayindex:passive2|{{#var:number}} }} round2 }} }}
            }}
            {{#if: {{{heavy|}}}
                | {{#vardefine: @@@@_passive1_heavy{{#var:suffix}} | {{#expr: {{#var:@@@@_passive1{{#var:suffix}} }} * 1.44 round2 }} }}
                {{#if: {{{passive2|}}}
                    | {{#vardefine: @@@@_passive1_passive2_heavy{{#var:suffix}} | {{#expr: {{#var:@@@@_passive1_heavy{{#var:suffix}} }} * {{#arrayindex:passive2|{{#var:number}} }} round2 }} }}
                }}
            }}
            {{#if: {{{empowered|}}}
                | {{#vardefine: @@@@_passive1_empowered{{#var:suffix}} | {{#expr: {{#var:@@@@_passive1{{#var:suffix}} }} * {{#var:empowered}} round2 }} }}
                {{#if: {{{passive2|}}}
                    | {{#vardefine: @@@@_passive1_passive2_empowered{{#var:suffix}} | {{#expr: {{#var:@@@@_passive1_empowered{{#var:suffix}} }} * {{#arrayindex:passive2|{{#var:number}} }} round2 }} }}
                }}
            }}
            {{#if: {{{enhanced|}}}
                | {{#vardefine: @@@@_passive1_enhanced{{#var:suffix}} | {{#expr: {{#var:@@@@_passive1{{#var:suffix}} }} * 0.8 round2 }} }}
                {{#if: {{{passive2|}}}
                    | {{#vardefine: @@@@_passive1_passive2_enhanced{{#var:suffix}} | {{#expr: {{#var:@@@@_passive1_enhanced{{#var:suffix}} }} * {{#arrayindex:passive2|{{#var:number}} }} round2 }} }}
                }}
            }}
            {{#if: {{{hits_useful1|}}}
                | {{#vardefine: @@@@_passive1_useful{{#var:suffix}} | {{#expr: {{#var:@@@@_useful{{#var:suffix}} }} * {{#arrayindex:passive1|{{#var:number}} }} round2 }} }}
                {{#if: {{{passive2|}}}
                    | {{#vardefine: @@@@_passive1_passive2_useful{{#var:suffix}} | {{#expr: {{#var:@@@@_passive1_useful{{#var:suffix}} }} * {{#arrayindex:passive2|{{#var:number}} }} round2 }} }}
                }}
            }}
 
            <!-- considering passive 2 exists -->
            {{#if: {{{passive2|}}}
                | {{#vardefine: @@@@_passive2{{#var:suffix}} | {{#expr: {{#var:@@@@{{#var:suffix}} }} * {{#arrayindex:passive2|{{#var:number}} }} round2 }} }}
                {{#if: {{{heavy|}}}
                    | {{#vardefine: @@@@_passive2_heavy{{#var:suffix}} | {{#expr: {{#var:@@@@_passive2{{#var:suffix}} }} * 1.44 round2 }} }}
                }}
                {{#if: {{{empowered|}}}
                    | {{#vardefine: @@@@_passive2_empowered{{#var:suffix}} | {{#expr: {{#var:@@@@_passive2{{#var:suffix}} }} * {{#var:empowered}} round2 }} }}
                }}
                {{#if: {{{enhanced|}}}
                    | {{#vardefine: @@@@_passive2_enhanced{{#var:suffix}} | {{#expr: {{#var:@@@@_passive2{{#var:suffix}} }} * 0.8 round2 }} }}
                }}
                {{#if: {{{hits_useful1|}}}
                    | {{#vardefine: @@@@_passive2_useful{{#var:suffix}} | {{#expr: {{#var:@@@@_useful{{#var:suffix}} }} * {{#arrayindex:passive2|{{#var:number}} }} round2 }} }}
                }}
            }}
        }}
    }}
 
    <!-- formatting - list all values -->
 
    {{#ifeq: {{{format|}}}|false||
        {{#arraydefine: elements|{{#arrayprint:elements}},
            {{#arrayprint:arr_rest||@@@@|<nowiki/>
            ,@@@@{{#var:suffix}},
            @@@@_heavy{{#var:suffix}},
            @@@@_empowered{{#var:suffix}},
            @@@@_enhanced{{#var:suffix}},
            @@@@_useful{{#var:suffix}},
            @@@@_passive1{{#var:suffix}},
            @@@@_passive1_heavy{{#var:suffix}},
            @@@@_passive1_empowered{{#var:suffix}},
            @@@@_passive1_enhanced{{#var:suffix}},
            @@@@_passive1_useful{{#var:suffix}},
            @@@@_passive2{{#var:suffix}},
            @@@@_passive2_heavy{{#var:suffix}},
            @@@@_passive2_empowered{{#var:suffix}},
            @@@@_passive2_enhanced{{#var:suffix}},
            @@@@_passive2_useful{{#var:suffix}},
            @@@@_passive1_passive2{{#var:suffix}},
            @@@@_passive1_passive2_heavy{{#var:suffix}},
            @@@@_passive1_passive2_empowered{{#var:suffix}},
            @@@@_passive1_passive2_enhanced{{#var:suffix}},
            @@@@_passive1_passive2_useful{{#var:suffix}},
            }}
        }}
    }}
}}
 
<!-- formatting - write to actual variables -->
{{#ifeq: {{{format|}}}|false||
    {{#arrayprint:elements||@@@@|<nowiki/>
    {{#vardefine: @@@@ | {{formatnum:{{#var:@@@@}} }}% }}
    }}
}}
 
</div>
</includeonly><noinclude>{{Doc}}</noinclude>