Difference between revisions of "Template:Sandbox"
Jump to navigation
Jump to search
Sutremaine (talk | contribs) |
Sutremaine (talk | contribs) |
||
Line 1: | Line 1: | ||
− | {{infobox | + | <includeonly>{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}} |
− | | | + | <div class="infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|<!-- |
− | |image = | + | --> animal = c_08 |<!-- |
− | | | + | --> plant = c_14 |<!-- |
− | | | + | --> weapon = c_06 |<!-- |
− | | | + | --> area = c_11 |<!-- |
− | | | + | --> structure = c_02 |<!-- |
− | | | + | --> production = c_25 |<!-- |
− | | | + | --> security = c_10 |<!-- |
− | |movespeed = | + | --> furniture = c_01 |<!-- |
− | | | + | -->}}}}"> |
− | |attack1type = | + | <p class="heading">{{#var:Name}}</p> |
− | |attack1part = | + | <div class="wrapper"> |
− | |attack1cool = | + | <div class="image_wrapper" title="{{#var:Name}}">[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|}}}|link={{#var:Name}}|{{#var:Name}}]]</div> |
− | | | + | <p class="text-center" style="display:block; font-size:89%; padding: .5em;">{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}</p>{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}} |
− | |attack2type = | + | ---- |
− | |attack2part = | + | <dl> |
− | |attack2cool = | + | {{#set:Name = {{#var:Name}} }} |
− | | | + | ;Type |
− | | | + | :[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} | –  [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }} |
− | | | + | |
− | | | + | {{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }} |
− | | | + | ;Placeable |
− | | | + | :{{{placeable|}}}}} |
− | | | + | |
− | | | + | {{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }} |
− | | | + | ;Rotatable |
− | | | + | :{{{rotatable|}}}}} |
− | | | + | |
− | | | + | {{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }} |
− | | | + | ;Size |
− | | | + | :{{{size|}}}}} |
− | | | + | |
− | | | + | {{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }} |
− | | | + | ;Efficiency |
− | | | + | :{{{efficiency|}}}}} |
− | | | + | |
− | | | + | {{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }} |
− | | | + | ;HP |
+ | :{{{hp|}}}}} | ||
+ | |||
+ | {{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }} | ||
+ | ;Deterioration Rate | ||
+ | :{{{deterioration|}}}}} | ||
+ | |||
+ | {{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }} | ||
+ | ;Market Value | ||
+ | :{{Market Value | {{{marketvalue|}}}}} {{Icon Small|silver}} }} | ||
+ | |||
+ | {{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }} | ||
+ | ;Beauty | ||
+ | :[[Beauty Base::{{{beauty|}}}]]}} | ||
+ | |||
+ | {{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }} | ||
+ | ;Mass | ||
+ | :{{{mass base|}}} kg}} | ||
+ | |||
+ | {{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }} | ||
+ | ;Flammability | ||
+ | :{{#expr:{{{flammability|}}}*100}}%}} | ||
+ | |||
+ | <!-- Apparel--> | ||
+ | |||
+ | {{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }} | ||
+ | ;Insulation - Cold | ||
+ | :{{{insulationcold|}}}°C}} | ||
+ | |||
+ | {{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }} | ||
+ | ;Insulation - Heat | ||
+ | :{{{insulationheat|}}}°C}} | ||
+ | |||
+ | {{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }} | ||
+ | ;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}} | ||
+ | :{{{insulationcoldfactor|}}}x }} | ||
+ | |||
+ | {{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }} | ||
+ | ;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}} | ||
+ | :{{{insulationheatfactor|}}}x }} | ||
+ | |||
+ | {{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }} | ||
+ | ;Armor - Blunt | ||
+ | :{{{armorblunt|}}}%}} | ||
+ | |||
+ | {{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }} | ||
+ | ;Armor - Sharp | ||
+ | :{{{armorsharp|}}}%}} | ||
+ | |||
+ | {{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }} | ||
+ | ;Armor - Heat | ||
+ | :{{{armorheat|}}}%}} | ||
+ | |||
+ | {{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }} | ||
+ | ;Armor Factor - Blunt | ||
+ | :{{{armorbluntfactor|}}}}} | ||
+ | |||
+ | {{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }} | ||
+ | ;Armor Factor - Sharp | ||
+ | :{{{armorsharpfactor|}}}}} | ||
+ | |||
+ | {{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }} | ||
+ | ;Armor Factor - Heat | ||
+ | :{{{armorheatfactor|}}}}} | ||
+ | |||
+ | {{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }} | ||
+ | ;Pain Shock Threshold | ||
+ | :{{{painshockthreshold|}}}%}} | ||
+ | |||
+ | {{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }} | ||
+ | ;Coverage | ||
+ | :{{{coverage|}}}}} | ||
+ | |||
+ | <!-- All pawns (animals, humanoids, mechanoids) --> | ||
+ | |||
+ | {{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}} | ||
+ | |||
+ | {{#if: {{{movespeed|}}}|{{#set:Move Speed Base = {{{movespeed|}}} }} | ||
+ | ;Move Speed | ||
+ | :{{{movespeed|}}}}} | ||
+ | |||
+ | {{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }} | ||
+ | ;Mass - Young | ||
+ | :{{{massyoung|{{#expr:{{{massadult}}}/5}}}}}kg}} | ||
+ | |||
+ | {{#if: {{{massjuvenlie|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }} | ||
+ | ;Mass - Juvenile | ||
+ | :{{{massjuvenlie|{{#expr:{{{massadult}}}/2}}}}}kg}} | ||
+ | |||
+ | {{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }} | ||
+ | ;Mass - Adult | ||
+ | :{{{massadult|}}}kg}} | ||
+ | |||
+ | {{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}| | ||
+ | {{#set:Attack 1 Damage = {{{attack1dmg|}}} }} | ||
+ | {{#set:Attack 1 Type = {{{attack1type|}}} }} | ||
+ | {{#set:Attack 1 Part = {{{attack1part|}}} }} | ||
+ | {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }} | ||
+ | {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }} | ||
+ | {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }} | ||
+ | ;Attack{{#if: {{{attack2dmg|}}}| 1}} | ||
+ | :{{{attack1part|Body part?}}}<br>{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})<br>{{ticks|{{{attack1cool|0}}}}} }}<!-- | ||
+ | -->{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}<br>Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}} | ||
+ | |||
+ | {{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}| | ||
+ | {{#set:Attack 2 Damage = {{{attack2dmg|}}} }} | ||
+ | {{#set:Attack 2 Type = {{{attack2type|}}} }} | ||
+ | {{#set:Attack 2 Part = {{{attack2part|}}} }} | ||
+ | {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }} | ||
+ | {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }} | ||
+ | {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }} | ||
+ | ;Attack 2 | ||
+ | :{{{attack2part|Body part?}}}<br>{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})<br>{{ticks|{{{attack2cool|0}}}}} }}<!-- | ||
+ | -->{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}<br>Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}} | ||
+ | |||
+ | {{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}| | ||
+ | {{#set:Attack 3 Damage = {{{attack3dmg|}}} }} | ||
+ | {{#set:Attack 3 Type = {{{attack3type|}}} }} | ||
+ | {{#set:Attack 3 Part = {{{attack3part|}}} }} | ||
+ | {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }} | ||
+ | {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }} | ||
+ | {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }} | ||
+ | ;Attack 3 | ||
+ | :{{{attack3part|Body part?}}}<br>{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})<br>{{ticks|{{{attack3cool|0}}}}} }}<!-- | ||
+ | -->{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}<br>Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}} | ||
+ | |||
+ | {{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}| | ||
+ | {{#set:Attack 4 Damage = {{{attack4dmg|}}} }} | ||
+ | {{#set:Attack 4 Type = {{{attack4type|}}} }} | ||
+ | {{#set:Attack 4 Part = {{{attack4part|}}} }} | ||
+ | {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }} | ||
+ | {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }} | ||
+ | {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }} | ||
+ | ;Attack 4 | ||
+ | :{{{attack4part|Body part?}}}<br>{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})<br>{{ticks|{{{attack4cool|0}}}}} on first strike}}<!-- | ||
+ | -->{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}<br>Stun for {{ticks|{{{attack4stun|0}}}*20}}}} | ||
+ | |||
+ | {{#ifeq: {{#varexists: Attack4DPS}}|1| | ||
+ | {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}| | ||
+ | {{#ifeq: {{#varexists: Attack3DPS}}|1| | ||
+ | {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}| | ||
+ | {{#ifeq: {{#varexists: Attack2DPS}}|1| | ||
+ | {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}| | ||
+ | {{#ifeq: {{#varexists: Attack1DPS}}|1| | ||
+ | {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }} | ||
+ | |||
+ | {{#ifeq: {{#varexists: MobAverageDPS}}|1| | ||
+ | ;Average DPS | ||
+ | :{{#var: MobAverageDPS}} | ||
+ | {{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }} | ||
+ | |||
+ | {{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }} | ||
+ | ;Damage | ||
+ | :{{{mobdamage|}}}}} | ||
+ | |||
+ | {{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }} | ||
+ | ;Damage Type | ||
+ | :{{{mobdamagetype|}}}}} | ||
+ | |||
+ | {{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }} | ||
+ | ;Damage | ||
+ | :{{{mobdamage2|}}}}} | ||
+ | |||
+ | {{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }} | ||
+ | ;Damage Type | ||
+ | :{{{mobdamagetype2|}}}}} | ||
+ | |||
+ | {{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }} | ||
+ | ;Damage | ||
+ | :{{{mobdamage3|}}}}} | ||
+ | |||
+ | {{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }} | ||
+ | ;Damage Type | ||
+ | :{{{mobdamagetype3|}}}}} | ||
+ | |||
+ | {{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}} | ||
+ | |||
+ | {{#ifeq: {{{type|}}} | Animals | | ||
+ | {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }} | ||
+ | {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} | ||
+ | {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}| | ||
}} | }} | ||
− | + | {{#if: {{{bodysize|}}}| | |
+ | {{#set: Body Size = {{{bodysize|}}} }} | ||
− | = | + | {{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }} |
− | + | {{#set: Meat Yield = {{#var: MeatYield}} }} | |
+ | ;Meat Yield | ||
+ | :{{#var: MeatYield}} [[Meat|{{lc:{{#var:MeatName}}}}]] | ||
− | + | {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }} | |
+ | {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }} | ||
+ | ;Carrying Capacity | ||
+ | :{{#var: CarryingCapacity}} | ||
− | = | + | <!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --> |
− | + | <!-- See Property:Leather_Yield for details --> | |
+ | {{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }} | ||
+ | {{#set: Leather Yield = {{#var: LeatherYield}} }} | ||
+ | ;Leather Yield | ||
+ | :{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }} | ||
− | + | {{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }} | |
+ | ;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}} | ||
+ | :{{#expr: {{{manhunter|}}} * 100}}%}} | ||
− | == | + | {{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }} |
− | + | ;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}} | |
+ | :{{#expr: {{{manhuntertame|}}} * 100}}%}} | ||
− | {{ | + | {{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }} |
+ | ;Hunger Rate | ||
+ | :{{{hungerrate|}}}}} | ||
− | + | {{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }} | |
− | {{# | + | ;Diet |
− | {{#set: | + | :{{{diet|}}}}} |
− | {{ | ||
− | |||
− | == | + | {{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }} |
− | < | + | ;Life Expectancy |
− | < | + | :{{{lifespan|}}}}} |
− | {|class= | + | |
− | ! | + | {{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }} |
− | | | + | ;Trainable Intelligence |
− | | | + | :{{{trainable|}}} |
− | | | + | {{#switch: {{{trainable|}}} |
− | | | + | | none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}} |
− | | | + | | simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}} |
− | | | + | | intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}} |
− | |- | + | | advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} >= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} >= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}} |
− | | | + | }} |
− | | | + | }} |
− | | | + | |
− | | | + | {{#if: {{{handleskill|}}}|{{#set:Minimum Handling Skill = {{{handleskill|}}} }} |
− | | | + | ;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}} |
− | | | + | :{{{handleskill|}}}}} |
− | | | + | |
− | | | + | {{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }} |
− | | | + | ;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}} |
− | | | + | :{{#expr: {{{wildness|}}} * 100 round0}}%}} |
− | | | + | |
− | | | + | {{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}} |
− | | | + | |
− | | | + | {{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }} |
− | | | + | ;[[Milk]] Amount |
− | |- | + | :{{{milk|}}} }} |
− | | | + | |
− | |- | + | |
− | | | + | {{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }} |
− | |- | + | {{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }} |
− | | | + | ;Milking Interval |
− | | | + | :{{{milktime|}}} days}} |
− | | | + | |
− | |- | + | {{#if: {{{wool|}}}| |
− | | | + | {{#set: Wool Amount = {{{wool|}}}}} |
− | | | + | {{#vardefine: WoolName | {{{woolnam | {{#var:Name}} wool}}} }} |
− | | | + | ;Wool Amount |
− | |} | + | :{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]] |
− | < | + | }} |
− | + | ||
− | + | {{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }} | |
+ | {{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }} | ||
+ | ;Shearing Interval | ||
+ | :{{{sheartime|}}} days}} | ||
+ | |||
+ | {{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }} | ||
+ | {{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }} | ||
+ | ;Eggs Per Clutch | ||
+ | :{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }} | ||
+ | |||
+ | {{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }} | ||
+ | {{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }} | ||
+ | ;Egg Laying Interval | ||
+ | :{{{eggtime|}}} days}} | ||
+ | |||
+ | {{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }} | ||
+ | |||
+ | {{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }} | ||
+ | ;Gestation Period | ||
+ | {{#switch: {{{gestation|}}} | ||
+ | | N/A = :N/A | ||
+ | | 1 = :{{{gestation|}}} day | ||
+ | | #default = :{{{gestation|}}} days | ||
+ | }}}} | ||
+ | |||
+ | {{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }} | ||
+ | ;Offspring Per Birth | ||
+ | :{{{offspring|}}} }} | ||
+ | |||
+ | {{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }} | ||
+ | ;Maturity Age | ||
+ | :{{{maturityage|}}} }} | ||
+ | |||
+ | {{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives in Arid Shrubland = true}} }} | ||
+ | {{#if: {{{livesin_borealforest|}}}|{{#set: Lives in Boreal Forest = true}} }} | ||
+ | {{#if: {{{livesin_desert|}}}|{{#set: Lives in Desert = true}} }} | ||
+ | {{#if: {{{livesin_extremedesert|}}}|{{#set: Lives in Extreme Desert = true}} }} | ||
+ | {{#if: {{{livesin_icesheet|}}}|{{#set: Lives in Icesheet = true}} }} | ||
+ | {{#if: {{{livesin_seaice|}}}|{{#set: Lives in Sea Ice = true}} }} | ||
+ | {{#if: {{{livesin_temperateforest|}}}|{{#set: Lives in Temperate Forest = true}} }} | ||
+ | {{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives in Tropical Rainforest = true}} }} | ||
+ | {{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }} | ||
+ | |||
+ | |||
+ | <!--Plants--> | ||
+ | |||
+ | {{#if: {{{growth time|}}}|{{#set:Growth Time = {{{growth time|}}} }} | ||
+ | ;Time to grow | ||
+ | :{{{growth time|}}} day(s)}} | ||
+ | |||
+ | {{#if: {{{yield|}}}| | ||
+ | ;Food Yield | ||
+ | :{{{yield|}}} [[food|food]]}} | ||
+ | |||
+ | {{#if: {{{wood|}}}| | ||
+ | ;Wood Yield | ||
+ | :{{{wood|}}}}} | ||
+ | |||
+ | |||
+ | <!--Buildings--> | ||
+ | |||
+ | {{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }} | ||
+ | ;Power | ||
+ | :{{{power|}}}W}} | ||
+ | |||
+ | {{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}} | ||
+ | |||
+ | {{#if: {{{material amount|}}}{{{material name|}}}|{{#set:Material Amount = {{{material amount|}}} }} {{#set:Material Name= {{{material name|}}} }} | ||
+ | ;Materials | ||
+ | :{{icon|{{lc:{{{material name|buildingmat}}}}}|{{{material amount|}}}|16 | ||
+ | }}{{#if: {{{material 2 amount|}}}{{{material 2 name|}}}| | ||
+ | {{#set:Material 2 Amount = {{{material 2 amount|}}} }} {{#set:Material 2 Name= {{{material 2 name|}}} }} | ||
+ | & {{icon|{{lc:{{{material 2 name|component}}}}}|{{{material 2 amount|}}}|16 | ||
+ | }} {{#if: {{{material 3 amount|}}}{{{material 3 name|}}}| | ||
+ | {{#set:Material 3 Amount = {{{material 3 amount|}}} }} {{#set:Material 3 Name= {{{material 3 name|}}} }} | ||
+ | & {{icon|{{lc:{{{material 3 name|component}}}}}|{{{material 3 amount|}}}|16 | ||
+ | }} {{#if: {{{material 4 amount|}}}{{{material 4 name|}}}| | ||
+ | {{#set:Material 4 Amount = {{{material 4 amount|}}} }} {{#set:Material 4 Name= {{{material 4 name|}}} }} | ||
+ | & {{icon|{{lc:{{{material 4 name|component}}}}}|{{{material 4 amount|}}}|16 | ||
+ | }} }} | ||
+ | }} | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | <!--Floors--> | ||
+ | |||
+ | {{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }} | ||
+ | ;Move Speed Factor | ||
+ | :{{#expr:{{{speed|}}}*100}}% | ||
+ | }} | ||
+ | |||
+ | <!--Furniture--> | ||
+ | |||
+ | {{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }} | ||
+ | ;Immunity Gain Speed Factor | ||
+ | :{{{immunity gain speed factor|}}}}} | ||
+ | |||
+ | {{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }} | ||
+ | ;Rest Effectiveness | ||
+ | :{{{rest effectiveness|}}}}} | ||
+ | |||
+ | {{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }} | ||
+ | ;Comfort | ||
+ | :{{{comfort|}}}}} | ||
+ | |||
+ | {{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }} | ||
+ | ;Comfort Offset | ||
+ | :{{{comfort offset|}}}}} | ||
+ | |||
+ | {{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }} | ||
+ | ;Cover Effectiveness | ||
+ | :{{#expr:{{{cover|}}}*100}}%}} | ||
+ | |||
+ | <!--Weapons--> | ||
+ | |||
+ | {{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}} | ||
+ | ;Class | ||
+ | :[[{{{class|}}} Weapons|{{{class|}}}]] | ||
+ | }} | ||
+ | |||
+ | {{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} | ||
+ | ;Mode | ||
+ | :{{{mode|}}}}} | ||
+ | |||
+ | {{#if: {{{damage|}}}| | ||
+ | {{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}|{{#set:Damage Type = Sharp }} }} | ||
+ | ;Dmg Type | ||
+ | :{{{damage type|Sharp }}} | ||
+ | |||
+ | |||
+ | <!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--> | ||
+ | |||
+ | {{#ifeq: {{#varexists: MobAverageDPS}}|1| | ||
+ | ;Average DPS | ||
+ | :{{#var: MobAverageDPS}} | ||
+ | {{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }} | ||
+ | |||
+ | {{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee | | ||
+ | {{#set:Melee Damage Base = {{{damage|}}} | ||
+ | |Melee Warmup = {{{warmup|}}} | ||
+ | |Melee Cooldown Base = {{{cooldown|}}} | ||
+ | }} | ||
+ | | | ||
+ | {{#set:Damage Base = {{{damage|}}} | ||
+ | |Aiming Time Base = {{{warmup|}}} | ||
+ | |Ranged Cooldown Base = {{{cooldown|}}} | ||
+ | |Weapons/Row/Ranged/NoInclude=False | ||
+ | }} }} |}} | ||
+ | |||
+ | ;Damage | ||
+ | :{{{damage|}}} | ||
+ | }} | ||
+ | |||
+ | <!-- New melee starting from Beta 18 --> | ||
+ | |||
+ | {{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}| | ||
+ | {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }} | ||
+ | {{#set:Attack 1 Type = {{{meleeattack1type|}}} }} | ||
+ | {{#set:Attack 1 Part = {{{meleeattack1part|}}} }} | ||
+ | {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }} | ||
+ | {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }} | ||
+ | {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }} | ||
+ | {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }} | ||
+ | ;Attack{{#if: {{{meleeattack1dmg|}}}| 1}} | ||
+ | :{{{meleeattack1part|Body part?}}}<br>{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})<br>{{{meleeattack1cool|0}}} seconds cooldown <br>{{{meleeattack1ap|0}}}% armor penetration}} | ||
+ | |||
+ | {{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}| | ||
+ | {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }} | ||
+ | {{#set:Attack 2 Type = {{{meleeattack2type|}}} }} | ||
+ | {{#set:Attack 2 Part = {{{meleeattack2part|}}} }} | ||
+ | {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }} | ||
+ | {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }} | ||
+ | {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }} | ||
+ | {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }} | ||
+ | ;Attack 2{{#if: {{{meleeattack2dmg|}}}| }} | ||
+ | :{{{meleeattack2part|Body part?}}}<br>{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})<br>{{{meleeattack2cool|0}}} seconds cooldown <br>{{{meleeattack2ap|0}}}% armor penetration}} | ||
+ | |||
+ | {{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}| | ||
+ | {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }} | ||
+ | {{#set:Attack 3 Type = {{{meleeattack3type|}}} }} | ||
+ | {{#set:Attack 3 Part = {{{meleeattack3part|}}} }} | ||
+ | {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }} | ||
+ | {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }} | ||
+ | {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }} | ||
+ | {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }} | ||
+ | ;Attack 3{{#if: {{{meleeattack3dmg|}}}| }} | ||
+ | :{{{meleeattack3part|Body part?}}}<br>{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})<br>{{{meleeattack3cool|0}}} seconds cooldown <br>{{{meleeattack3ap|0}}}% armor penetration}} | ||
+ | |||
+ | {{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}| | ||
+ | {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }} | ||
+ | {{#set:Attack 4 Type = {{{meleeattack4type|}}} }} | ||
+ | {{#set:Attack 4 Part = {{{meleeattack4part|}}} }} | ||
+ | {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }} | ||
+ | {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }} | ||
+ | {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }} | ||
+ | {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }} | ||
+ | ;Attack 4{{#if: {{{meleeattack3dmg|}}}| }} | ||
+ | :{{{meleeattack4part|Body part?}}}<br>{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})<br>{{{meleeattack4cool|0}}} seconds cooldown <br>{{{meleeattack4ap|0}}}% armor penetration}} | ||
+ | |||
+ | {{#if: {{{MeleeWeaponAverageDPS|}}}| | ||
+ | ;Melee Average DPS | ||
+ | :{{{MeleeWeaponAverageDPS|}}} }} | ||
+ | |||
+ | {{#if: {{{MeleeWeaponAverageAP|}}}| | ||
+ | ;Melee Average AP | ||
+ | :{{{MeleeWeaponAverageAP|}}}%}} | ||
+ | |||
+ | |||
+ | <!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game | ||
+ | |||
+ | {{#ifeq: {{#varexists: MeleeAttack3Chance}}|1| | ||
+ | {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}| | ||
+ | {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1| | ||
+ | {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}| | ||
+ | {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1| | ||
+ | {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }} | ||
+ | |||
+ | {{#ifeq: {{#varexists: MeleeAttack3DPS}}|1| | ||
+ | {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}| | ||
+ | {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1| | ||
+ | {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}| | ||
+ | {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1| | ||
+ | {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} | ||
+ | |||
+ | ---------- Line to separate the mess above from the other stuff below ---------- --> | ||
+ | |||
+ | {{#if: {{{armorPenetration|}}}| | ||
+ | ;Armor penetration | ||
+ | :{{{armorPenetration|}}}%}} | ||
+ | |||
+ | {{#if: {{{warmup|}}}| | ||
+ | ;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}} | ||
+ | :{{ticks|{{{warmup|}}}}}}} | ||
+ | |||
+ | {{#if: {{{cooldown |}}}| | ||
+ | ;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}} | ||
+ | :{{ticks|{{{cooldown|}}}}}}} | ||
+ | |||
+ | {{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }} | ||
+ | ;Range | ||
+ | :{{{range|}}} tile(s)}} | ||
+ | |||
+ | {{#if: {{{minrange|}}}| | ||
+ | ;Minimum Range | ||
+ | :{{{minrange|}}} tiles}} | ||
+ | |||
+ | {{#if: {{{accuracy|}}}| | ||
+ | ;Accuracy | ||
+ | :{{{accuracy|}}}}} | ||
+ | |||
+ | {{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }} | ||
+ | {{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }} | ||
+ | {{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }} | ||
+ | {{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }} | ||
+ | ;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}} | ||
+ | :{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}% | ||
+ | }} | ||
+ | }} | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | {{#if: {{{accuracyAvg|}}}| | ||
+ | ;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}} | ||
+ | :{{{accuracyAvg|}}}%}} | ||
+ | |||
+ | {{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }} | ||
+ | ;Velocity | ||
+ | :{{{velocity|}}} (m/s)}} | ||
+ | |||
+ | {{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }} | ||
+ | ;Burst Count | ||
+ | :{{{burst|}}} (per burst)}} | ||
+ | |||
+ | {{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }} | ||
+ | ;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}} | ||
+ | :{{ticks|{{{burstTicks|}}}}}}} | ||
+ | |||
+ | {{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }} | ||
+ | ;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}} | ||
+ | :{{{missRadius|}}} tile(s)}} | ||
+ | |||
+ | {{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }} | ||
+ | ;Blast Radius | ||
+ | :{{{blastRadius|}}}}} | ||
+ | |||
+ | {{#if: {{{DPS|}}}| | ||
+ | ;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}} | ||
+ | :{{ #expr: ((( {{{damage|}}} * {{#if: {{{burst|}}}|{{{burst|}}}|1}} ) / (( {{#if: {{{cooldown|}}}|{{{cooldown|}}}|1}} + {{#if: {{{warmup|}}}|{{{warmup|}}}|0}} + ( {{#if: {{{burstTicks|}}}|{{{burstTicks|}}}|1}} * ( {{#if: {{{burst|}}}|{{{burst|}}}|1}} - 1 ))) / 60))) round2 }} {{#if: {{{accuracyTouch|}}}| {{#if: {{{accuracyShort|}}}| {{#if: {{{accuracyMedium|}}}| {{#if: {{{accuracyLong|}}}|({{ #expr: ((( {{{damage|}}} * {{#if: {{{burst|}}}|{{{burst|}}}|1}} ) / (( {{#if: {{{cooldown|}}}|{{{cooldown|}}}|1}} + {{#if: {{{warmup|}}}|{{{warmup|}}}|0}} + ( {{#if: {{{burstTicks|}}}|{{{burstTicks|}}}|1}} * ( {{#if: {{{burst|}}}|{{{burst|}}}|1}} - 1 ))) / 60)) * ({{{accuracyAvg|}}} / 100)) round2 }})}}}}}}}} | ||
+ | {{#set:Maximum DPS={{ #expr: ((( {{{damage|}}} * {{#if: {{{burst|}}}|{{{burst|}}}|1}} ) / (( {{#if: {{{cooldown|}}}|{{{cooldown|}}}|1}} + {{#if: {{{warmup|}}}|{{{warmup|}}}|0}} + ( {{#if: {{{burstTicks|}}}|{{{burstTicks|}}}|1}} * ( {{#if: {{{burst|}}}|{{{burst|}}}|1}} - 1 ))) / 60))) round2 }}}} | ||
+ | {{#set:Avarage DPS={{#if: {{{accuracyTouch|}}}| {{#if: {{{accuracyShort|}}}| {{#if: {{{accuracyMedium|}}}| {{#if: {{{accuracyLong|}}}|{{#expr: ((( {{{damage|}}} * {{#if: {{{burst|}}}|{{{burst|}}}|1}} ) / (( {{#if: {{{cooldown|}}}|{{{cooldown|}}}|1}} + {{#if: {{{warmup|}}}|{{{warmup|}}}|0}} + ( {{#if: {{{burstTicks|}}}|{{{burstTicks|}}}|1}} * ( {{#if: {{{burst|}}}|{{{burst|}}}|1}} - 1 ))) / 60)) * ({{{accuracyAvg|}}} / 100)) round 2 }}}}}}}}}}}} | ||
+ | }} | ||
+ | |||
+ | {{#if: {{{stoppingPower|}}}|{{#set: Stopping power = {{{stoppingPower|}}} }} | ||
+ | ;{{H:title|link=no|Ability of a weapon to 'stagger' targets, slowing them down for a short while. Larger values allow the weapon to stagger targets with bigger body sizes.|Stopping power}} | ||
+ | :{{{stoppingPower|}}}}} | ||
+ | |||
+ | {{#if: {{{buy|}}}| | ||
+ | ;Buy | ||
+ | :{{{buy|}}}}} | ||
+ | |||
+ | {{#if:{{{sell|}}}| | ||
+ | {{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |{{#set:Sell = {{{sell|}}} }} }}}} | ||
+ | ;Sell | ||
+ | :{{{sell|}}}}} | ||
+ | |||
+ | <!-- Work to make should be specified in *ticks*, like in the game files. This has been inconsistent in the past --> | ||
+ | {{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }} | ||
+ | ;Work To Make | ||
+ | :{{ticks|{{{work to make|}}}}} | ||
+ | }} | ||
+ | |||
+ | {{#if: {{{resources to make|}}}| | ||
+ | ;Resources to make | ||
+ | :{{{resources to make|}}} | ||
+ | }} | ||
+ | |||
+ | {{#if: {{{deconstruct yield|}}}| | ||
+ | ;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}} | ||
+ | :{{{deconstruct yield|}}} | ||
+ | }} | ||
− | {{ | + | <br style="clear: both; height: 0px;" /> |
− | [[Category: | + | </dl></div></div> |
− | + | </includeonly> | |
− | + | <noinclude> | |
+ | {{documentation}} | ||
+ | [[Category:Template Infobox]] | ||
+ | </noinclude> |
Revision as of 14:59, 8 May 2020
Description
This template is placed at the top of sandbox pages. By using a template, it becomes easy to fix if users make a mistake while playing in the sandbox.
Syntax
Type {{sandbox}}
at the top of a sandbox.
Output
Sandbox
The above documentation is transcluded from Template:Sandbox/doc. (edit | history) Editors can experiment in this template's sandbox (edit | diff) and testcases (create) pages. Please add categories to the /doc subpage. Subpages of this template. |