Template:UnitData: Difference between revisions

From Mechabellum Wiki
mNo edit summary
m (updated to 0.7.45.1)
 
(27 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{#vardefine:update | 0.7.8
{{#vardefine:update | 0.7.42
}}{{#vardefine:row | {{#switch: {{{1|{{PAGENAME}}}}}
}}{{#vardefine:row | {{#switch: {{{1|{{PAGENAME}}}}}
<!-- Edit the following data. Don't change names and order! -->
<!-- Edit the following data. Don't change names and order! -->
  | #default = HP ; Speed ; Attack ; Interval ; Range ; Splash ; Target ; Units ; Giant ; Mobility ; Cost ; Unlock Cost
  | #default = HP ; Speed ; Attack ; Interval ; Range ; Splash ; Target ; Units ; Giant ; Mobility ; Cost ; Unlock Cost ; Upkeep
  | Fortress = 54408 ; 6 ; 6843 ; 2.0 ; 100 ; 4.5 ; Ground Only ; 1 ; Yes ; Ground ; 400 ; 200
| War Factory = 166798 ; 6 ; 6843 * 4 ; 1.8 ; 110 ; 4.5 ; Ground Only ; 1 ; Yes ; Ground ; 800 ; 200 ; 150
  | Marksman = 1471 ; 8 ; 2271 ; 2.8 ; 140 ; 0 ; Air & Ground ; 1 ; No ; Ground ; 100 ; 0
  | Fortress = 51205 ; 6 ; 6843 ; 2.0 ; 100 ; 4.5 ; Ground Only ; 1 ; Yes ; Ground ; 400 ; 200 ; 0
  | Vulcan = 37073 ; 6 ; 86 ; 0.1 ; 100 ; 10.0 ; Ground Only ; 1 ; Yes ; Ground ; 400 ; 100
  | Marksman = 1622 ; 8 ; 2329 ; 3.1 ; 140 ; 0 ; Air & Ground ; 1 ; No ; Ground ; 100 ; 0 ; 0
  | Melting Point = 39905 ; 6 ; 1 - 6721 ; 0.2 ; 115 ; 3.0 ; Air & Ground ; 1 ; Yes ; Ground ; 400 ; 200
  | Vulcan = 36909 ; 6 ; 81 ; 0.1 ; 95 ; 12.0 ; Ground Only ; 1 ; Yes ; Ground ; 400 ; 100 ; 0
  | Rhino = 19297 ; 16 ; 3297 ; 0.9 ; 0 ; 6.0 ; Ground Only ; 1 ; No ; Ground ; 200 ; 50
  | Melting Point = 41102 ; 6 ; 1 - 6721 ; 0.2 ; 115 ; 3.0 ; Air & Ground ; 1 ; Yes ; Ground ; 400 ; 200 ; 0
  | Wasp = 282 ; 16 ; 189 ; 1.5 ; 50 ; 0 ; Air & Ground ; 12 ; No ; Air ; 200 ; 50
  | Rhino = 19297 ; 16 ; 3297 ; 0.9 ; 0 ; 6.0 ; Ground Only ; 1 ; No ; Ground ; 200 ; 50 ; 0
  | Mustang = 343 ; 16 ; 36 ; 0.4 ; 95 ; 0 ; Air & Ground ; 12 ; No ; Ground ; 200 ; 50
  | Wasp = 302 ; 16 ; 202 ; 1.4 ; 50 ; 0 ; Air & Ground ; 12 ; No ; Air ; 200 ; 50 ; 0
  | Steel Ball = 4571 ; 16 ; 2 - 2463 ; 0.2 ; 45 ; 0 ; Ground Only ; 4 ; No ; Ground ; 200 ; 50
  | Mustang = 343 ; 16 ; 33 ; 0.4 ; 95 ; 0 ; Air & Ground ; 12 ; No ; Ground ; 200 ; 50 ; 0
  | Fang = 117 ; 6 ; 55 ; 1.5 ; 80 ; 0 ; Air & Ground ; 18 ; No ; Ground ; 100 ; 0
  | Steel Ball = 4571 ; 16 ; 2 - 2605 ; 0.2 ; 45 ; 0 ; Ground Only ; 4 ; No ; Ground ; 200 ; 50 ; 0
  | Crawler = 261 ; 16 ; 131 ; 1.2 ; 0 ; 0 ; Ground Only ; 24 ; No ; Ground ; 100 ; 0
  | Fang = 117 ; 6 ; 56 ; 1.5 ; 75 ; 0 ; Air & Ground ; 18 ; No ; Ground ; 100 ; 0 ; 0
  | Overlord = 15321 ; 10 ; 3583 * 4 ; 4.0 ; 110 ; 7.5 ; Air & Ground ; 1 ; Yes ; Air ; 400 ; 200
  | Crawler = 261 ; 16 ; 66 ; 0.6 ; 0 ; 0 ; Ground Only ; 24 ; No ; Ground ; 100 ; 0 ; 0
  | Stormcaller = 1149 ; 6 ; 905 * 4 ; 6.3 ; 180 ; 5.5 ; Ground Only ; 4 ; No ; Ground ; 200 ; 50
  | Overlord = 15630 ; 10 ; 3654 * 4 ; 4.0 ; 110 ; 7.5 ; Air & Ground ; 1 ; Yes ; Air ; 400 ; 200 ; 0
  | Sledgehammer = 3264 ; 7 ; 608 ; 4.5 ; 95 ; 5.0 ; Ground Only ; 5 ; No ; Ground ; 200 ; 50
  | Stormcaller = 1149 ; 6 ; 860 * 4 ; 6.3 ; 180 ; 5.5 ; Ground Only ; 4 ; No ; Ground ; 200 ; 50 ; 0
  | Hacker = 3249 ; 8 ; 585 ; 0.3 ; 110 ; 0 ; Ground Only ; 1 ; No ; Ground ; 200 ; 100
  | Sledgehammer = 3700 ; 7 ; 608 ; 4.5 ; 95 ; 5.0 ; Ground Only ; 5 ; No ; Ground ; 200 ; 50 ; 0
  | Arclight = 3903 ; 7 ; 397 ; 1.2 ; 90 ; 7.0 ; Ground Only ; 1 ; No ; Ground ; 100 ; 0
  | Hacker = 3249 ; 8 ; 585 ; 0.3 ; 110 ; 0 ; Ground Only ; 1 ; No ; Ground ; 200 ; 100 ; 0
  | Phoenix = 1623 ; 16 ; 3268 ; 3.3 ; 120 ; 0 ; Air & Ground ; 2 ; No ; Air ; 200 ; 50
  | Arclight = 3903 ; 7 ; 346 ; 1.0 ; 93 ; 7.0 ; Ground Only ; 1 ; No ; Ground ; 100 ; 0 ; 0
  | Phoenix = 1464 ; 16 ; 3073 ; 3.2 ; 120 ; 0 ; Air & Ground ; 2 ; No ; Air ; 200 ; 50 ; 0
| Wraith = 15001 ; 12 ; 426 * 4 ; 1.6 ; 55 ; 8 ; Air & Ground ; 1 ; No ; Air ; 300 ; 100 ; 0
| Scorpion = 19625 ; 7 ; 10821 ; 4.5 ; 110 ; 15 ; Ground ; 1 ; No ; Ground ; 300 ; 100 ; 0
<!-- ----------------------------- end data ----------------------------- -->
<!-- ----------------------------- end data ----------------------------- -->
   }}
   }}
}}<noinclude>
}}<noinclude>
This template contains all unit data (HP, Speed, Attack, (Attack) Interval, Range, Splash (Range), Target, Units, Giant, Mobility, Cost, Unlock Cost)
This template contains all unit data (HP, Speed, Attack, (Attack) Interval, Range, Splash (Range), Target, Units, Giant, Mobility, Cost, Unlock Cost, Upkeep)


