Template:UnitData: Difference between revisions

From Mechabellum Wiki
(bump version to 0.7.23, fix unlock cost)
(update 0.9.0.2)
 
(32 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{#vardefine:update | 0.7.23
{{#vardefine:update | 0.9.0.2
}}{{#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! Last value must be number ?! -->
  | #default = HP ; Speed ; Attack ; Interval ; Range ; Splash ; Target ; Units ; Giant ; Mobility ; Cost ; Unlock Cost ; Upkeep
  | #default = HP ; Speed ; Attack ; Interval ; Range ; Splash ; Target ; Units ; Giant ; Mobility ; Cost ; Unlock Cost ; Rare ; Upkeep
  | War Factory = 160008 ; 6 ; 6843 * 4 ; 2.0 ; 100 ; 4.5 ; Ground Only ; 1 ; Yes ; Ground ; 800 ; 200 ; 200
  | Crawler = 292 ; 16 ; 79 ; 0.6 ; 0 ; 0.0 ; Ground Only ; 24 ; No ; Ground ; 100 ; 0 ; No ; 0
  | Fortress = 53340 ; 6 ; 6843 ; 2.0 ; 100 ; 4.5 ; Ground Only ; 1 ; Yes ; Ground ; 400 ; 200 ; 0
| Fang = 117 ; 6 ; 61 ; 1.5 ; 75 ; 0.0 ; Air & Ground ; 18 ; No ; Ground ; 100 ; 0 ; No ; 0
  | Marksman = 1471 ; 8 ; 2329 ; 3.1 ; 140 ; 0 ; Air & Ground ; 1 ; No ; Ground ; 100 ; 0 ; 0
  | Arclight = 4414 ; 7 ; 347 ; 0.9 ; 93 ; 7.0 ; Ground Only ; 1 ; No ; Ground ; 100 ; 0 ; No ; 0
  | Vulcan = 35242 ; 6 ; 88 ; 0.1 ; 95 ; 10.0 ; Ground Only ; 1 ; Yes ; Ground ; 400 ; 100 ; 0
  | Marksman = 1622 ; 8 ; 2329 ; 3.1 ; 140 ; 0.0 ; Air & Ground ; 1 ; No ; Ground ; 100 ; 0 ; No ; 0
  | Melting Point = 41102 ; 6 ; 1 - 6721 ; 0.2 ; 115 ; 3.0 ; Air & Ground ; 1 ; Yes ; Ground ; 400 ; 200 ; 0
  | Mustang = 343 ; 16 ; 37 ; 0.4 ; 95 ; 0.0 ; Air & Ground ; 12 ; No ; Ground ; 200 ; 50 ; No ; 0
  | Rhino = 19297 ; 16 ; 3297 ; 0.9 ; 0 ; 6.0 ; Ground Only ; 1 ; No ; Ground ; 200 ; 50 ; 0
| Sledgehammer = 3478 ; 7 ; 608 ; 4.5 ; 95 ; 5.0 ; Ground Only ; 5 ; No ; Ground ; 200 ; 50 ; No ; 0
  | Wasp = 282 ; 16 ; 189 ; 1.5 ; 50 ; 0 ; Air & Ground ; 12 ; No ; Air ; 200 ; 50 ; 0
  | Stormcaller = 1149 ; 6 ; 860 * 4 ; 6.3 ; 180 ; 5.5 ; Ground Only ; 4 ; No ; Ground ; 200 ; 50 ; No ; 0
  | Mustang = 343 ; 16 ; 35 ; 0.4 ; 95 ; 0 ; Air & Ground ; 12 ; No ; Ground ; 200 ; 50 ; 0
| Steel Ball = 4571 ; 16 ; 2 - 2605 ; 0.2 ; 45 ; 0.0 ; Ground Only ; 4 ; No ; Ground ; 200 ; 50 ; No ; 0
  | Steel Ball = 4571 ; 16 ; 2 - 2463 ; 0.2 ; 45 ; 0 ; Ground Only ; 4 ; No ; Ground ; 200 ; 50 ; 0
| Tarantula = 15950 ; 8 ; 580 * 2 ; 0.6 ; 75 ; 5.0 ; Ground ; 1 ; No ; Ground ; 200 ; 50 ; No ; 0
  | Fang = 117 ; 6 ; 54 ; 1.5 ; 80 ; 0 ; Air & Ground ; 18 ; No ; Ground ; 100 ; 0 ; 0
  | Rhino = 19297 ; 16 ; 3297 ; 0.9 ; 0 ; 6.0 ; Ground Only ; 1 ; No ; Ground ; 200 ; 50 ; No ; 0
  | Crawler = 261 ; 16 ; 131 ; 1.2 ; 0 ; 0 ; Ground Only ; 24 ; No ; Ground ; 100 ; 0 ; 0
| Hacker = 3249 ; 8 ; 585 ; 0.3 ; 110 ; 0.0 ; Ground Only ; 1 ; No ; Ground ; 200 ; 100 ; No ; 0
  | Overlord = 15630 ; 10 ; 3654 * 4 ; 4.0 ; 110 ; 7.5 ; Air & Ground ; 1 ; Yes ; Air ; 400 ; 200 ; 0
  | Wasp = 311 ; 16 ; 202 ; 1.4 ; 50 ; 0.0 ; Air & Ground ; 12 ; No ; Air ; 200 ; 50 ; No ; 0
  | Stormcaller = 1149 ; 6 ; 905 * 4 ; 6.3 ; 180 ; 5.5 ; Ground Only ; 4 ; No ; Ground ; 200 ; 50 ; 0
  | Phoenix = 1464 ; 16 ; 2981 ; 3.2 ; 120 ; 0.0 ; Air & Ground ; 2 ; No ; Air ; 200 ; 50 ; No ; 0
  | Sledgehammer = 3264 ; 7 ; 608 ; 4.5 ; 95 ; 5.0 ; Ground Only ; 5 ; No ; Ground ; 200 ; 50 ; 0
| Wraith = 15001 ; 12 ; 405 * 4 ; 1.6 ; 55 ; 8.0 ; Air & Ground ; 1 ; No ; Air ; 300 ; 100 ; No ; 0
  | Hacker = 3249 ; 8 ; 585 ; 0.3 ; 110 ; 0 ; Ground Only ; 1 ; No ; Ground ; 200 ; 100 ; 0
| Scorpion = 19625 ; 7 ; 10047 ; 4.5 ; 100 ; 15.0 ; Ground ; 1 ; No ; Ground ; 300 ; 100 ; No ; 0
  | Arclight = 3903 ; 7 ; 346 ; 1.1 ; 93 ; 7.0 ; Ground Only ; 1 ; No ; Ground ; 100 ; 0 ; 0
| Vulcan = 38723 ; 6 ; 86 ; 0.1 ; 95 ; 15.0 ; Ground Only ; 1 ; Yes ; Ground ; 400 ; 200 ; No ; 0
  | Phoenix = 1623 ; 16 ; 3268 ; 3.3 ; 120 ; 0 ; Air & Ground ; 2 ; No ; Air ; 200 ; 50 ; 0
  | Melting Point = 30907 ; 6 ; 2 - 7952 ; 0.2 ; 115 ; 3.0 ; Air & Ground ; 1 ; Yes ; Ground ; 400 ; 200 ; No ; 0
  | Fortress = 45297 ; 6 ; 6369 ; 1.8 ; 100 ; 5.0 ; Ground Only ; 1 ; Yes ; Ground ; 400 ; 200 ; No ; 0
  | Sandworm = 48645; 16 ; 8324 ; 2.5 ; 0 ; 12.0 ; Ground ; 1 ; Yes ; Ground ; 400 ; 200 ; No ; 0
  | Overlord = 16099 ; 10 ; 3742 * 4 ; 4.6 ; 110 ; 7.0 ; Air & Ground ; 1 ; Yes ; Air ; 400 ; 200 ; No ; 0
  | War Factory = 166798 ; 6 ; 7184 * 2 ; 1.8 ; 100 ; 4.5 ; Ground Only ; 1 ; Yes ; Ground ; 800 ; 200 ; No ; 200
  | Fire Badger = 5635 ; 10 ; 27 ; 0.1 ; 60 ; 9.0 ; Ground ; 3 ; No ; Ground ; 200 ; 0 ; Yes ; 0
  | Sabertooth = 15258 ; 8 ; 6000 ; 3.0 ; 95 ; 6.0 ; Ground ; 1 ; No ; Ground ; 200 ; 0 ; Yes ; 0
  | Typhoon = 10030 ; 9 ; 88 ; 0.2 ; 100 ; 5.0 ; Ground ; 2 ; No ; Air & Ground ; 300 ; 0 ; Yes ; 0
  | Farseer = 11991 ; 16 ; 1148 ; 1.6 ; 125 ; 8.0 ; Ground ; 1 ; No ; Air & Ground ; 300 ; 0 ; Yes ; 0
<!-- ----------------------------- end data ----------------------------- -->
<!-- ----------------------------- end data ----------------------------- -->
   }}
   }}
