Difference between revisions of "Template:Habitats"

From RimWorld Wiki
Jump to navigation Jump to search
(made "or" an option)
(For your consideration. Significantly lighter, and only needs 1 new line per new biome (if more are ever added). Feel free to revert.)
Line 2: Line 2:
 
Returns a nicely-formatted list of all the biomes an animal can appear in.
 
Returns a nicely-formatted list of all the biomes an animal can appear in.
  
For example, if used on [[Timber wolf]], the result is: {{Habitats|Timber wolf}}
+
For example, if used on [[Timber wolf]], the result is: {{Habitats|Timber wolf}}.
  
You can also make it produce "or" rather than "and" by doing<code><nowiki>{{Habitats|Timber wolf|or}}:</nowiki></code>{{Habitats|Timber wolf|or}}
+
You can also make it produce "or" rather than "and" by doing<code><nowiki>{{Habitats|Timber wolf|or}}:</nowiki></code>{{Habitats|Timber wolf|or}}.
</noinclude><includeonly>{{#vardefine:total_habitats|{{#expr:{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Temperate Forest}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Temperate Swamp}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tropical Rainforest}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tropical Swamp}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Arid Shrubland}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Desert}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Extreme Desert}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Boreal Forest}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Cold Bog}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tundra}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Ice Sheet}}|1|0}} + {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Sea Ice}}|1|0}}}}}}
+
</noinclude><includeonly>
{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Temperate Forest}}|[[temperate forest]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Temperate Swamp}}|[[temperate swamp]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tropical Rainforest}}|[[tropical rainforest]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tropical Swamp}}|[[tropical swamp]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Arid Shrubland}}|[[arid shrubland]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Desert}}|[[desert]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Extreme Desert}}|[[extreme desert]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Boreal Forest}}|[[boreal forest]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Cold Bog}}|[[cold bog]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tundra}}|[[tundra]]{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}}}}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Ice Sheet}}|[[ice sheet]]s{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}} }}}}}}{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Sea Ice}}|[[sea ice]]{{#vardefine:total_habitats|{{#expr:{{#var:total_habitats}} - 1}}}}{{#ifexpr:{{#var:total_habitats}} > 1|, |{{#ifexpr:{{#var:total_habitats}} > 0|, {{{2|and}}}}}}}}}</includeonly>
+
{{#vardefine: habitatString | {{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Temperate Forest}}|[[temperate forest]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Temperate Swamp}}|[[temperate swamp]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tropical Rainforest}}|[[tropical rainforest]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tropical Swamp}}|[[tropical swamp]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Arid Shrubland}}|[[arid shrubland]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Desert}}|[[desert]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Extreme Desert}}|[[extreme desert]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Boreal Forest}}|[[boreal forest]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Cold Bog}}|[[cold bog]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Tundra}}|[[tundra]],&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Ice Sheet}}|[[ice sheet]]s,&#32;}}<!--
 +
-->{{#if:{{Q|{{{1|{{PAGENAME}}}}}|Lives In Sea Ice}}|[[sea ice]],&#32;}}}}<!--
 +
Extract the last term, if its the only term then print it, else replace the last term in the whole string with the last term with the and/or in front of it, then trim the extraneous comma and space off the final string
 +
-->{{#ifeq: {{#vardefineecho: lastTerm | {{#explode:{{#var: habitatString}}|,&#32;|-2}} }},&#32; | {{#var: habitatString}}|{{#var: lastTerm}}|{{#sub:{{#replace:{{#var: habitatString}}|{{#var: lastTerm}}|&#32;{{#if:{{{2|}}}|or|and}} {{#var: lastTerm}}}}||-6}} }}</includeonly>

Revision as of 00:56, 5 October 2021

Returns a nicely-formatted list of all the biomes an animal can appear in.

For example, if used on Timber wolf, the result is: temperate forests, temperate swamps, boreal forests, cold bogs, and tundra.

You can also make it produce "or" rather than "and" by doing{{Habitats|Timber wolf|or}}: temperate forests, temperate swamps, boreal forests, cold bogs, or tundra.