Using the Template with a unit name sets the variables ''<nowiki>{{UnitData|Fortress}}</nowiki>''
Using the Template with a unit name sets the variables ''<nowiki>{{UnitData|Fortress}}</nowiki>''
Line 37: Line 40:
   | Error: Unit "{{{1|{{PAGENAME}}}}}" undefined!
   | Error: Unit "{{{1|{{PAGENAME}}}}}" undefined!
   | <!-- no error -  -->
   | <!-- no error -  -->
   {{#if:{{{2|}}}
   {{#vardefine:atk_tmp | {{#ifexpr: ({{#explode: {{#var:row}} | ; | 2 }}) < 1  <!-- if melting damage -->
    |<!-- return val --> {{#switch: {{{2}}}
      | #default = Error: Var "{{{2}}}" undefined!
      | hp = {{#expr: {{#explode: {{#var:row}} | ; | 0 }} * {{{level|1}}} }}
      | speed = {{#explode: {{#var:row}} | ; | 1 }}
      | atk = {{#ifexpr: ({{#explode: {{#var:row}} | ; | 2 }}) < 1  <!-- if melting damage -->
           | {{#expr: {{#explode: {{#explode: {{#var:row}} | ; | 2 }} | - | 0 }} * {{{level|1}}}  
           | {{#expr: {{#explode: {{#explode: {{#var:row}} | ; | 2 }} | - | 0 }} * {{{level|1}}}  
             }} - {{#expr: {{#explode: {{#explode: {{#var:row}} | ; | 2 }} | - | 1 }} * {{{level|1}}} }}
             }} - {{#expr: {{#explode: {{#explode: {{#var:row}} | ; | 2 }} | - | 1 }} * {{{level|1}}} }}
Line 50: Line 48:
           }}
           }}
       }}
       }}
  }} 
     
  {{#if:{{{2|}}}
    |<!-- return val --> {{#switch: {{{2}}}
      | #default = Error: Var "{{{2}}}" undefined!
      | hp = {{#expr: {{#explode: {{#var:row}} | ; | 0 }} * {{{level|1}}} }}
      | speed = {{#explode: {{#var:row}} | ; | 1 }}
      | atk = {{#var:atk_tmp}}
       | atkint = {{#explode: {{#var:row}} | ; | 3 }}
       | atkint = {{#explode: {{#var:row}} | ; | 3 }}
       | range = {{#explode: {{#var:row}} | ; | 4 }}
       | range = {{#explode: {{#var:row}} | ; | 4 }}
Line 59: Line 65:
       | cost = {{#expr: {{#explode: {{#var:row}} | ; | 10 }} * ({{{level|1}}} + 1) / 2 }}
       | cost = {{#expr: {{#explode: {{#var:row}} | ; | 10 }} * ({{{level|1}}} + 1) / 2 }}
       | unlockcost = {{#explode: {{#var:row}} | ; | 11 }}
       | unlockcost = {{#explode: {{#var:row}} | ; | 11 }}
      | upkeep = {{#explode: {{#var:row}} | ; | 12 }}
     }}
     }}
     |<!-- else vardefine -->{{#vardefine:level | {{{level|1}}}
     |<!-- else vardefine -->{{#vardefine:level | {{{level|1}}}
     }}{{#vardefine:hp | {{#expr: {{#explode: {{#var:row}} | ; | 0 }} * {{#var:level}} }}
     }}{{#vardefine:hp | {{#expr: {{#explode: {{#var:row}} | ; | 0 }} * {{#var:level}} }}
     }}{{#vardefine:speed | {{#explode: {{#var:row}} | ; | 1 }}
     }}{{#vardefine:speed | {{#explode: {{#var:row}} | ; | 1 }}
     }}{{#vardefine:atk | {{#ifexpr: ({{#explode: {{#var:row}} | ; | 2 }}) < 1 <!-- if melting damage -->
     }}{{#vardefine:atk | {{#var:atk_tmp}}
          | {{#expr: {{#explode: {{#explode: {{#var:row}} | ; | 2 }} | - | 0 }} * {{#var:level}}
            }} - {{#expr: {{#explode: {{#explode: {{#var:row}} | ; | 2 }} | - | 1 }} * {{#var:level}} }}
          | {{#if: {{#pos: {{#explode: {{#var:row}} | ; | 2 }} | * }} <!-- if * 4 missels -->
            | {{#expr: {{#explode: {{#var:row}} | ; | 2 }} * {{#var:level}} / 4 }} * 4
            | {{#expr: {{#explode: {{#var:row}} | ; | 2 }} * {{#var:level}} }}
          }}
      }}
     }}{{#vardefine:atkint | {{#explode: {{#var:row}} | ; | 3 }}
     }}{{#vardefine:atkint | {{#explode: {{#var:row}} | ; | 3 }}
     }}{{#vardefine:range | {{#explode: {{#var:row}} | ; | 4 }}
     }}{{#vardefine:range | {{#explode: {{#var:row}} | ; | 4 }}
Line 80: Line 80:
     }}{{#vardefine:cost | {{#expr: {{#explode: {{#var:row}} | ; | 10 }} * ({{#var:level}} + 1) / 2 }}
     }}{{#vardefine:cost | {{#expr: {{#explode: {{#var:row}} | ; | 10 }} * ({{#var:level}} + 1) / 2 }}
     }}{{#vardefine:unlockcost | {{#explode: {{#var:row}} | ; | 11 }}
     }}{{#vardefine:unlockcost | {{#explode: {{#var:row}} | ; | 11 }}
    }}{{#vardefine:upkeep | {{#explode: {{#var:row}} | ; | 12 }}
     }}<!-- calculated variables
     }}<!-- calculated variables
     -->{{#vardefine:burst|{{#ifexpr: ({{#var:atk|0}}) < 1 | 0 | {{#expr: abs({{#var:atk|0}}) * {{#var:units|1}} round 0 }} }}
     -->{{#vardefine:burst|{{#ifexpr: ({{#var:atk|0}}) < 1 | 0 | {{#expr: abs({{#var:atk|0}}) * {{#var:units|1}} round 0 }} }}
Line 86: Line 87:
         | {{#expr: {{#explode: {{#var:atk|-0}} | - | 1 }} * {{#var:units|1}} / {{#var:atkint|1}} round 0 }}
         | {{#expr: {{#explode: {{#var:atk|-0}} | - | 1 }} * {{#var:units|1}} / {{#var:atkint|1}} round 0 }}
         | {{#expr: abs({{#var:atk|0}}) * {{#var:units|1}} / {{#var:atkint|1}} round 0 }}
         | {{#expr: abs({{#var:atk|0}}) * {{#var:units|1}} / {{#var:atkint|1}} round 0 }}
      }}
    }}<!-- more variables
    -->{{#vardefine:min_cost | {{#expr: {{#var:cost}} / {{#var:units}} round 1}}
    }}{{#vardefine:max_cost | {{#expr: ({{#var:cost}} + {{#var:unlockcost}}) / {{#var:units}} round 1}}
    }}{{#vardefine:min_hp_val | {{#expr: ({{#var:hp}} * {{#var:units}}) / ({{#var:cost}} + {{#var:unlockcost}}) round 1}}
    }}{{#vardefine:max_hp_val | {{#expr: ({{#var:hp}} * {{#var:units}}) / {{#var:cost}} round 1}}
    }}{{#vardefine:min_burst_val | {{#expr: {{#var:burst}} / ({{#var:cost}} + {{#var:unlockcost}}) round 1}}
    }}{{#vardefine:max_burst_val | {{#expr: {{#var:burst}} / {{#var:cost}} round 1}}
    }}{{#vardefine:min_dps_val | {{#expr: {{#var:dps}} / ({{#var:cost}} + {{#var:unlockcost}}) round 1}}
    }}{{#vardefine:max_dps_val | {{#expr: {{#var:dps}} / {{#var:cost}} round 1}}
    }}{{#vardefine:splash_index | {{#expr:
        {{#ifeq: {{#var:splash}} | 0 | 1 | {{#var:splash}} }}
        {{#if: {{#pos: {{#var:atk}} | * }} | * 4 }}
        {{#if: {{#pos: {{#var:atk}} | - }} | * .025 <!-- damage build up --> |
          {{#ifexpr: ({{#var:atk}}) < 350 | * (({{#var:atk}}) / 350) }}
        }}
        * {{#var:units}}
        / {{#ifeq: {{{1|{{PAGENAME}}}}} | Hacker | 3 <!-- slow switching --> | {{#var:atkint}} }}
        round 1
       }}
       }}
     }}<!-- end vardefine -->
     }}<!-- end vardefine -->
   }}
   }}
}}
}}

Latest revision as of 13:17, 2 March 2024

This template contains all unit data (HP, Speed, Attack, (Attack) Interval, Range, Splash (Range), Target, Units, Giant, Mobility, Cost, Unlock Cost, Upkeep)

Using the Template with a unit name sets the variables {{UnitData|Fortress}}

On the unit pages the data is automatically pulled and placed in variables (hp, speed, atk, atkint, range, splash, target, units, giant, mobility, cost, unlockcost, burst, dps), ready to use on the page with e.g. {{#var:speed}}.

A single value can be pulled without overriding the variables {{UnitData|Fortress|speed}}.

Melting damage is set as a range "1 - 9000" allowing the math to work.

Missiles usually cam in packs of 4 but the damage/attack shown is for one missile, so add a multiplier e.g. "555 * 4" looks nicer and math works fine.


Error: Unit "UnitData" undefined!