Line 33: Line 41:
Melting damage is set as a range "1 - 9000" allowing the math to work.
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.
Missiles usually come in packs of 4 but the damage/attack shown is for one missile, so add a multiplier e.g. "555 * 4" looks nicer and the math works fine.


<hr></noinclude>{{#iferror: {{#expr: {{#sub:{{#var:row}}|-1}} }}
<hr></noinclude>{{#iferror: {{#expr: {{#sub:{{#var:row}}|-1}} }}
   | Error: Unit "{{{1|{{PAGENAME}}}}}" undefined!
   | Error: Unit "{{{1|{{PAGENAME}}}}}" undefined!
   | <!-- no error -  -->
   | <!-- no error -  -->
  {{#vardefine:shots |
    {{#if: {{#pos: {{#explode: {{#var:row}} | ; | 2 }} | * }}
      | {{#explode: {{#explode: {{#var:row}} | ; | 2 }} | * | 1 }}
      | 1
    }}
  }}
   {{#vardefine:atk_tmp | {{#ifexpr: ({{#explode: {{#var:row}} | ; | 2 }}) < 1  <!-- if melting damage -->
   {{#vardefine:atk_tmp | {{#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}}} }}
           | {{#if: {{#pos: {{#explode: {{#var:row}} | ; | 2 }} | * }} <!-- if * 4 missiles -->
           | {{#if: {{#pos: {{#explode: {{#var:row}} | ; | 2 }} | * }} <!-- if multi shot -->
             | {{#expr: {{#explode: {{#var:row}} | ; | 2 }} * {{{level|1}}} / 4 }} * 4
             | {{#expr: {{#explode: {{#var:row}} | ; | 2 }} * {{{level|1}}} / {{#var:shots}} }} * {{#var:shots}}
             | {{#expr: {{#explode: {{#var:row}} | ; | 2 }} * {{{level|1}}} }}
             | {{#expr: {{#explode: {{#var:row}} | ; | 2 }} * {{{level|1}}} }}
           }}
           }}
Line 63: Line 77:
       | 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 }}
      | rare = {{#explode: {{#var:row}} | ; | 12 }}
       | upkeep = {{#explode: {{#var:row}} | ; | 13 }}
     }}
     }}
     |<!-- else vardefine -->{{#vardefine:level | {{{level|1}}}
     |<!-- else vardefine -->{{#vardefine:level | {{{level|1}}}
Line 78: Line 93:
     }}{{#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 }}
    }}{{#vardefine:rare | {{#explode: {{#var:row}} | ; | 12 }}
     }}{{#vardefine:upkeep | {{#explode: {{#var:row}} | ; | 13 }}
     }}<!-- 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 97: Line 113:
     }}{{#vardefine:splash_index | {{#expr:  
     }}{{#vardefine:splash_index | {{#expr:  
         {{#ifeq: {{#var:splash}} | 0 | 1 | {{#var:splash}} }}  
         {{#ifeq: {{#var:splash}} | 0 | 1 | {{#var:splash}} }}  
         {{#if: {{#pos: {{#var:atk}} | * }} | * 4 }}
         {{#if: {{#pos: {{#var:atk}} | * }} | * {{#var:shots}} }}
         {{#if: {{#pos: {{#var:atk}} | - }} | * .025 <!-- damage build up --> |  
         {{#if: {{#pos: {{#var:atk}} | - }} | * .025 <!-- damage build up --> |  
           {{#ifexpr: ({{#var:atk}}) < 350 | * (({{#var:atk}}) / 350) }}
           {{#ifexpr: ({{#var:atk}}) < 350 | * (({{#var:atk}}) / 350) }}

Latest revision as of 21:14, 6 September 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 come in packs of 4 but the damage/attack shown is for one missile, so add a multiplier e.g. "555 * 4" looks nicer and the math works fine.


Error: Unit "UnitData" undefined!