<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rimworldwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dr.+Strangelove</id>
	<title>RimWorld Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://rimworldwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dr.+Strangelove"/>
	<link rel="alternate" type="text/html" href="https://rimworldwiki.com/wiki/Special:Contributions/Dr._Strangelove"/>
	<updated>2026-04-28T11:33:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.8</generator>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86173</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86173"/>
		<updated>2021-05-18T13:09:52Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the uploaded and parsed game files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of named parameters. All of the parameters that look like &amp;lt;code&amp;gt;...=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (this is true for all templates).&lt;br /&gt;
&lt;br /&gt;
=== query ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use:&lt;br /&gt;
: If only the &amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt; parameter is set, it will show the whole Def in the log.&lt;br /&gt;
: If simple values are queried it will return them.&lt;br /&gt;
: If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
Named parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: This parameter identifies the Def so it is mandatory. It can take two forms, if both are defined then &amp;lt;code&amp;gt;defName&amp;lt;/code&amp;gt; takes preference.&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case insensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[sibling=...]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
::: Allows querying for something if we know its sibling's value (works only for values at the moment).&lt;br /&gt;
&lt;br /&gt;
Anonymous parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|...|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: Anonymous paramaters before the last one (&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;) are here to help uniquely identify it. If the &amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt; is already unique within a Def tree, then these additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|tag|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: The final anonymous parameter defines what is to be queried.&lt;br /&gt;
&lt;br /&gt;
=== count ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters are the same as for &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;. It's basically a wrapped up query that behaves a bit differently.&lt;br /&gt;
&lt;br /&gt;
The difference is in how it handles lists. If a list is queried, unlike &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;, it will return the length of the list.&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data is in the log.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86172</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86172"/>
		<updated>2021-05-18T12:42:18Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the uploaded and parsed game files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of named parameters. All of the parameters that look like &amp;lt;code&amp;gt;...=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (this is true for all templates).&lt;br /&gt;
&lt;br /&gt;
=== query ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use:&lt;br /&gt;
: If only the &amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt; parameter is set, it will show the whole Def in the log.&lt;br /&gt;
: If simple values are queried it will return them.&lt;br /&gt;
: If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
Named parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: This parameter identifies the Def so it is mandatory. It can take two forms, if both are defined then &amp;lt;code&amp;gt;defName&amp;lt;/code&amp;gt; takes preference.&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case insensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[sibling=...]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
::: Allows querying for something if we know its sibling's value (works only for values at the moment).&lt;br /&gt;
&lt;br /&gt;
Anonymous parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|...|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: Anonymous paramaters before the last one (&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;) are here to help uniquely identify it. If the &amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt; is already unique within a Def tree, then these additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|tag|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: The final anonymous parameter defines what is to be queried.&lt;br /&gt;
&lt;br /&gt;
=== count ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters are the same as for &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;. It's basically a wrapped up query that behaves a bit differently.&lt;br /&gt;
&lt;br /&gt;
The difference is in how it handles lists. If a list is queried, unlike &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;, it will return the length of the list.&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data is in the log.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86171</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86171"/>
		<updated>2021-05-18T09:56:55Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  return string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
  &lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  logDevStore = {}&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logDevStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logDevStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logDevStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value, frame)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  assert(frame, &amp;quot;vardefine: 'frame' missing&amp;quot;)&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, runMe)&lt;br /&gt;
  if not runMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
  for fName,func in pairs(vFuncs) do&lt;br /&gt;
    if func(def) then&lt;br /&gt;
      log(string.format('@%ims, expandDef: %s expanded with %s', runTime(), def.defName, fName))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID, expandVF)&lt;br /&gt;
  if expandVF ~= false then expandVF = true end&lt;br /&gt;
&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, expandVF)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl, frame)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v, frame) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v, frame)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if type(wiki.queried) == 'table' then -- WARNING: checks a variable that is set in wiki.query (ugly)&lt;br /&gt;
    return Util.table.count(wiki.queried)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local processedDef = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      processedDef = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , processedDef)&lt;br /&gt;
      if not processedDef then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        processedDef = Search.meta.parent.table[arg]&lt;br /&gt;
        if not processedDef then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      processedDef = Search.find(arg, processedDef)&lt;br /&gt;
      if not processedDef then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(processedDef) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return processedDef&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(processedDef) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(processedDef, frame.args[argLen])&lt;br /&gt;
    definePrefixed(processedDef, frame)&lt;br /&gt;
    wiki.queried = processedDef -- WARNING: sets a variable that is used in another function wiki.count (ugly)&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(processedDef)))&lt;br /&gt;
  return processedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------&lt;br /&gt;
-- simulate MediaWiki environment --&lt;br /&gt;
------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args['label'] = 'ancient cryptosleep casket'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  wiki.query(simframe)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logDevStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------&lt;br /&gt;
-- return --&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86170</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86170"/>
		<updated>2021-05-18T09:54:23Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the uploaded and parsed game files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of named parameters. All of the parameters that look like &amp;lt;code&amp;gt;...=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (this is true for all templates).&lt;br /&gt;
&lt;br /&gt;
=== query ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use:&lt;br /&gt;
: If only the &amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt; parameter is set, it will show the whole Def in the log.&lt;br /&gt;
: If simple values are queried it will return them.&lt;br /&gt;
: If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
Named parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: This parameter identifies the Def so it is mandatory. It can take two forms:&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case insensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[sibling=...]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
::: Allows querying for something if we know its sibling's value (works only for values at the moment).&lt;br /&gt;
&lt;br /&gt;
Anonymous parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|...|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: Anonymous paramaters before the last one (&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;) are here to help uniquely identify it. If the &amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt; is already unique within a Def tree, then these additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|tag|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: The final anonymous parameter defines what is to be queried.&lt;br /&gt;
&lt;br /&gt;
=== count ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters are the same as for &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;. It's basically a wrapped up query that behaves a bit differently.&lt;br /&gt;
&lt;br /&gt;
The difference is in how it handles lists. If a list is queried, unlike &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;, it will return the length of the list.&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data is in the log.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86169</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86169"/>
		<updated>2021-05-18T09:50:07Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  return string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
  &lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  logDevStore = {}&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logDevStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logDevStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logDevStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value, frame)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  assert(frame, &amp;quot;vardefine: 'frame' missing&amp;quot;)&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, runMe)&lt;br /&gt;
  if not runMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
  for fName,func in pairs(vFuncs) do&lt;br /&gt;
    if func(def) then&lt;br /&gt;
      log(string.format('@%ims, expandDef: %s expanded with %s', runTime(), def.defName, fName))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID, expandVF)&lt;br /&gt;
  if expandVF ~= false then expandVF = true end&lt;br /&gt;
&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, expandVF)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl, frame)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v, frame) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if type(wiki.queried) == 'table' then -- WARNING: checks a variable that is set in wiki.query (ugly)&lt;br /&gt;
    return Util.table.count(wiki.queried)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local processedDef = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      processedDef = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , processedDef)&lt;br /&gt;
      if not processedDef then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        processedDef = Search.meta.parent.table[arg]&lt;br /&gt;
        if not processedDef then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      processedDef = Search.find(arg, processedDef)&lt;br /&gt;
      if not processedDef then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(processedDef) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return processedDef&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(processedDef) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(processedDef, frame.args[argLen])&lt;br /&gt;
    definePrefixed(processedDef, frame)&lt;br /&gt;
    wiki.queried = processedDef -- WARNING: sets a variable that is used in another function wiki.count (ugly)&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(processedDef)))&lt;br /&gt;
  return processedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------&lt;br /&gt;
-- simulate MediaWiki environment --&lt;br /&gt;
------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args['label'] = 'ancient cryptosleep casket'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  wiki.query(simframe)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logDevStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------&lt;br /&gt;
-- return --&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86168</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86168"/>
		<updated>2021-05-18T09:35:47Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
  &lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  logDevStore = {}&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logDevStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logDevStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logDevStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value, frame)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  assert(frame, &amp;quot;vardefine: 'frame' missing&amp;quot;)&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, runMe)&lt;br /&gt;
  if not runMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
  for fName,func in pairs(vFuncs) do&lt;br /&gt;
    if func(def) then&lt;br /&gt;
      log(string.format('@%ims, expandDef: %s expanded with %s', runTime(), def.defName, fName))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID, expandVF)&lt;br /&gt;
  if expandVF ~= false then expandVF = true end&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, expandVF)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl, frame)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v, frame) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if type(query) == 'table' then&lt;br /&gt;
    return Util.table.count(query)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune, frame)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args['label'] = 'ancient cryptosleep casket'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  wiki.query(simframe)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logDevStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86167</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86167"/>
		<updated>2021-05-18T09:33:39Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
  &lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  logDevStore = {}&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logDevStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logDevStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logDevStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value, frame)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  assert(frame, &amp;quot;vardefine: 'frame' missing&amp;quot;)&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, runMe)&lt;br /&gt;
  if not runMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
  for fName,func in pairs(vFuncs) do&lt;br /&gt;
    if func(def) then&lt;br /&gt;
      log(string.format('@%ims, expandDef: %s expanded with %s', runTime(), def.defName, fName))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID, expandVF)&lt;br /&gt;
  if expandVF ~= false then expandVF = true end&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, expandVF)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl, frame)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v, frame) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or '') == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if type(query) == 'table' then&lt;br /&gt;
    return Util.table.count(query)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune, frame)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
-- {{User:Dr. Strangelove/Template:Infobox/sandbox|{{{movespeed|}}}|statBases|MoveSpeed|title=Some movin|SMWP=Move Speed Base}}&lt;br /&gt;
-- {{#invoke:Test|print|{{SUBPAGENAME}}}}&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(pFrame.args) do&lt;br /&gt;
    if i &amp;gt; 1 then&lt;br /&gt;
      table.insert(qFrame.args, v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
  mw.logObject(pFrame.args.SMWP, 'pFrame.args.SMWP')&lt;br /&gt;
  mw.logObject(ibPropValue, 'ibPropValue')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP and ibPropValue then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP .. '=' .. ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args['label'] = 'ancient cryptosleep casket'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  wiki.query(simframe)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logDevStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86166</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86166"/>
		<updated>2021-05-18T09:31:24Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the uploaded and parsed game files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of named parameters. All of the parameters that look like &amp;lt;code&amp;gt;...=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (this is true for all templates).&lt;br /&gt;
&lt;br /&gt;
=== query ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use:&lt;br /&gt;
: If simple values are queried it will return them.&lt;br /&gt;
: If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
Named parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: This parameter identifies the Def so it is mandatory. It can take two forms:&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case insensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[sibling=...]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
::: Allows querying for something if we know its sibling's value (works only for values at the moment).&lt;br /&gt;
&lt;br /&gt;
Anonymous parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|...|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: Anonymous paramaters before the last one (&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;) are here to help uniquely identify it. If the &amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt; is already unique within a Def tree, then these additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|tag|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: The final anonymous parameter defines what is to be queried.&lt;br /&gt;
&lt;br /&gt;
=== count ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters are the same as for &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;. It's basically a wrapped up query that behaves a bit differently.&lt;br /&gt;
&lt;br /&gt;
The difference is in how it handles lists. If a list is queried, unlike &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;, it will return the length of the list.&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data is in the log.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86165</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86165"/>
		<updated>2021-05-18T09:29:33Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the uploaded and parsed game files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of named parameters. All of the parameters that look like &amp;lt;code&amp;gt;...=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (this is true for all templates).&lt;br /&gt;
&lt;br /&gt;
=== query ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use:&lt;br /&gt;
: If simple values are queried it will return them.&lt;br /&gt;
: If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
Named parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: This parameter identifies the Def so it is mandatory. It can take two forms:&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
::: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case insensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[sibling=...]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
::: Allows querying for something if we know its sibling's value (works only for values at the moment).&lt;br /&gt;
&lt;br /&gt;
Anonymous parameters:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|...|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: Anonymous paramaters before the last one (&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;) are here to help uniquely identify it. If the &amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt; is already unique within a Def tree, then these additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;[|tag|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
:: The final anonymous parameter defines what is to be queried.&lt;br /&gt;
&lt;br /&gt;
=== count ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters are the same as for &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;. It's basically a wrapped up query that behaves a bit differently.&lt;br /&gt;
&lt;br /&gt;
The difference is in how it handles lists. If a list is queried, unlike &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;, it will return the length of the list.&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data is in the log.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86164</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86164"/>
		<updated>2021-05-18T09:13:49Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the uploaded and parsed game files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of named parameters. All of the parameters that look like &amp;lt;code&amp;gt;...=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (this is true for all templates).&lt;br /&gt;
&lt;br /&gt;
=== query ===&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use:&lt;br /&gt;
: If simple values are queried it will return them.&lt;br /&gt;
: If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;[|...|][|tag|][|sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Named parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This parameter identifies the Def so it is mandatory. It can take two forms:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(case insensitive)''&amp;lt;/small&amp;gt; should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[sibling=...]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
: Allows querying for something if we know its sibling's value (works only for values at the moment).&lt;br /&gt;
&lt;br /&gt;
'''Anonymous parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[|...|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
: Anonymous paramaters before the last one (&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;) are here to help uniquely identify it. If the &amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt; is already unique within a Def tree, then these additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[|tag|]&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;''(optional)''&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;''(case sensitive)''&amp;lt;/small&amp;gt;&lt;br /&gt;
: The final anonymous parameter defines what is to be queried.&lt;br /&gt;
&lt;br /&gt;
=== count ===&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;|[...|...|...]|[tag]|[sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters are the same as for &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;. It's basically a wrapped up query that behaves a bit differently.&lt;br /&gt;
&lt;br /&gt;
The difference is in how it handles lists. If a list is queried, unlike &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;, it will return the length of the list.&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{#invoke:Test|query|label=desert}}&lt;br /&gt;
''(check the log)''&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86151</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86151"/>
		<updated>2021-05-18T00:01:43Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}}{{#vardefine:Name|arctic wolf}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Apparel ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Pawns ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}&lt;br /&gt;
| {{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
;Move Speed&lt;br /&gt;
:{{{movespeed|}}}&lt;br /&gt;
|;Move Speed&lt;br /&gt;
:{{#invoke:Test|query|label={{#var:Name}}|MoveSpeed}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}&lt;br /&gt;
|;Diet&lt;br /&gt;
:{{#invoke:Test|query|label={{#var:Name}}|foodTypeExpanded}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Furniture ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Plants ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Weapons ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;}}&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86150</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86150"/>
		<updated>2021-05-18T00:01:14Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}}{{#vardefine:Name|arctic wolf}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Apparel ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Pawns ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}&lt;br /&gt;
| {{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
;Move Speed&lt;br /&gt;
:{{{movespeed|}}}&lt;br /&gt;
|;Move Speed&lt;br /&gt;
:{{#invoke:Test|query|label={{#var:Name}}|MoveSpeed}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
|;Diet&lt;br /&gt;
:{{#invoke:Test|query|label={{#var:Name}}|foodTypeExpanded}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Furniture ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Plants ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Weapons ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;}}&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86149</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86149"/>
		<updated>2021-05-18T00:00:46Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}}{{#vardefine:Name|arctic wolf}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Apparel ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Pawns ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}&lt;br /&gt;
| {{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
;Move Speed&lt;br /&gt;
:{{{movespeed|}}}&lt;br /&gt;
|;Move Speed&lt;br /&gt;
:{{#invoke:Test|query|label={{#var:Name}}|MoveSpeed}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
|;Diet&lt;br /&gt;
:{{#invoke:Test|label={{#var:Name}}|foodTypeExpanded}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Furniture ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Plants ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Weapons ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;}}&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86148</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86148"/>
		<updated>2021-05-17T22:11:45Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}}{{#vardefine:Name|arctic wolf}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Apparel ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Pawns ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}&lt;br /&gt;
| {{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
;Move Speed&lt;br /&gt;
:{{{movespeed|}}}&lt;br /&gt;
|;Move Speed&lt;br /&gt;
:{{#invoke:Test|query|label={{#var:Name}}|MoveSpeed}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Furniture ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Plants ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Weapons ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;}}&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86147</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86147"/>
		<updated>2021-05-17T22:10:49Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}}{{#vardefine:Name|arctic wolf}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Apparel ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Pawns ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}&lt;br /&gt;
| {{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
;Move Speed&lt;br /&gt;
:{{{movespeed|}}}&lt;br /&gt;
| ;Move Speed&lt;br /&gt;
  :{{#invoke:Test|query|label={{#var:Name}}|MoveSpeed}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Furniture ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Plants ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Weapons ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;}}&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86146</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86146"/>
		<updated>2021-05-17T22:09:33Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}}{{#vardefine:Name|arctic wolf}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Apparel ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Pawns ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}&lt;br /&gt;
| {{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
  ;Move Speed&lt;br /&gt;
  :{{{movespeed|}}}&lt;br /&gt;
| ;Move Speed&lt;br /&gt;
  :{{#invoke:Test|query|label={{#var:Name}}|MoveSpeed}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Furniture ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Plants ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Weapons ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;}}&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86145</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86145"/>
		<updated>2021-05-17T22:05:33Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}}{{#vardefine:Name|arctic wolf}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Apparel ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Pawns ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}&lt;br /&gt;
| {{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
  ;Move Speed&lt;br /&gt;
  :{{{movespeed|}}}&lt;br /&gt;
| ;Move Speed&lt;br /&gt;
  :{{#invoke:Test|query|{{#var:Name}}|MoveSpeed}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Furniture ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Plants ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Weapons ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;}}&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86144</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86144"/>
		<updated>2021-05-17T22:04:25Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}}{{#vardefine:Name|arctic wolf}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Apparel ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Pawns ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}&lt;br /&gt;
| {{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
  ;Move Speed&lt;br /&gt;
  :{{{movespeed|}}}&lt;br /&gt;
| ;Move Speed&lt;br /&gt;
  :{{#invoke:Test|query|{{#var:Name}}|MoveSpeed}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Buildings ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Furniture ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--=================================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Plants ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--==============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&amp;lt;!--========================== Weapons ============================--&amp;gt;&lt;br /&gt;
&amp;lt;!--===============================================================--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;}}&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Test/Alpha&amp;diff=86143</id>
		<title>User:Dr. Strangelove/Test/Alpha</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Test/Alpha&amp;diff=86143"/>
		<updated>2021-05-17T21:39:14Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{User:Dr. Strangelove/Template:Infobox|animal|&lt;br /&gt;
|page verified for version = A14C&lt;br /&gt;
|name = Arctic wolf&lt;br /&gt;
|image = Arctic wolf.png&lt;br /&gt;
|description = &amp;quot;An arctic variant of the old Earth wolf. As pack hunters, wolves have a complex social life and are fiercely intelligent.&amp;quot;&lt;br /&gt;
|type = Animals&lt;br /&gt;
|type2 = Wild&lt;br /&gt;
|attack1cool = 100&lt;br /&gt;
|attack1dmg = 9&lt;br /&gt;
|attack1part = front left paw&lt;br /&gt;
|attack1stun = 20&lt;br /&gt;
|attack1type = scratch&lt;br /&gt;
|attack2cool = 100&lt;br /&gt;
|attack2dmg = 9&lt;br /&gt;
|attack2part = front right paw&lt;br /&gt;
|attack2stun = 20&lt;br /&gt;
|attack2type = scratch&lt;br /&gt;
|attack3cool = 130&lt;br /&gt;
|attack3dmg = 11&lt;br /&gt;
|attack3part = teeth&lt;br /&gt;
|attack3stun = 20&lt;br /&gt;
|attack3type = bite&lt;br /&gt;
|bodysize = 0.85&lt;br /&gt;
|diet = carnivorous&lt;br /&gt;
|gestation = 26&lt;br /&gt;
|healthscale = 0.99&lt;br /&gt;
|hungerrate = 0.18&lt;br /&gt;
|leathername = wolfskin&lt;br /&gt;
|leatheryield = 29&lt;br /&gt;
|lifespan = 12&lt;br /&gt;
|livesin_borealforest = true&lt;br /&gt;
|livesin_icesheet = true&lt;br /&gt;
|livesin_seaice = true&lt;br /&gt;
|livesin_tundra = true&lt;br /&gt;
|manhunter = 0.1&lt;br /&gt;
|manhuntertame = 0.1&lt;br /&gt;
|marketvalue = 350&lt;br /&gt;
|maturityage = 0.45&lt;br /&gt;
|meatname = wolfmeat&lt;br /&gt;
|movespeed = 5.00&lt;br /&gt;
|offspring = 1-3&lt;br /&gt;
|predator = true&lt;br /&gt;
|trainable = advanced&lt;br /&gt;
|wildness = 0.85&lt;br /&gt;
|is exotic species = true&lt;br /&gt;
|massadult = 59.5&lt;br /&gt;
|nuzzleMtb = 120&lt;br /&gt;
|petness = 0.1&lt;br /&gt;
|min comfortable temperature = -55&lt;br /&gt;
|max comfortable temperature = 40&lt;br /&gt;
}}&lt;br /&gt;
The '''arctic wolf''' is a pack hunter but it's often seen alone or in pairs in-game. They are almost identical to [[timber wolf|timber wolves]], differing only in habitat, resistance to cold temperatures and coloration. &lt;br /&gt;
&lt;br /&gt;
==Diet==&lt;br /&gt;
Arctic wolves feed on raw meat, corpses, meals, any processed foods, and kibble. When especially hungry, they will frequently attempt to attack, kill, and eat pets or even colonists for food.&lt;br /&gt;
&lt;br /&gt;
==Habitat==&lt;br /&gt;
They live in [[boreal forest]]s, [[tundra]]s, [[ice sheet]]s and [[sea ice]].&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
{{TrainingTable}}&lt;br /&gt;
&lt;br /&gt;
== Health ==&lt;br /&gt;
{{Animal Health Table}}&lt;br /&gt;
&lt;br /&gt;
{{nav|animal}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Animals]]&lt;br /&gt;
[[Category:Wild animal]]&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Test/Alpha&amp;diff=86142</id>
		<title>User:Dr. Strangelove/Test/Alpha</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Test/Alpha&amp;diff=86142"/>
		<updated>2021-05-17T21:38:38Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox main|animal|&lt;br /&gt;
|page verified for version = A14C&lt;br /&gt;
|name = Arctic wolf&lt;br /&gt;
|image = Arctic wolf.png&lt;br /&gt;
|description = &amp;quot;An arctic variant of the old Earth wolf. As pack hunters, wolves have a complex social life and are fiercely intelligent.&amp;quot;&lt;br /&gt;
|type = Animals&lt;br /&gt;
|type2 = Wild&lt;br /&gt;
|attack1cool = 100&lt;br /&gt;
|attack1dmg = 9&lt;br /&gt;
|attack1part = front left paw&lt;br /&gt;
|attack1stun = 20&lt;br /&gt;
|attack1type = scratch&lt;br /&gt;
|attack2cool = 100&lt;br /&gt;
|attack2dmg = 9&lt;br /&gt;
|attack2part = front right paw&lt;br /&gt;
|attack2stun = 20&lt;br /&gt;
|attack2type = scratch&lt;br /&gt;
|attack3cool = 130&lt;br /&gt;
|attack3dmg = 11&lt;br /&gt;
|attack3part = teeth&lt;br /&gt;
|attack3stun = 20&lt;br /&gt;
|attack3type = bite&lt;br /&gt;
|bodysize = 0.85&lt;br /&gt;
|diet = carnivorous&lt;br /&gt;
|gestation = 26&lt;br /&gt;
|healthscale = 0.99&lt;br /&gt;
|hungerrate = 0.18&lt;br /&gt;
|leathername = wolfskin&lt;br /&gt;
|leatheryield = 29&lt;br /&gt;
|lifespan = 12&lt;br /&gt;
|livesin_borealforest = true&lt;br /&gt;
|livesin_icesheet = true&lt;br /&gt;
|livesin_seaice = true&lt;br /&gt;
|livesin_tundra = true&lt;br /&gt;
|manhunter = 0.1&lt;br /&gt;
|manhuntertame = 0.1&lt;br /&gt;
|marketvalue = 350&lt;br /&gt;
|maturityage = 0.45&lt;br /&gt;
|meatname = wolfmeat&lt;br /&gt;
|movespeed = 5.00&lt;br /&gt;
|offspring = 1-3&lt;br /&gt;
|predator = true&lt;br /&gt;
|trainable = advanced&lt;br /&gt;
|wildness = 0.85&lt;br /&gt;
|is exotic species = true&lt;br /&gt;
|massadult = 59.5&lt;br /&gt;
|nuzzleMtb = 120&lt;br /&gt;
|petness = 0.1&lt;br /&gt;
|min comfortable temperature = -55&lt;br /&gt;
|max comfortable temperature = 40&lt;br /&gt;
}}&lt;br /&gt;
The '''arctic wolf''' is a pack hunter but it's often seen alone or in pairs in-game. They are almost identical to [[timber wolf|timber wolves]], differing only in habitat, resistance to cold temperatures and coloration. &lt;br /&gt;
&lt;br /&gt;
==Diet==&lt;br /&gt;
Arctic wolves feed on raw meat, corpses, meals, any processed foods, and kibble. When especially hungry, they will frequently attempt to attack, kill, and eat pets or even colonists for food.&lt;br /&gt;
&lt;br /&gt;
==Habitat==&lt;br /&gt;
They live in [[boreal forest]]s, [[tundra]]s, [[ice sheet]]s and [[sea ice]].&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
{{TrainingTable}}&lt;br /&gt;
&lt;br /&gt;
== Health ==&lt;br /&gt;
{{Animal Health Table}}&lt;br /&gt;
&lt;br /&gt;
{{nav|animal}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Animals]]&lt;br /&gt;
[[Category:Wild animal]]&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86141</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86141"/>
		<updated>2021-05-17T21:37:17Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---Building---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{recreation power|}}} {{{recreation type|}}}|{{#set:Recreation Power= {{{recreation power|}}} }}{{#set:Recreation Type= {{{recreation type|}}} }}&lt;br /&gt;
;Recreation&lt;br /&gt;
:{{#if:{{{recreation power|}}}|{{#expr:{{{recreation power|}}}*100}}%}} {{{recreation type|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Apparel--&amp;gt;&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- All pawns (animals, humanoids, mechanoids) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Animal Health ---&amp;gt;&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{movespeed|}}}|{{#set:Move Speed Base = {{{movespeed|}}} }}&lt;br /&gt;
;Move Speed&lt;br /&gt;
:{{{movespeed|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Buildings--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Furniture--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Plants--&amp;gt;&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Weapons--&amp;gt;&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{production facility 1|}}} {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{production facility 1|}}}|{{#set:Production Facility 1= {{{production facility 1|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 2|}}}|{{#set:Production Facility 2= {{{production facility 2|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 3|}}}|{{#set:Production Facility 3= {{{production facility 3|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 4|}}}|{{#set:Production Facility 4= {{{production facility 4|}}} }}}}&lt;br /&gt;
{{#if: {{{production facility 1|}}}|&lt;br /&gt;
;Crafted at&lt;br /&gt;
:{{#if:{{{production facility 1|}}}|{{Icon Small|{{{production facility 1|}}}|{{#ifeq:{{lc:{{{production facility 1|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 2|}}}|/{{Icon Small|{{{production facility 2|}}}|{{#ifeq:{{lc:{{{production facility 2|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 3|}}}|/{{Icon Small|{{{production facility 3|}}}|{{#ifeq:{{lc:{{{production facility 3|}}}}}|crafting spot|16|32}}}}}}{{#if:{{{production facility 4|}}}|/{{Icon Small|{{{production facility 4|}}}|{{#ifeq:{{lc:{{{production facility 4|}}}}}|crafting spot|16|32}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |{{#set:  sowTag = {{{sowTag|}}}}}&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |{{#set:  sowTags = {{{sowTags|}}}}}&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86140</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86140"/>
		<updated>2021-05-17T21:35:54Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
'''Parser is done (needs a few more finishing touches) so any data that is missing can be easily added.'''&lt;br /&gt;
&lt;br /&gt;
'''At the moment the dataset has: ThingDefs, BiomeDefs, ResearchProjectDefs and DamageDefs.'''&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the parsed game definition files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of parameters. All of the parameters that begin with &amp;lt;code&amp;gt;somelabel=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (as is the general case with named parameters for templates).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== query ===&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use. If simple values are queried it will return the string. If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; for all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;|[...|...|...]|[tag]|[sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This parameter identifies the Def so it is mandatory. It can take two forms:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;defName&amp;gt; ''(case sensitive)'' should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;label&amp;gt; ''(case insensitive)'' should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[...|...|...]&amp;lt;/code&amp;gt; &lt;br /&gt;
: Additional arguments are here to help uniquely identify the final argument [tag]. If the wanted tag is already unique within a Def tree, then additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;&lt;br /&gt;
: The final parameter is just a normal numbered parameter but because it is the last one, it is mentioned here so it can be referred to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[sibling=&amp;lt;value&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
: Allows querying for something if we know its sibling's value (works only for values at the moment). It does not have to be at the end because named arguments do not depend on the order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== count ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;|[...|...|...]|[tag]|[sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments are the same as for [[#query]]. It's basically a wrapped up query.&lt;br /&gt;
&lt;br /&gt;
Because count (if not 0) means that a table was counted - it will also be displayed in the log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== getDefName ===&lt;br /&gt;
&lt;br /&gt;
Used to retrieve a Def's defName if we know the label. Most of the wiki pages are labels of Defs so this can come in handy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|getDefName|&amp;lt;label&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Def's label (not case sensitive)&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Get defName if we know label ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|getDefName|feNNec fOx}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|getDefName|feNNec fOx}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{#invoke:Test|query|label=desert}}&lt;br /&gt;
''(check the log)''&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove&amp;diff=86139</id>
		<title>User:Dr. Strangelove</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove&amp;diff=86139"/>
		<updated>2021-05-17T21:28:00Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Special:Prefixindex/User:Dr. Strangelove/|(my subpages)]]&lt;br /&gt;
[[Special:Prefixindex/Module:Test/|(subpages of Module:Test)]]&lt;br /&gt;
&lt;br /&gt;
== Workbench ==&lt;br /&gt;
=== Dev pages ===&lt;br /&gt;
* [[Module:Test]] ([[Module:Test/doc|doc]])&lt;br /&gt;
* [[Module:Test/sandbox]]&lt;br /&gt;
&lt;br /&gt;
* [[Module:Test/data]] ([[Module:Test/data/doc|doc]])&lt;br /&gt;
* [[Module:Test/data/virtual]] ([[Module:Test/data/virtual|doc]])&lt;br /&gt;
&lt;br /&gt;
* [[Module:Test/lib/search]]&lt;br /&gt;
* [[Module:Test/lib/util]]&lt;br /&gt;
&lt;br /&gt;
* [[User:Dr._Strangelove/ReadModule]]&lt;br /&gt;
* [[User:Dr._Strangelove/Test/Alpha]]&lt;br /&gt;
* [[User:Dr._Strangelove/Test/Alpha/sandbox]]&lt;br /&gt;
* [[User:Dr._Strangelove/Template:Infobox]] ([[Template:Infobox main]])&lt;br /&gt;
* [[User:Dr._Strangelove/Template:Infobox/sandbox]]&lt;br /&gt;
&lt;br /&gt;
=== DefInfo ===&lt;br /&gt;
* [[Module:DefInfo]] ([[Module:DefInfo/doc|doc]])&lt;br /&gt;
* [[Module:DefInfo/Data]]&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
[[File:MediaWikiRefCard.jpg|thumb|Formatting cheat sheet]]&lt;br /&gt;
&lt;br /&gt;
[[Special:Version]] - MediaWiki Version &amp;amp; Installed Addons&lt;br /&gt;
&lt;br /&gt;
[https://www.mediawiki.org/wiki/Help:Formatting Help:Formatting]&lt;br /&gt;
&lt;br /&gt;
=== [https://rimworldwiki.com/wiki/Special:AllPages?namespace=14 Categories] ===&lt;br /&gt;
* [[Category_Portal|Category Portal]]&lt;br /&gt;
&lt;br /&gt;
=== [https://rimworldwiki.com/wiki/Special:AllPages?namespace=102 Properties] ===&lt;br /&gt;
&lt;br /&gt;
=== [https://rimworldwiki.com/wiki/Special:AllPages?from=&amp;amp;to=&amp;amp;namespace=10 Templates]  ===&lt;br /&gt;
([https://rimworldwiki.com/wiki/Category:Templates categorized]) ([https://rimworldwiki.com/wiki/Category:Template_documentation doc])&lt;br /&gt;
&lt;br /&gt;
* [[RimWorld_Wiki:Templates]]&lt;br /&gt;
* [https://rimworldwiki.com/wiki/Category:Notice_templates Category:Notice_templates]&lt;br /&gt;
* maintenance&lt;br /&gt;
** [[Template:Delete]]&lt;br /&gt;
&lt;br /&gt;
=== Searching ===&lt;br /&gt;
* [[Special:Search]]&lt;br /&gt;
* [[Special:SearchByProperty]]&lt;br /&gt;
* [[Special:Ask]] - Semantic search&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove&amp;diff=86138</id>
		<title>User:Dr. Strangelove</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove&amp;diff=86138"/>
		<updated>2021-05-17T21:25:20Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Special:Prefixindex/User:Dr. Strangelove/|(my subpages)]]&lt;br /&gt;
[[Special:Prefixindex/Module:Test/|(subpages of Module:Test)]]&lt;br /&gt;
&lt;br /&gt;
== Workbench ==&lt;br /&gt;
=== Dev pages ===&lt;br /&gt;
* [[Module:Test]] ([[Module:Test/doc|doc]])&lt;br /&gt;
* [[Module:Test/sandbox]]&lt;br /&gt;
&lt;br /&gt;
* [[Module:Test/data]] ([[Module:Test/data/doc|doc]])&lt;br /&gt;
* [[Module:Test/data/virtual]] ([[Module:Test/data/virtual|doc]])&lt;br /&gt;
&lt;br /&gt;
* [[Module:Test/lib/search]]&lt;br /&gt;
* [[Module:Test/lib/util]]&lt;br /&gt;
&lt;br /&gt;
* [[User:Dr._Strangelove/ReadModule]]&lt;br /&gt;
* [[User:Dr._Strangelove/Test/Alpha]]&lt;br /&gt;
* [[User:Dr._Strangelove/Test/Alpha/sandbox]]&lt;br /&gt;
* [[User:Dr._Strangelove/Template:Infobox]] ([[Template:Infobox main]])&lt;br /&gt;
* [[User:Dr._Strangelove/Template:Infobox/sandbox]]&lt;br /&gt;
&lt;br /&gt;
=== DefInfo ===&lt;br /&gt;
* [[Module:DefInfo]] ([[Module:DefInfo/doc|doc]])&lt;br /&gt;
* [[Module:DefInfo/Data]]&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
[[File:MediaWikiRefCard.jpg|thumb|Formatting cheat sheet]]&lt;br /&gt;
&lt;br /&gt;
[[Special:Version]] - MediaWiki Version &amp;amp; Installed Addons&lt;br /&gt;
&lt;br /&gt;
[https://www.mediawiki.org/wiki/Help:Formatting Help:Formatting]&lt;br /&gt;
&lt;br /&gt;
=== [https://rimworldwiki.com/wiki/Special:AllPages?namespace=14 Categories] ===&lt;br /&gt;
* [[Category_Portal|Category Portal]]&lt;br /&gt;
&lt;br /&gt;
=== [https://rimworldwiki.com/wiki/Special:AllPages?namespace=102 Properties] ===&lt;br /&gt;
&lt;br /&gt;
=== [https://rimworldwiki.com/wiki/Special:AllPages?from=&amp;amp;to=&amp;amp;namespace=10 Templates]  ===&lt;br /&gt;
([https://rimworldwiki.com/wiki/Category:Templates categorized]) ([https://rimworldwiki.com/wiki/Category:Template_documentation doc])&lt;br /&gt;
&lt;br /&gt;
* [[RimWorld_Wiki:Templates]]&lt;br /&gt;
* [https://rimworldwiki.com/wiki/Category:Notice_templates Category:Notice_templates]&lt;br /&gt;
* maintenance&lt;br /&gt;
** [[Template:Delete]]&lt;br /&gt;
** [[Template:Safe_to_delete]]&lt;br /&gt;
** [[Template:SpeedyDelete]]&lt;br /&gt;
&lt;br /&gt;
=== Searching ===&lt;br /&gt;
* [[Special:Search]]&lt;br /&gt;
* [[Special:SearchByProperty]]&lt;br /&gt;
* [[Special:Ask]] - Semantic search&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/data/virtual&amp;diff=86137</id>
		<title>Module:Test/data/virtual</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/data/virtual&amp;diff=86137"/>
		<updated>2021-05-17T21:07:03Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;----------&lt;br /&gt;
-- diet --&lt;br /&gt;
----------&lt;br /&gt;
local VF = {}&lt;br /&gt;
VF.diet = {}&lt;br /&gt;
VF.diet.foodType = {&lt;br /&gt;
  None = true,&lt;br /&gt;
  VegetableOrFruit = true,&lt;br /&gt;
  Meat = true,&lt;br /&gt;
  Fluid = true,&lt;br /&gt;
  Corpse = true,&lt;br /&gt;
  Seed = true,&lt;br /&gt;
  AnimalProduct = true,&lt;br /&gt;
  Plant = true,&lt;br /&gt;
  Tree = true,&lt;br /&gt;
  Meal = true,&lt;br /&gt;
  Processed = true,&lt;br /&gt;
  Liquor = true,&lt;br /&gt;
  Kibble = true,&lt;br /&gt;
  VegetarianAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  VegetarianRoughAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Plant = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  CarnivoreAnimal = {&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Corpse = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  CarnivoreAnimalStrict = {&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Corpse = true&lt;br /&gt;
  },&lt;br /&gt;
  OmnivoreAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Corpse = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  OmnivoreRoughAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Corpse = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Plant = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  DendrovoreAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Tree = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  OvivoreAnimal = {&lt;br /&gt;
    AnimalProduct = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  OmnivoreHuman = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Fluid = true,&lt;br /&gt;
    Corpse = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    AnimalProduct = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--~ function VF.diet.resolveDietCategory(foodType)&lt;br /&gt;
--~   if util.diet[foodType].None then&lt;br /&gt;
--~       return &amp;quot;Never eats&amp;quot;&lt;br /&gt;
--~   end&lt;br /&gt;
--~   if util.diet[foodType].Tree then&lt;br /&gt;
--~       return &amp;quot;Dendrovorous&amp;quot;&lt;br /&gt;
--~   end&lt;br /&gt;
--~   if util.diet[foodType].Meat then&lt;br /&gt;
--~       if util.diet[foodType].VegetableOrFruit or util.diet[foodType].Plant then&lt;br /&gt;
--~           return &amp;quot;Omnivorous&amp;quot;&lt;br /&gt;
--~       end&lt;br /&gt;
--~       return &amp;quot;Carnivorous&amp;quot;&lt;br /&gt;
--~   end&lt;br /&gt;
--~   if util.diet[foodType].AnimalProduct then&lt;br /&gt;
--~       return &amp;quot;Ovivorous&amp;quot;&lt;br /&gt;
--~   end&lt;br /&gt;
--~   return &amp;quot;Herbivorous&amp;quot;&lt;br /&gt;
--~ end&lt;br /&gt;
&lt;br /&gt;
--~ ------------------------&lt;br /&gt;
--~ -- module entry point --&lt;br /&gt;
--~ ------------------------&lt;br /&gt;
--~ function VF.expand(mergedDef)&lt;br /&gt;
--~   for k,func in pairs(VF.vfields) do&lt;br /&gt;
--~     func(mergedDef)&lt;br /&gt;
--~   end&lt;br /&gt;
--~ end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
&lt;br /&gt;
  --------------&lt;br /&gt;
  -- tool DPS --&lt;br /&gt;
  --------------&lt;br /&gt;
  toolDPS = function (def)&lt;br /&gt;
    if not def.tools then return nil end&lt;br /&gt;
&lt;br /&gt;
    for _,tool in ipairs(def.tools) do&lt;br /&gt;
      if tool.power and tool.cooldownTime then&lt;br /&gt;
        local dps = tool.power / tool.cooldownTime&lt;br /&gt;
        tool.DPS = Util.round(dps, 3)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return true&lt;br /&gt;
  end,&lt;br /&gt;
&lt;br /&gt;
  ---------------&lt;br /&gt;
  -- verb DPS --&lt;br /&gt;
  ---------------&lt;br /&gt;
  verbDPS = function (def)&lt;br /&gt;
    local filters = {&lt;br /&gt;
      {'verbs', 1, 'defaultProjectile'},&lt;br /&gt;
      {'verbs', 1, 'warmupTime'},&lt;br /&gt;
      {'statBases', 'RangedWeapon_Cooldown'}&lt;br /&gt;
    }&lt;br /&gt;
    if not Util.table.checkMultiple(def, filters) then return nil end&lt;br /&gt;
&lt;br /&gt;
    local projectileDef&lt;br /&gt;
    local damageDef&lt;br /&gt;
&lt;br /&gt;
    local damage&lt;br /&gt;
    local warmup&lt;br /&gt;
    local cooldown&lt;br /&gt;
    local burst&lt;br /&gt;
    local burstPause&lt;br /&gt;
    local dps&lt;br /&gt;
&lt;br /&gt;
    projectileDef = DefInfo.getDef(def.verbs[1].defaultProjectile, false)&lt;br /&gt;
    if not projectileDef then return nil end&lt;br /&gt;
&lt;br /&gt;
    -- def.verbs[1].defaultProjectile = projectile&lt;br /&gt;
&lt;br /&gt;
    if Util.table.check(projectileDef, 'projectile', 'damageAmountBase') then&lt;br /&gt;
      damage = projectileDef.projectile.damageAmountBase&lt;br /&gt;
    elseif Util.table.check(projectileDef, 'projectile', 'damageDef') and projectileDef.projectile.damageDef == 'Bomb' then&lt;br /&gt;
      damageDef = DefInfo.getDef(projectileDef.projectile.damageDef, false)&lt;br /&gt;
      if damageDef then&lt;br /&gt;
        damage = damageDef.defaultDamage&lt;br /&gt;
        -- def.verbs[1].defaultProjectile.projectile.damageDef = damageDef&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    warmup     = def.verbs[1].warmupTime&lt;br /&gt;
    burst      = def.verbs[1].burstShotCount&lt;br /&gt;
    burstPause = def.verbs[1].ticksBetweenBurstShots&lt;br /&gt;
    cooldown   = def.statBases.RangedWeapon_Cooldown&lt;br /&gt;
&lt;br /&gt;
    if burst and pause then&lt;br /&gt;
      dps = damage * burst / (warmup + cooldown + (burst-1)*(burstPause/60))&lt;br /&gt;
    else&lt;br /&gt;
      dps = damage / (warmup + cooldown)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if dps then&lt;br /&gt;
      def.verbs[1].DPS = Util.round(dps, 3)&lt;br /&gt;
      return true&lt;br /&gt;
    end&lt;br /&gt;
  end,&lt;br /&gt;
&lt;br /&gt;
  -------------------------------------&lt;br /&gt;
  -- naturally lives in these biomes --&lt;br /&gt;
  -------------------------------------&lt;br /&gt;
  pawnLivesIn = function (def)&lt;br /&gt;
    if def.thingClass ~= 'Pawn' then return nil end&lt;br /&gt;
&lt;br /&gt;
    local biomes = {}&lt;br /&gt;
&lt;br /&gt;
    for biomeK,biome in pairs(Data) do&lt;br /&gt;
      if Util.table.check(biome, 'wildAnimals') then&lt;br /&gt;
        for animalK,animal in pairs(biome.wildAnimals) do&lt;br /&gt;
          if animalK == def.defName then&lt;br /&gt;
            table.insert(biomes, biome.defName)&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #biomes &amp;gt; 0 then&lt;br /&gt;
      def._.livesIn = biomes&lt;br /&gt;
      return true&lt;br /&gt;
    end&lt;br /&gt;
  end,&lt;br /&gt;
&lt;br /&gt;
  -----------------------&lt;br /&gt;
  -- foodType expanded --&lt;br /&gt;
  -----------------------&lt;br /&gt;
  foodTypeExpanded = function (def)&lt;br /&gt;
    if def.thingClass ~= 'Pawn' then return nil end&lt;br /&gt;
    -- if not Util.table.check(def, 'race', 'foodType') then return nil end&lt;br /&gt;
&lt;br /&gt;
    local diet = def.race.foodType&lt;br /&gt;
    local flags = {}&lt;br /&gt;
    local expandedFoodTypes = {}&lt;br /&gt;
&lt;br /&gt;
    for _,foodType in ipairs(diet) do&lt;br /&gt;
      if type(VF.diet.foodType[foodType]) == &amp;quot;boolean&amp;quot; then&lt;br /&gt;
        flags[foodType] = true&lt;br /&gt;
      else&lt;br /&gt;
        for foodItem,_ in pairs(VF.diet.foodType[foodType]) do&lt;br /&gt;
          flags[foodItem] = true&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for flag,_ in pairs(flags) do&lt;br /&gt;
      table.insert(expandedFoodTypes, flag)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #expandedFoodTypes &amp;gt; 0 then&lt;br /&gt;
      def.race.foodTypeExpanded = expandedFoodTypes&lt;br /&gt;
      return true&lt;br /&gt;
    end&lt;br /&gt;
  end,&lt;br /&gt;
&lt;br /&gt;
  -----------------&lt;br /&gt;
  -- MarketValue -- works only for items (not stuffables)&lt;br /&gt;
  -----------------&lt;br /&gt;
  MarketValue = function (def)&lt;br /&gt;
    if Util.table.check(def, 'statBases', 'MarketValue') then return nil end&lt;br /&gt;
    if not Util.table.check(def, 'statBases', 'WorkToMake') then return nil end&lt;br /&gt;
    if not Util.table.check(def, 'costList') then return nil end&lt;br /&gt;
&lt;br /&gt;
    local workRate = 0.0036&lt;br /&gt;
    local workCost&lt;br /&gt;
    local ingredientCost = 0&lt;br /&gt;
&lt;br /&gt;
    if def.costList then&lt;br /&gt;
      for k,v in pairs(def.costList) do&lt;br /&gt;
        ingredientCost = ingredientCost + Data['ThingDef:'..k].statBases.MarketValue * v&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    workCost = def.statBases.WorkToMake * workRate&lt;br /&gt;
&lt;br /&gt;
    def.statBases.MarketValue = ingredientCost + workCost&lt;br /&gt;
&lt;br /&gt;
    return true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86136</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86136"/>
		<updated>2021-05-17T21:04:11Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  &lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
  &lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
else&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, runMe)&lt;br /&gt;
  if not runMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
  for fName,func in pairs(vFuncs) do&lt;br /&gt;
    if func(def) then&lt;br /&gt;
      log(string.format('@%ims, expandDef: %s expanded with %s', runTime(), def.defName, fName))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID, expandVF)&lt;br /&gt;
  if expandVF ~= false then expandVF = true end&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, expandVF)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
-- {{User:Dr. Strangelove/Template:Infobox/sandbox|{{{movespeed|}}}|statBases|MoveSpeed|title=Some movin|SMWP=Move Speed Base}}&lt;br /&gt;
-- {{#invoke:Test|print|{{SUBPAGENAME}}}}&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(pFrame.args) do&lt;br /&gt;
    if i &amp;gt; 1 then&lt;br /&gt;
      table.insert(qFrame.args, v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
  mw.logObject(pFrame.args.SMWP, 'pFrame.args.SMWP')&lt;br /&gt;
  mw.logObject(ibPropValue, 'ibPropValue')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP and ibPropValue then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP .. '=' .. ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args['label'] = 'ancient cryptosleep casket'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  wiki.query(simframe)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86135</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86135"/>
		<updated>2021-05-17T21:02:57Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
'''Parser is done (needs a few more finishing touches) so any data that is missing can be easily added.'''&lt;br /&gt;
&lt;br /&gt;
'''At the moment the dataset has: ThingDefs, BiomeDefs, ResearchProjectDefs and DamageDefs.'''&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the parsed game definition files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of parameters. All of the parameters that begin with &amp;lt;code&amp;gt;somelabel=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (as is the general case with parameters for templates).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== query ===&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use. If simple values are queried it will return the string. If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; for all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;|[...|...|...]|[tag]|[sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This parameter identifies the Def so it is mandatory. It can take two forms:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;defName&amp;gt; ''(case sensitive)'' should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;label&amp;gt; ''(case insensitive)'' should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[...|...|...]&amp;lt;/code&amp;gt; &lt;br /&gt;
: Additional arguments are here to help uniquely identify the final argument [tag]. If the wanted tag is already unique within a Def tree, then additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;&lt;br /&gt;
: The final parameter is just a normal numbered parameter but because it is the last one, it is mentioned here so it can be referred to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[sibling=&amp;lt;value&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
: Allows querying for something if we know its sibling's value (works only for values at the moment). It does not have to be at the end because named arguments do not depend on the order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== count ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;|[...|...|...]|[tag]|[sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments are the same as for [[#query]]. It's basically a wrapped up query.&lt;br /&gt;
&lt;br /&gt;
Because count (if not 0) means that a table was counted - it will also be displayed in the log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== getDefName ===&lt;br /&gt;
&lt;br /&gt;
Used to retrieve a Def's defName if we know the label. Most of the wiki pages are labels of Defs so this can come in handy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|getDefName|&amp;lt;label&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Def's label (not case sensitive)&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Get defName if we know label ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|getDefName|feNNec fOx}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|getDefName|feNNec fOx}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{#invoke:Test|query|label=desert}}&lt;br /&gt;
''(check the log)''&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86134</id>
		<title>Module:Test/doc</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/doc&amp;diff=86134"/>
		<updated>2021-05-17T21:01:36Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
'''This module is used for development.'''&lt;br /&gt;
&lt;br /&gt;
'''Parser is done (needs a few more finishing touches) so any data that is missing can be easily added.'''&lt;br /&gt;
&lt;br /&gt;
'''At the moment the dataset has: ThingDefs, BiomeDefs, ResearchProjectDefs and DamageDefs.'''&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This module is used to query information from the parsed (and filtered) game's definition files.&lt;br /&gt;
&lt;br /&gt;
Its main purpose is to populate the infoboxes.&lt;br /&gt;
&lt;br /&gt;
Values retrieved are those defined in the files so they may need to be processed to be user friendly. For example &amp;quot;foodType&amp;quot; that holds the value &amp;quot;OmnivoreRoughAnimal&amp;quot; is not entirely helpful. (TODO: This could be automatically converted to something more recognizable.)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A note on the order of parameters. All of the parameters that begin with &amp;lt;code&amp;gt;somelabel=...&amp;lt;/code&amp;gt; are called named parameters and their order is not important (as is the general case with parameters for templates).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== query ===&lt;br /&gt;
&lt;br /&gt;
The work-horse. Output varies based on use. If simple values are queried it will return the string. If lists are queried it will return nothing but call &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#vardefine}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; for all the simple values within it. What got defined can be seen in the page's log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|&amp;lt;def ID&amp;gt;|[...|...|...]|[tag]|[sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;def ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This parameter identifies the Def so it is mandatory. It can take two forms:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;defName=&amp;lt;defName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;defName&amp;gt; ''(case sensitive)'' should be replaced with the actual defName of a Def.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;label=&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: &amp;lt;label&amp;gt; ''(case insensitive)'' should be replaced with the actual label of a Def.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[...|...|...]&amp;lt;/code&amp;gt; &lt;br /&gt;
: Additional arguments are here to help uniquely identify the final argument [tag]. If the wanted tag is already unique within a Def tree, then additional parameters are not needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[tag]&amp;lt;/code&amp;gt;&lt;br /&gt;
: The final parameter is just a normal numbered parameter but because it is the last one, it is mentioned here so it can be referred to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[sibling=&amp;lt;value&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
: Allows querying for something if we know its sibling's value (works only for values at the moment). It does not have to be at the end because named arguments do not depend on the order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== count ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|count|&amp;lt;def ID&amp;gt;|[...|...|...]|[tag]|[sibling=...]}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments are the same as for [[#query]]. It's basically a wrapped up query.&lt;br /&gt;
&lt;br /&gt;
Because count (if not 0) means that a table was counted - it will also be displayed in the log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
=== getDefName ===&lt;br /&gt;
&lt;br /&gt;
Used to retrieve a Def's defName if we know the label. Most of the wiki pages are labels of Defs so this can come in handy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|getDefName|&amp;lt;label&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Def's label (not case sensitive)&lt;br /&gt;
&lt;br /&gt;
== How-to ==&lt;br /&gt;
&lt;br /&gt;
=== Get defName if we know label ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|getDefName|feNNec fOx}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|getDefName|feNNec fOx}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Take a look at a Def ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=desert}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{#invoke:Test|query|label=desert}}&lt;br /&gt;
''(check the log)''&lt;br /&gt;
&lt;br /&gt;
=== Retrieve a simple value ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Caribou|description}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dealing with lists ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|defName=Mech_Scyther|tools}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a list is retrieved there will be no output but the log will contain a list of defined variables.&lt;br /&gt;
&lt;br /&gt;
For convenience the list is reprinted here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tools_1_linkedBodyPartsGroup = LeftBlade&lt;br /&gt;
tools_1_cooldownTime = 2&lt;br /&gt;
tools_1_label = left blade&lt;br /&gt;
tools_1_DPS = 10&lt;br /&gt;
tools_1_power = 20&lt;br /&gt;
tools_1_capacities_1 = Cut&lt;br /&gt;
tools_1_capacities_2 = Stab&lt;br /&gt;
tools_2_linkedBodyPartsGroup = RightBlade&lt;br /&gt;
tools_2_cooldownTime = 2&lt;br /&gt;
tools_2_label = right blade&lt;br /&gt;
tools_2_DPS = 10&lt;br /&gt;
tools_2_power = 20&lt;br /&gt;
tools_2_capacities_1 = Cut&lt;br /&gt;
tools_2_capacities_2 = Stab&lt;br /&gt;
tools_3_linkedBodyPartsGroup = HeadAttackTool&lt;br /&gt;
tools_3_capacities_1 = Blunt&lt;br /&gt;
tools_3_label = head&lt;br /&gt;
tools_3_DPS = 4.5&lt;br /&gt;
tools_3_chanceFactor = 0.2&lt;br /&gt;
tools_3_power = 9&lt;br /&gt;
tools_3_cooldownTime = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above can be accessed with the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#var:tools_1_DPS}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''DPS'' is not a normal member of this table but has been added with Lua. Let's call it a virtual field.&lt;br /&gt;
&lt;br /&gt;
=== Retrieve something if a sibling is known ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{{#invoke:Test|query|label=guinea pig|minAge|sibling=AnimalAdult}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/data/virtual&amp;diff=86133</id>
		<title>Module:Test/data/virtual</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/data/virtual&amp;diff=86133"/>
		<updated>2021-05-17T21:00:27Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;----------&lt;br /&gt;
-- diet --&lt;br /&gt;
----------&lt;br /&gt;
local VF = {}&lt;br /&gt;
VF.diet = {}&lt;br /&gt;
VF.diet.foodType = {&lt;br /&gt;
  None = true,&lt;br /&gt;
  VegetableOrFruit = true,&lt;br /&gt;
  Meat = true,&lt;br /&gt;
  Fluid = true,&lt;br /&gt;
  Corpse = true,&lt;br /&gt;
  Seed = true,&lt;br /&gt;
  AnimalProduct = true,&lt;br /&gt;
  Plant = true,&lt;br /&gt;
  Tree = true,&lt;br /&gt;
  Meal = true,&lt;br /&gt;
  Processed = true,&lt;br /&gt;
  Liquor = true,&lt;br /&gt;
  Kibble = true,&lt;br /&gt;
  VegetarianAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  VegetarianRoughAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Plant = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  CarnivoreAnimal = {&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Corpse = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  CarnivoreAnimalStrict = {&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Corpse = true&lt;br /&gt;
  },&lt;br /&gt;
  OmnivoreAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Corpse = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  OmnivoreRoughAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Corpse = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Plant = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  DendrovoreAnimal = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    Tree = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  OvivoreAnimal = {&lt;br /&gt;
    AnimalProduct = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  },&lt;br /&gt;
  OmnivoreHuman = {&lt;br /&gt;
    VegetableOrFruit = true,&lt;br /&gt;
    Meat = true,&lt;br /&gt;
    Fluid = true,&lt;br /&gt;
    Corpse = true,&lt;br /&gt;
    Seed = true,&lt;br /&gt;
    AnimalProduct = true,&lt;br /&gt;
    Meal = true,&lt;br /&gt;
    Processed = true,&lt;br /&gt;
    Liquor = true,&lt;br /&gt;
    Kibble = true&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--~ function VF.diet.resolveDietCategory(foodType)&lt;br /&gt;
--~   if util.diet[foodType].None then&lt;br /&gt;
--~       return &amp;quot;Never eats&amp;quot;&lt;br /&gt;
--~   end&lt;br /&gt;
--~   if util.diet[foodType].Tree then&lt;br /&gt;
--~       return &amp;quot;Dendrovorous&amp;quot;&lt;br /&gt;
--~   end&lt;br /&gt;
--~   if util.diet[foodType].Meat then&lt;br /&gt;
--~       if util.diet[foodType].VegetableOrFruit or util.diet[foodType].Plant then&lt;br /&gt;
--~           return &amp;quot;Omnivorous&amp;quot;&lt;br /&gt;
--~       end&lt;br /&gt;
--~       return &amp;quot;Carnivorous&amp;quot;&lt;br /&gt;
--~   end&lt;br /&gt;
--~   if util.diet[foodType].AnimalProduct then&lt;br /&gt;
--~       return &amp;quot;Ovivorous&amp;quot;&lt;br /&gt;
--~   end&lt;br /&gt;
--~   return &amp;quot;Herbivorous&amp;quot;&lt;br /&gt;
--~ end&lt;br /&gt;
&lt;br /&gt;
--~ ------------------------&lt;br /&gt;
--~ -- module entry point --&lt;br /&gt;
--~ ------------------------&lt;br /&gt;
--~ function VF.expand(mergedDef)&lt;br /&gt;
--~   for k,func in pairs(VF.vfields) do&lt;br /&gt;
--~     func(mergedDef)&lt;br /&gt;
--~   end&lt;br /&gt;
--~ end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
&lt;br /&gt;
  --------------&lt;br /&gt;
  -- tool DPS --&lt;br /&gt;
  --------------&lt;br /&gt;
  toolDPS = function (def)&lt;br /&gt;
    if not def.tools then return nil end&lt;br /&gt;
&lt;br /&gt;
    for _,tool in ipairs(def.tools) do&lt;br /&gt;
      if tool.power and tool.cooldownTime then&lt;br /&gt;
        local dps = tool.power / tool.cooldownTime&lt;br /&gt;
        tool.DPS = Util.round(dps, 3)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return true&lt;br /&gt;
  end,&lt;br /&gt;
&lt;br /&gt;
  ---------------&lt;br /&gt;
  -- verb DPS --&lt;br /&gt;
  ---------------&lt;br /&gt;
  verbDPS = function (def)&lt;br /&gt;
    local filters = {&lt;br /&gt;
      {'verbs', 1, 'defaultProjectile'},&lt;br /&gt;
      {'verbs', 1, 'warmupTime'},&lt;br /&gt;
      {'statBases', 'RangedWeapon_Cooldown'}&lt;br /&gt;
    }&lt;br /&gt;
    if not Util.table.checkMultiple(def, filters) then return nil end&lt;br /&gt;
&lt;br /&gt;
    local projectileDef&lt;br /&gt;
    local damageDef&lt;br /&gt;
&lt;br /&gt;
    local damage&lt;br /&gt;
    local warmup&lt;br /&gt;
    local cooldown&lt;br /&gt;
    local burst&lt;br /&gt;
    local burstPause&lt;br /&gt;
    local dps&lt;br /&gt;
&lt;br /&gt;
    projectileDef = DefInfo.getDef(def.verbs[1].defaultProjectile, false)&lt;br /&gt;
    if not projectileDef then return nil end&lt;br /&gt;
&lt;br /&gt;
    -- def.verbs[1].defaultProjectile = projectile&lt;br /&gt;
&lt;br /&gt;
    if Util.table.check(projectileDef, 'projectile', 'damageAmountBase') then&lt;br /&gt;
      damage = projectileDef.projectile.damageAmountBase&lt;br /&gt;
    elseif Util.table.check(projectileDef, 'projectile', 'damageDef') and projectileDef.projectile.damageDef == 'Bomb' then&lt;br /&gt;
      damageDef = DefInfo.getDef(projectileDef.projectile.damageDef, false)&lt;br /&gt;
      if damageDef then&lt;br /&gt;
        damage = damageDef.defaultDamage&lt;br /&gt;
        -- def.verbs[1].defaultProjectile.projectile.damageDef = damageDef&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    warmup     = def.verbs[1].warmupTime&lt;br /&gt;
    burst      = def.verbs[1].burstShotCount&lt;br /&gt;
    burstPause = def.verbs[1].ticksBetweenBurstShots&lt;br /&gt;
    cooldown   = def.statBases.RangedWeapon_Cooldown&lt;br /&gt;
&lt;br /&gt;
    if burst and pause then&lt;br /&gt;
      dps = damage * burst / (warmup + cooldown + (burst-1)*(burstPause/60))&lt;br /&gt;
    else&lt;br /&gt;
      dps = damage / (warmup + cooldown)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if dps then&lt;br /&gt;
      def.verbs[1].DPS = Util.round(dps, 3)&lt;br /&gt;
      return true&lt;br /&gt;
    end&lt;br /&gt;
  end,&lt;br /&gt;
&lt;br /&gt;
  -------------------------------------&lt;br /&gt;
  -- naturally lives in these biomes --&lt;br /&gt;
  -------------------------------------&lt;br /&gt;
  pawnLivesIn = function (def)&lt;br /&gt;
    if def.thingClass ~= 'Pawn' then return nil end&lt;br /&gt;
&lt;br /&gt;
    local biomes = {}&lt;br /&gt;
&lt;br /&gt;
    for biomeK,biome in pairs(Data) do&lt;br /&gt;
      if Util.table.check(biome, 'wildAnimals') then&lt;br /&gt;
        for animalK,animal in pairs(biome.wildAnimals) do&lt;br /&gt;
          if animalK == def.defName then&lt;br /&gt;
            table.insert(biomes, biome.defName)&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #biomes &amp;gt; 0 then&lt;br /&gt;
      def._.livesIn = biomes&lt;br /&gt;
      return true&lt;br /&gt;
    end&lt;br /&gt;
  end,&lt;br /&gt;
&lt;br /&gt;
  -----------------------&lt;br /&gt;
  -- foodType expanded --&lt;br /&gt;
  -----------------------&lt;br /&gt;
  foodTypeExpanded = function (def)&lt;br /&gt;
    if def.thingClass ~= 'Pawn' then return nil end&lt;br /&gt;
    -- if not Util.table.check(def, 'race', 'foodType') then return nil end&lt;br /&gt;
&lt;br /&gt;
    local diet = def.race.foodType&lt;br /&gt;
    local flags = {}&lt;br /&gt;
    local expandedFoodTypes = {}&lt;br /&gt;
&lt;br /&gt;
    for _,foodType in ipairs(diet) do&lt;br /&gt;
      if type(VF.diet.foodType[foodType]) == &amp;quot;boolean&amp;quot; then&lt;br /&gt;
        flags[foodType] = true&lt;br /&gt;
      else&lt;br /&gt;
        for foodItem,_ in pairs(VF.diet.foodType[foodType]) do&lt;br /&gt;
          flags[foodItem] = true&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for flag,_ in pairs(flags) do&lt;br /&gt;
      table.insert(expandedFoodTypes, flag)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #expandedFoodTypes &amp;gt; 0 then&lt;br /&gt;
      def.race.foodTypeExpanded = expandedFoodTypes&lt;br /&gt;
      return true&lt;br /&gt;
    end&lt;br /&gt;
  end,&lt;br /&gt;
&lt;br /&gt;
  -----------------&lt;br /&gt;
  -- MarketValue -- works only for items (not stuffables)&lt;br /&gt;
  -----------------&lt;br /&gt;
  MarketValue = function (def)&lt;br /&gt;
    if def.statBases.MarketValue then return nil end&lt;br /&gt;
    if not def.statBases.WorkToMake then return nil end&lt;br /&gt;
    if not def.costList then return nil end&lt;br /&gt;
&lt;br /&gt;
    local workRate = 0.0036&lt;br /&gt;
    local workCost&lt;br /&gt;
    local ingredientCost = 0&lt;br /&gt;
&lt;br /&gt;
    if def.costList then&lt;br /&gt;
      for k,v in pairs(def.costList) do&lt;br /&gt;
        ingredientCost = ingredientCost + Data['ThingDef:'..k].statBases.MarketValue * v&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    workCost = def.statBases.WorkToMake * workRate&lt;br /&gt;
&lt;br /&gt;
    def.statBases.MarketValue = ingredientCost + workCost&lt;br /&gt;
&lt;br /&gt;
    return true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/lib/util&amp;diff=86132</id>
		<title>Module:Test/lib/util</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/lib/util&amp;diff=86132"/>
		<updated>2021-05-17T21:00:01Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;if mw then&lt;br /&gt;
  Search = Search or require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
else&lt;br /&gt;
  Search = Search or require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local util = {}&lt;br /&gt;
&lt;br /&gt;
------------------------&lt;br /&gt;
-- table manipulation --&lt;br /&gt;
------------------------&lt;br /&gt;
&lt;br /&gt;
util.table = {}&lt;br /&gt;
&lt;br /&gt;
function util.table.check(tbl, ...)&lt;br /&gt;
  local inside = tbl&lt;br /&gt;
  for i,v in pairs(arg) do&lt;br /&gt;
    if i ~= 'n' then&lt;br /&gt;
      inside = Search.find(v, inside or {})&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  return inside and true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.table.checkMultiple(tbl, filters)&lt;br /&gt;
  local checked = false&lt;br /&gt;
  for _,filter in ipairs(filters) do&lt;br /&gt;
    if util.table.check(tbl, unpack(filter)) then&lt;br /&gt;
      checked = true&lt;br /&gt;
    else&lt;br /&gt;
      return false&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  return checked&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.table.isIn(var, table)&lt;br /&gt;
  assert(type(var) == 'nil', &amp;quot;isIn: Empty argument #1&amp;quot;)&lt;br /&gt;
  assert(type(table) == 'table', string.format(&amp;quot;isIn: Bad argument #2 ('table' expected, got '%s'&amp;quot;, type(table)))&lt;br /&gt;
  for k,v in pairs(table) do&lt;br /&gt;
    if var == k or var == v then&lt;br /&gt;
      return true&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- procedure&lt;br /&gt;
function util.table.overwrite(dest, source, ignoreKeys)&lt;br /&gt;
  ignoreKeys = ignoreKeys or {}&lt;br /&gt;
&lt;br /&gt;
  for sK,sV in pairs(source) do&lt;br /&gt;
    local ignore = false&lt;br /&gt;
&lt;br /&gt;
    for _,ignoredK in ipairs(ignoreKeys) do&lt;br /&gt;
      if sK == ignoredK then&lt;br /&gt;
        ignore = true&lt;br /&gt;
        break&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not ignore then&lt;br /&gt;
      if type(sV) == &amp;quot;table&amp;quot; then&lt;br /&gt;
        if type(dest[sK]) == &amp;quot;table&amp;quot; then&lt;br /&gt;
          util.table.overwrite(dest[sK], sV, ignoreKeys)&lt;br /&gt;
        else&lt;br /&gt;
          dest[sK] = {}&lt;br /&gt;
          util.table.overwrite(dest[sK], sV, ignoreKeys)&lt;br /&gt;
        end&lt;br /&gt;
      else&lt;br /&gt;
        dest[sK] = sV&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--ref: https://gist.github.com/balaam/3122129&lt;br /&gt;
function util.table.reverse(tbl)&lt;br /&gt;
  local reversed_table = {}&lt;br /&gt;
  local length = #tbl&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(tbl) do&lt;br /&gt;
      reversed_table[length + 1 - i] = v&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(k) ~= 'number' then&lt;br /&gt;
      reversed_table[k] = v&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return reversed_table&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--ref: http://lua-users.org/wiki/CopyTable&lt;br /&gt;
function util.table.shallowcopy(original_table)&lt;br /&gt;
  local orig_type = type(original_table)&lt;br /&gt;
  local copy&lt;br /&gt;
  if orig_type == 'table' then&lt;br /&gt;
      copy = {}&lt;br /&gt;
      for orig_key, orig_value in pairs(original_table) do&lt;br /&gt;
          copy[orig_key] = orig_value&lt;br /&gt;
      end&lt;br /&gt;
  else -- number, string, boolean, etc&lt;br /&gt;
      copy = original_table&lt;br /&gt;
  end&lt;br /&gt;
  return copy&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- this is not as strict as # so might bug out in extreme situations&lt;br /&gt;
-- needs love&lt;br /&gt;
function util.table.count(tbl, key_type)&lt;br /&gt;
  local length = 0;&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if key_type then&lt;br /&gt;
      if type(k) == key_type then&lt;br /&gt;
        length = length + 1&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      length = length + 1&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  return length&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- procedure&lt;br /&gt;
-- ref: https://gist.github.com/ripter/4270799&lt;br /&gt;
function util.table.tprint(tbl, indent)&lt;br /&gt;
  if not indent then indent = 0 end&lt;br /&gt;
&lt;br /&gt;
  if type(tbl) ~= &amp;quot;table&amp;quot; then&lt;br /&gt;
    print(tbl)&lt;br /&gt;
    return 0&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for k, v in pairs(tbl) do&lt;br /&gt;
    local formatting = string.rep(&amp;quot;  &amp;quot;, indent) .. k .. &amp;quot;: &amp;quot;&lt;br /&gt;
    if type(v) == &amp;quot;table&amp;quot; then&lt;br /&gt;
      print(formatting)&lt;br /&gt;
      util.tprint(v, indent+1)&lt;br /&gt;
    elseif type(v) == 'boolean' then&lt;br /&gt;
      print(formatting .. tostring(v))&lt;br /&gt;
    else&lt;br /&gt;
      print(formatting .. v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- delimiter must be a single character&lt;br /&gt;
-- only for strings and numbers&lt;br /&gt;
function util.table.toCSVstring(tbl, delimiter)&lt;br /&gt;
  delimiter = delimiter or &amp;quot;,&amp;quot;&lt;br /&gt;
  assert(#delimiter == 1 and type(delimiter) == 'toCSVstring', &amp;quot;toCSVstring: bad argument #2 (single character expected)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  local csv = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) == 'string' or type(v) == 'number' then&lt;br /&gt;
      csv = csv .. v .. delimiter&lt;br /&gt;
    else&lt;br /&gt;
      assert(false, &amp;quot;toCSVstring: can only handle numbers and strings&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  csv = string.sub(csv, 1, -2) -- remove final delimiter (works only for a single char)&lt;br /&gt;
&lt;br /&gt;
  return csv&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
-- misc --&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
-- procedure&lt;br /&gt;
function util.hl(title, width)&lt;br /&gt;
  width = width or 80&lt;br /&gt;
&lt;br /&gt;
  if type(title) == &amp;quot;string&amp;quot; then&lt;br /&gt;
    title = &amp;quot; &amp;quot; .. title .. &amp;quot; &amp;quot;&lt;br /&gt;
    local before = math.floor((width - #title) / 2)&lt;br /&gt;
    local after = width - before - #title&lt;br /&gt;
    print(string.rep(&amp;quot;-&amp;quot;, before) .. title .. string.rep(&amp;quot;-&amp;quot;, after))&lt;br /&gt;
  else&lt;br /&gt;
    print(string.rep(&amp;quot;-&amp;quot;, width))&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.round(num, numDecimalPlaces)&lt;br /&gt;
  return tonumber(string.format(&amp;quot;%.&amp;quot; .. (numDecimalPlaces or 0) .. &amp;quot;f&amp;quot;, num))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return util -- return module&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86131</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86131"/>
		<updated>2021-05-17T20:59:37Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  &lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
  &lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
else&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local timeDataStart = runTime()&lt;br /&gt;
&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  local timeDataEnd = runTime()&lt;br /&gt;
  log(string.format('@%ims, data loaded in %ims', timeDataEnd, timeDataEnd - timeDataStart))&lt;br /&gt;
&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  log(string.format('@%ims, modules loaded', runTime()))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, runMe)&lt;br /&gt;
  if not runMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
  for fName,func in pairs(vFuncs) do&lt;br /&gt;
    if func(def) then&lt;br /&gt;
      log(string.format('@%ims, expandDef: %s expanded with %s', runTime(), def.defName, fName))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID, expandVF)&lt;br /&gt;
  if expandVF ~= false then expandVF = true end&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, expandVF)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
-- {{User:Dr. Strangelove/Template:Infobox/sandbox|{{{movespeed|}}}|statBases|MoveSpeed|title=Some movin|SMWP=Move Speed Base}}&lt;br /&gt;
-- {{#invoke:Test|print|{{SUBPAGENAME}}}}&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(pFrame.args) do&lt;br /&gt;
    if i &amp;gt; 1 then&lt;br /&gt;
      table.insert(qFrame.args, v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
  mw.logObject(pFrame.args.SMWP, 'pFrame.args.SMWP')&lt;br /&gt;
  mw.logObject(ibPropValue, 'ibPropValue')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP and ibPropValue then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP .. '=' .. ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args['label'] = 'ancient cryptosleep casket'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  wiki.query(simframe)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test/data&amp;diff=86130</id>
		<title>Module:Test/data</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test/data&amp;diff=86130"/>
		<updated>2021-05-17T20:55:17Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: research Defs added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:BorealForest&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Cold.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BorealForest&amp;quot;,&lt;br /&gt;
    label = &amp;quot;boreal forest&amp;quot;,&lt;br /&gt;
    description = [[Forests of coniferous trees. Despite the harsh winters, boreal forests sustain a diverse population of small and large animals, and have warm summers.]],&lt;br /&gt;
    movementDifficulty = 1,&lt;br /&gt;
    forageability = 0.75,&lt;br /&gt;
    foragedFood = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 60,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_Grass = 8.0,&lt;br /&gt;
      Plant_Brambles = 2.0,&lt;br /&gt;
      Plant_Moss = 4.0,&lt;br /&gt;
      Plant_Bush = 3.0,&lt;br /&gt;
      Plant_TreePine = 5.0,&lt;br /&gt;
      Plant_TreeBirch = 1.5,&lt;br /&gt;
      Plant_TreePoplar = 1.2,&lt;br /&gt;
      Plant_Berry = 0.16,&lt;br /&gt;
      Plant_HealrootWild = 0.16,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      Yak = 0.12,&lt;br /&gt;
      Horse = 0.15,&lt;br /&gt;
      Squirrel = 1,&lt;br /&gt;
      Hare = 1,&lt;br /&gt;
      Rat = 1,&lt;br /&gt;
      Elk = 0.5,&lt;br /&gt;
      Caribou = 0.5,&lt;br /&gt;
      Muffalo = 0.5,&lt;br /&gt;
      WildBoar = 0.5,&lt;br /&gt;
      Ibex = 0.5,&lt;br /&gt;
      Raccoon = 0.5,&lt;br /&gt;
      Turkey = 0.5,&lt;br /&gt;
      Deer = 0.5,&lt;br /&gt;
      Megasloth = 0.1,&lt;br /&gt;
      Fox_Red = 0.07,&lt;br /&gt;
      Fox_Arctic = 0.07,&lt;br /&gt;
      Bear_Grizzly = 0.07,&lt;br /&gt;
      Wolf_Timber = 0.07,&lt;br /&gt;
      Wolf_Arctic = 0.07,&lt;br /&gt;
      Cougar = 0.07,&lt;br /&gt;
      Lynx = 0.07,&lt;br /&gt;
      Warg = 0.07,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:Tundra&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Cold.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Tundra&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tundra&amp;quot;,&lt;br /&gt;
    description = [[These mostly-frozen plains bear almost no trees and little vegetation. There are a few small animals interspersed with large herds of migratory grazers and their predators.]],&lt;br /&gt;
    movementDifficulty = 1,&lt;br /&gt;
    forageability = 0.5,&lt;br /&gt;
    foragedFood = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 80,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_Grass = 3.6,&lt;br /&gt;
      Plant_Moss = 0.5,&lt;br /&gt;
      Plant_Bush = 0.3,&lt;br /&gt;
      Plant_Astragalus = 0.1,&lt;br /&gt;
      Plant_Dandelion = 0.1,&lt;br /&gt;
      Plant_TreePine = 0.08,&lt;br /&gt;
      Plant_TreeBirch = 0.08,&lt;br /&gt;
      Plant_Berry = 0.07,&lt;br /&gt;
      Plant_HealrootWild = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      Hare = 2,&lt;br /&gt;
      Snowhare = 2,&lt;br /&gt;
      Caribou = 2,&lt;br /&gt;
      Elk = 2,&lt;br /&gt;
      Muffalo = 2,&lt;br /&gt;
      Ibex = 2,&lt;br /&gt;
      Megasloth = 0.2,&lt;br /&gt;
      Fox_Arctic = 0.07,&lt;br /&gt;
      Wolf_Arctic = 0.07,&lt;br /&gt;
      Wolf_Timber = 0.07,&lt;br /&gt;
      Lynx = 0.07,&lt;br /&gt;
      Warg = 0.07,&lt;br /&gt;
      Bear_Polar = 0.07,&lt;br /&gt;
      Bear_Grizzly = 0.07,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:ColdBog&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Cold.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ColdBog&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cold bog&amp;quot;,&lt;br /&gt;
    description = [[A wetland packed with trees and vines. Much of the marshy land here can't support heavy structures, moving around is slow due to choking vegetation. Disease is endemic in this dense, wet ecosystem.]],&lt;br /&gt;
    movementDifficulty = 4,&lt;br /&gt;
    forageability = 0.5,&lt;br /&gt;
    foragedFood = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 45,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_Chokevine = 3.0,&lt;br /&gt;
      Plant_TallGrass = 2.4,&lt;br /&gt;
      Plant_Moss = 0.5,&lt;br /&gt;
      Plant_Bush = 0.3,&lt;br /&gt;
      Plant_Astragalus = 0.1,&lt;br /&gt;
      Plant_TreeWillow = 0.6,&lt;br /&gt;
      Plant_TreeCypress = 0.6,&lt;br /&gt;
      Plant_TreeMaple = 0.6,&lt;br /&gt;
      Plant_Berry = 0.07,&lt;br /&gt;
      Plant_HealrootWild = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      GuineaPig = 0.07,&lt;br /&gt;
      Yak = 0.2,&lt;br /&gt;
      Squirrel = 1,&lt;br /&gt;
      Hare = 1,&lt;br /&gt;
      Rat = 1,&lt;br /&gt;
      Elk = 0.5,&lt;br /&gt;
      Caribou = 0.5,&lt;br /&gt;
      Muffalo = 0.5,&lt;br /&gt;
      WildBoar = 0.5,&lt;br /&gt;
      Ibex = 0.5,&lt;br /&gt;
      Raccoon = 0.5,&lt;br /&gt;
      Turkey = 0.5,&lt;br /&gt;
      Deer = 0.5,&lt;br /&gt;
      Megasloth = 0.1,&lt;br /&gt;
      Fox_Red = 0.07,&lt;br /&gt;
      Fox_Arctic = 0.07,&lt;br /&gt;
      Wolf_Timber = 0.07,&lt;br /&gt;
      Wolf_Arctic = 0.07,&lt;br /&gt;
      Cougar = 0.07,&lt;br /&gt;
      Lynx = 0.07,&lt;br /&gt;
      Warg = 0.07,&lt;br /&gt;
      Bear_Polar = 0.07,&lt;br /&gt;
      Bear_Grizzly = 0.07,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:IceSheet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Cold.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;IceSheet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ice sheet&amp;quot;,&lt;br /&gt;
    description = [[Sheets of ice which can be kilometers thick. There is no soil for plants to grow in. The only animals here are migrating to somewhere else - or badly lost.]],&lt;br /&gt;
    movementDifficulty = 1.5,&lt;br /&gt;
    forageability = 0,&lt;br /&gt;
    diseaseMtbDays = 90,&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      Snowhare = 2,&lt;br /&gt;
      Muffalo = 0.1,&lt;br /&gt;
      Bear_Polar = 0.1,&lt;br /&gt;
      Wolf_Arctic = 0.1,&lt;br /&gt;
      Fox_Arctic = 0.1,&lt;br /&gt;
      Lynx = 0.1,&lt;br /&gt;
      Megasloth = 0.1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:SeaIce&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Cold.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SeaIce&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sea ice&amp;quot;,&lt;br /&gt;
    description = [[Permanent ice sheets floating on water. There is no soil for plants to grow, no minerals to mine, and almost no animal life.]],&lt;br /&gt;
    movementDifficulty = 1.5,&lt;br /&gt;
    forageability = 0,&lt;br /&gt;
    diseaseMtbDays = 90,&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      Snowhare = 2,&lt;br /&gt;
      Muffalo = 0.1,&lt;br /&gt;
      Bear_Polar = 0.1,&lt;br /&gt;
      Wolf_Arctic = 0.1,&lt;br /&gt;
      Fox_Arctic = 0.1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:TemperateForest&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TemperateForest&amp;quot;,&lt;br /&gt;
    label = &amp;quot;temperate forest&amp;quot;,&lt;br /&gt;
    description = [[Forests of deciduous trees interspersed with fertile clearings. Many species of animals move around among the trees and on the plains.]],&lt;br /&gt;
    movementDifficulty = 1,&lt;br /&gt;
    forageability = 1,&lt;br /&gt;
    foragedFood = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 50,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_Grass = 5.0,&lt;br /&gt;
      Plant_TallGrass = 2.0,&lt;br /&gt;
      Plant_Brambles = 1.0,&lt;br /&gt;
      Plant_Dandelion = 0.5,&lt;br /&gt;
      Plant_Bush = 0.6,&lt;br /&gt;
      Plant_TreeOak = 0.5,&lt;br /&gt;
      Plant_TreePoplar = 0.5,&lt;br /&gt;
      Plant_Berry = 0.05,&lt;br /&gt;
      Plant_HealrootWild = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      Donkey = 0.20,&lt;br /&gt;
      GuineaPig = 0.45,&lt;br /&gt;
      Yak = 0.06,&lt;br /&gt;
      Bison = 0.07,&lt;br /&gt;
      Horse = 0.20,&lt;br /&gt;
      Hare = 1.0,&lt;br /&gt;
      Squirrel = 1.0,&lt;br /&gt;
      Rat = 1.0,&lt;br /&gt;
      Deer = 0.5,&lt;br /&gt;
      WildBoar = 0.5,&lt;br /&gt;
      Turkey = 0.5,&lt;br /&gt;
      Raccoon = 0.5,&lt;br /&gt;
      Ibex = 0.5,&lt;br /&gt;
      Muffalo = 0.5,&lt;br /&gt;
      Alpaca = 0.5,&lt;br /&gt;
      Boomalope = 0.4,&lt;br /&gt;
      Boomrat = 0.4,&lt;br /&gt;
      Tortoise = 0.3,&lt;br /&gt;
      Gazelle = 0.3,&lt;br /&gt;
      Megasloth = 0.2,&lt;br /&gt;
      Rhinoceros = 0.1,&lt;br /&gt;
      Bear_Grizzly = 0.07,&lt;br /&gt;
      Wolf_Timber = 0.07,&lt;br /&gt;
      Fox_Red = 0.07,&lt;br /&gt;
      Cougar = 0.07,&lt;br /&gt;
      Lynx = 0.07,&lt;br /&gt;
      Warg = 0.07,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:TemperateSwamp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TemperateSwamp&amp;quot;,&lt;br /&gt;
    label = &amp;quot;temperate swamp&amp;quot;,&lt;br /&gt;
    description = [[Wetlands choked with vegetation and disease. Dense overgrowth makes it hard to move around, and clearing areas for building takes a long time. Much of the terrain is too marshy to support heavy structures.]],&lt;br /&gt;
    movementDifficulty = 4,&lt;br /&gt;
    forageability = 0.75,&lt;br /&gt;
    foragedFood = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 40,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_TallGrass = 3.2,&lt;br /&gt;
      Plant_Chokevine = 0.8,&lt;br /&gt;
      Plant_Bush = 0.2,&lt;br /&gt;
      Plant_TreeWillow = 1.0,&lt;br /&gt;
      Plant_TreeCypress = 1.0,&lt;br /&gt;
      Plant_TreeMaple = 1.0,&lt;br /&gt;
      Plant_Berry = 0.05,&lt;br /&gt;
      Plant_HealrootWild = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      GuineaPig = 0.15,&lt;br /&gt;
      Yak = 0.04,&lt;br /&gt;
      Horse = 0.20,&lt;br /&gt;
      Hare = 1.0,&lt;br /&gt;
      Squirrel = 1.0,&lt;br /&gt;
      Rat = 1.0,&lt;br /&gt;
      Tortoise = 0.6,&lt;br /&gt;
      Deer = 0.5,&lt;br /&gt;
      WildBoar = 0.5,&lt;br /&gt;
      Turkey = 0.5,&lt;br /&gt;
      Raccoon = 0.5,&lt;br /&gt;
      Ibex = 0.5,&lt;br /&gt;
      Muffalo = 0.5,&lt;br /&gt;
      Alpaca = 0.5,&lt;br /&gt;
      Boomalope = 0.4,&lt;br /&gt;
      Boomrat = 0.4,&lt;br /&gt;
      Megasloth = 0.2,&lt;br /&gt;
      Rhinoceros = 0.1,&lt;br /&gt;
      Bear_Grizzly = 0.07,&lt;br /&gt;
      Wolf_Timber = 0.07,&lt;br /&gt;
      Fox_Red = 0.07,&lt;br /&gt;
      Cougar = 0.07,&lt;br /&gt;
      Lynx = 0.07,&lt;br /&gt;
      Warg = 0.07,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:TropicalRainforest&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Warm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TropicalRainforest&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tropical rainforest&amp;quot;,&lt;br /&gt;
    description = [[A thick, moist jungle, buzzing with animal life and infested with disease. Despite its visual beauty, this is a very dangerous biome. Choking overgrowth, aggressive animals, and constant sickness are why some explorers call this the &amp;quot;green hell&amp;quot;.]],&lt;br /&gt;
    movementDifficulty = 2,&lt;br /&gt;
    forageability = 1,&lt;br /&gt;
    foragedFood = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 35,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_Grass = 3.0,&lt;br /&gt;
      Plant_TallGrass = 2.0,&lt;br /&gt;
      Plant_ShrubLow = 2.0,&lt;br /&gt;
      Plant_Alocasia = 0.8,&lt;br /&gt;
      Plant_TreeCecropia = 0.3,&lt;br /&gt;
      Plant_TreePalm = 0.3,&lt;br /&gt;
      Plant_TreeBamboo = 0.3,&lt;br /&gt;
      Plant_TreeTeak = 0.2,&lt;br /&gt;
      Plant_Bush = 0.15,&lt;br /&gt;
      Plant_Clivia = 0.07,&lt;br /&gt;
      Plant_Berry = 0.05,&lt;br /&gt;
      Plant_Rafflesia = 0.0008,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      GuineaPig = 0.25,&lt;br /&gt;
      Rat = 1,&lt;br /&gt;
      Monkey = 1,&lt;br /&gt;
      Boomalope = 0.5,&lt;br /&gt;
      Capybara = 0.5,&lt;br /&gt;
      Cassowary = 0.5,&lt;br /&gt;
      Tortoise = 0.5,&lt;br /&gt;
      Chinchilla = 0.5,&lt;br /&gt;
      WildBoar = 0.5,&lt;br /&gt;
      Elephant = 0.5,&lt;br /&gt;
      Rhinoceros = 0.5,&lt;br /&gt;
      Alpaca = 0.5,&lt;br /&gt;
      Cobra = 0.15,&lt;br /&gt;
      Panther = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:TropicalSwamp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Warm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TropicalSwamp&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tropical swamp&amp;quot;,&lt;br /&gt;
    description = [[A plant-choked, steamy swamp seething with parasites and pathogens. Much of the land is too marshy to build on. Difficult movement, aggressive animals, and rampant disease make living here a nightmare.]],&lt;br /&gt;
    movementDifficulty = 4,&lt;br /&gt;
    forageability = 0.75,&lt;br /&gt;
    foragedFood = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 30,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_TallGrass = 4.8,&lt;br /&gt;
      Plant_ShrubLow = 2.0,&lt;br /&gt;
      Plant_TreeWillow = 1.72,&lt;br /&gt;
      Plant_TreeCypress = 1.72,&lt;br /&gt;
      Plant_TreeMaple = 1.72,&lt;br /&gt;
      Plant_Chokevine = 0.8,&lt;br /&gt;
      Plant_Alocasia = 0.8,&lt;br /&gt;
      Plant_Bush = 0.15,&lt;br /&gt;
      Plant_Clivia = 0.07,&lt;br /&gt;
      Plant_Berry = 0.05,&lt;br /&gt;
      Plant_Rafflesia = 0.0008,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      GuineaPig = 0.18,&lt;br /&gt;
      Rat = 1,&lt;br /&gt;
      Monkey = 1,&lt;br /&gt;
      Boomalope = 0.5,&lt;br /&gt;
      Capybara = 0.5,&lt;br /&gt;
      Cassowary = 0.5,&lt;br /&gt;
      Tortoise = 0.5,&lt;br /&gt;
      Chinchilla = 0.5,&lt;br /&gt;
      WildBoar = 0.5,&lt;br /&gt;
      Elephant = 0.5,&lt;br /&gt;
      Rhinoceros = 0.5,&lt;br /&gt;
      Alpaca = 0.5,&lt;br /&gt;
      Cobra = 0.15,&lt;br /&gt;
      Panther = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:AridShrubland&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_WarmArid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AridShrubland&amp;quot;,&lt;br /&gt;
    label = &amp;quot;arid shrubland&amp;quot;,&lt;br /&gt;
    description = [[A dry region, but not dry enough to become a true desert. Open plains with grasses and bushes give way to scattered groves of trees. Plants are hardy and there is a moderate density of animals, but arable soil is hard to find.]],&lt;br /&gt;
    movementDifficulty = 1,&lt;br /&gt;
    forageability = 0.5,&lt;br /&gt;
    foragedFood = &amp;quot;RawAgave&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 65,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_Grass = 7.0,&lt;br /&gt;
      Plant_Dandelion = 0.8,&lt;br /&gt;
      Plant_Bush = 0.7,&lt;br /&gt;
      Plant_PincushionCactus = 0.6,&lt;br /&gt;
      Plant_Agave = 0.2,&lt;br /&gt;
      Plant_SaguaroCactus = 0.26,&lt;br /&gt;
      Plant_TreeDrago = 0.20,&lt;br /&gt;
      Plant_Berry = 0.10,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      Donkey = 0.2,&lt;br /&gt;
      GuineaPig = 0.017,&lt;br /&gt;
      Horse = 0.1,&lt;br /&gt;
      Bison = 0.1,&lt;br /&gt;
      Rat = 1.3,&lt;br /&gt;
      Hare = 1.3,&lt;br /&gt;
      Iguana = 0.7,&lt;br /&gt;
      Gazelle = 0.7,&lt;br /&gt;
      Ostrich = 0.7,&lt;br /&gt;
      Emu = 0.7,&lt;br /&gt;
      Dromedary = 0.7,&lt;br /&gt;
      Boomrat = 0.5,&lt;br /&gt;
      Elephant = 0.5,&lt;br /&gt;
      Rhinoceros = 0.5,&lt;br /&gt;
      Boomalope = 0.5,&lt;br /&gt;
      Cougar = 0.15,&lt;br /&gt;
      Fox_Fennec = 0.15,&lt;br /&gt;
      Megasloth = 0.1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:Desert&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_WarmArid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Desert&amp;quot;,&lt;br /&gt;
    label = &amp;quot;desert&amp;quot;,&lt;br /&gt;
    description = [[A very dry area which supports little life. There is very little arable land, and animal life is very sparse. Deserts can be hot, or quite cold.]],&lt;br /&gt;
    movementDifficulty = 1,&lt;br /&gt;
    forageability = 0.25,&lt;br /&gt;
    foragedFood = &amp;quot;RawAgave&amp;quot;,&lt;br /&gt;
    diseaseMtbDays = 90,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_Grass = 6,&lt;br /&gt;
      Plant_PincushionCactus = 1,&lt;br /&gt;
      Plant_SaguaroCactus = 1.0,&lt;br /&gt;
      Plant_Dandelion = 0.5,&lt;br /&gt;
      Plant_TreeDrago = 0.45,&lt;br /&gt;
      Plant_Agave = 0.25,&lt;br /&gt;
      Plant_Bush = 0.25,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      Donkey = 0.15,&lt;br /&gt;
      GuineaPig = 0.01,&lt;br /&gt;
      Iguana = 1.2,&lt;br /&gt;
      Dromedary = 0.7,&lt;br /&gt;
      Boomalope = 0.6,&lt;br /&gt;
      Ostrich = 0.6,&lt;br /&gt;
      Emu = 0.6,&lt;br /&gt;
      Gazelle = 0.6,&lt;br /&gt;
      Cougar = 0.07,&lt;br /&gt;
      Fox_Fennec = 0.07,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:ExtremeDesert&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_WarmArid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ExtremeDesert&amp;quot;,&lt;br /&gt;
    label = &amp;quot;extreme desert&amp;quot;,&lt;br /&gt;
    description = [[An extremely hot, dry area, devoid of almost all life. Searing heat and a near total lack of arable land make it very difficult to survive here.]],&lt;br /&gt;
    movementDifficulty = 1,&lt;br /&gt;
    forageability = 0,&lt;br /&gt;
    diseaseMtbDays = 90,&lt;br /&gt;
    wildPlants = {&lt;br /&gt;
      Plant_Grass = 6,&lt;br /&gt;
      Plant_SaguaroCactus = 1,&lt;br /&gt;
      Plant_Agave = 0.25,&lt;br /&gt;
    },&lt;br /&gt;
    wildAnimals = {&lt;br /&gt;
      Donkey = 0.20,&lt;br /&gt;
      GuineaPig = 0.002,&lt;br /&gt;
      Iguana = 1.5,&lt;br /&gt;
      Dromedary = 0.2,&lt;br /&gt;
      Fox_Fennec = 0.1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:Ocean&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Water.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ocean&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ocean&amp;quot;,&lt;br /&gt;
    description = [[Open ocean. Great for fish. Not so great for you.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;BiomeDef:Lake&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;BiomeDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Biomes_Water.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Lake&amp;quot;,&lt;br /&gt;
    label = &amp;quot;lake&amp;quot;,&lt;br /&gt;
    description = [[A large lake. Beautiful to live next to. Not so beautiful to live in.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Flame&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Environmental.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flame&amp;quot;,&lt;br /&gt;
    defaultDamage = 10,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Burn&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Environmental.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Burn&amp;quot;,&lt;br /&gt;
    label = &amp;quot;burn&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Frostbite&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Environmental.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Frostbite&amp;quot;,&lt;br /&gt;
    label = &amp;quot;frostbite&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:TornadoScratch&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Environmental.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TornadoScratch&amp;quot;,&lt;br /&gt;
    label = &amp;quot;scratch&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:SurgicalCut&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;CutBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Medical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SurgicalCut&amp;quot;,&lt;br /&gt;
    label = &amp;quot;surgical cut&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:ExecutionCut&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;CutBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Medical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ExecutionCut&amp;quot;,&lt;br /&gt;
    label = &amp;quot;execution cut&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Cut&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;CutBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cut&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cut&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Crush&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Crush&amp;quot;,&lt;br /&gt;
    label = &amp;quot;crush&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Blunt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BluntBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;blunt&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Poke&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BluntBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Poke&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Stab&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Stab&amp;quot;,&lt;br /&gt;
    label = &amp;quot;stab&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Scratch&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
    label = &amp;quot;scratch&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:ScratchToxic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ScratchToxic&amp;quot;,&lt;br /&gt;
    label = &amp;quot;toxic scratch&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Bite&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;Bite&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bite&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bite&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:ToxicBite&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Bite&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_MeleeWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ToxicBite&amp;quot;,&lt;br /&gt;
    label = &amp;quot;toxic bite&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Deterioration&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Deterioration&amp;quot;,&lt;br /&gt;
    label = &amp;quot;deterioration&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Mining&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mining&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mining&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Rotting&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Rotting&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rotting&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Extinguish&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Extinguish&amp;quot;,&lt;br /&gt;
    label = &amp;quot;extinguish&amp;quot;,&lt;br /&gt;
    defaultDamage = 999999,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Bomb&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bomb&amp;quot;,&lt;br /&gt;
    defaultDamage = 50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:BombSuper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BombSuper&amp;quot;,&lt;br /&gt;
    defaultDamage = 550,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Smoke&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Smoke&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoke&amp;quot;,&lt;br /&gt;
    defaultDamage = 0,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:RangedStab&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_RangedWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RangedStab&amp;quot;,&lt;br /&gt;
    label = &amp;quot;stab&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Bullet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_RangedWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bullet&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Arrow&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_RangedWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
    label = &amp;quot;arrow&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:ArrowHighVelocity&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_RangedWeapon.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ArrowHighVelocity&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:Stun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StunBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Stun.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Stun&amp;quot;,&lt;br /&gt;
    label = &amp;quot;stun&amp;quot;,&lt;br /&gt;
    defaultDamage = 20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;DamageDef:EMP&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StunBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;DamageDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Damages_Stun.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
    label = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
    defaultDamage = 50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Beer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DrugBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Alcohol_Beer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Beer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;beer&amp;quot;,&lt;br /&gt;
    description = [[The first beverage besides water ever consumed by mankind. Beer can taste good, but its main effect is intoxication. Excessive consumption can lead to alcohol blackouts and, over time, addiction.]],&lt;br /&gt;
    stackLimit = 25,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      DeteriorationRate = 0.5,&lt;br /&gt;
      MarketValue = 12,&lt;br /&gt;
      Mass = 0.3,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Nutrition = 0.08,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Fluid&amp;quot;,&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
        &amp;quot;Liquor&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      joyKind = &amp;quot;Chemical&amp;quot;,&lt;br /&gt;
      joy = 0.17,&lt;br /&gt;
      drugCategory = &amp;quot;Social&amp;quot;,&lt;br /&gt;
      chairSearchRadius = 25,&lt;br /&gt;
      canAutoSelectAsFoodForCaravan = false,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;AlcoholHigh&amp;quot;,&lt;br /&gt;
          severity = 0.15,&lt;br /&gt;
          toleranceChemical = &amp;quot;Alcohol&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;AlcoholTolerance&amp;quot;,&lt;br /&gt;
          severity = 0.016,&lt;br /&gt;
          divideByBodySize = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;Alcohol&amp;quot;,&lt;br /&gt;
        addictiveness = 0.010,&lt;br /&gt;
        minToleranceToAddict = 0.25,&lt;br /&gt;
        existingAddictionSeverityOffset = 0.20,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        listOrder = 10,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompEquippable&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;bottle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;neck&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Wort&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Alcohol_Beer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Wort&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wort&amp;quot;,&lt;br /&gt;
    description = [[Un-fermented beer. This substance needs to ferment in a fermenting barrel before it becomes drinkable beer.]],&lt;br /&gt;
    stackLimit = 25,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Manufactured&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      DeteriorationRate = 1.0,&lt;br /&gt;
      MarketValue = 2.5,&lt;br /&gt;
      Mass = 0.8,&lt;br /&gt;
      Flammability = 0.2,&lt;br /&gt;
      MaxHitPoints = 60,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 5,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ambrosia&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DrugBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ambrosia.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ambrosia&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ambrosia&amp;quot;,&lt;br /&gt;
    description = [[A soft, rare fruit. Ambrosia tastes wonderful and produces a subtle mood-increasing chemical high. However, if eaten too often, it can generate a mild addiction.]],&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 15,&lt;br /&gt;
      Mass = 0.1,&lt;br /&gt;
      DeteriorationRate = 4,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      baseIngestTicks = 80,&lt;br /&gt;
      chairSearchRadius = 4,&lt;br /&gt;
      preferability = &amp;quot;DesperateOnly&amp;quot;,&lt;br /&gt;
      tasteThought = {},&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetableOrFruit&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      joyKind = &amp;quot;Chemical&amp;quot;,&lt;br /&gt;
      joy = 0.5,&lt;br /&gt;
      drugCategory = &amp;quot;Social&amp;quot;,&lt;br /&gt;
      canAutoSelectAsFoodForCaravan = false,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;AmbrosiaHigh&amp;quot;,&lt;br /&gt;
          severity = 0.50,&lt;br /&gt;
          toleranceChemical = &amp;quot;Ambrosia&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;AmbrosiaTolerance&amp;quot;,&lt;br /&gt;
          severity = 0.032,&lt;br /&gt;
          divideByBodySize = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 30,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;Ambrosia&amp;quot;,&lt;br /&gt;
        addictiveness = 0.010,&lt;br /&gt;
        minToleranceToAddict = 0.15,&lt;br /&gt;
        existingAddictionSeverityOffset = 0.1,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        listOrder = 30,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DrugBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;DrugBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;DrugBases.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      DeteriorationRate = 2,&lt;br /&gt;
      Beauty = -4,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    stackLimit = 150,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Drugs&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Drugs&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;NeverForNutrition&amp;quot;,&lt;br /&gt;
      chairSearchRadius = 8,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MakeableDrugBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;MakeableDrugBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;DrugBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;DrugBases.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;DrugSynthesisSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Intellectual&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Cook&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_CookMeal&amp;quot;,&lt;br /&gt;
      bulkRecipeCount = 4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MakeableDrugPillBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;MakeableDrugPillBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;MakeableDrugBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;DrugBases.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      baseIngestTicks = 100,&lt;br /&gt;
      chairSearchRadius = 0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DrugPillBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;DrugPillBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;DrugBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;DrugBases.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      baseIngestTicks = 100,&lt;br /&gt;
      chairSearchRadius = 0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:GoJuice&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableDrugBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;GoJuice.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GoJuice&amp;quot;,&lt;br /&gt;
    label = &amp;quot;go-juice&amp;quot;,&lt;br /&gt;
    description = [[A synthetic performance-enhancing drug developed for space marines during the early days of interplanetary warfare. Go-juice blocks pain, increases movement speed, and improves the user's melee and shooting abilities.\n\nThe military chemists who created it were never able to remove its addictiveness. Some saw this as a downside; others saw it as a benefit.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 600,&lt;br /&gt;
      MarketValue = 53,&lt;br /&gt;
      Mass = 0.1,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      joyKind = &amp;quot;Chemical&amp;quot;,&lt;br /&gt;
      joy = 0.40,&lt;br /&gt;
      drugCategory = &amp;quot;Hard&amp;quot;,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
        &amp;quot;Fluid&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      baseIngestTicks = 80,&lt;br /&gt;
      chairSearchRadius = 0,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;GoJuiceHigh&amp;quot;,&lt;br /&gt;
          severity = 0.5,&lt;br /&gt;
          toleranceChemical = &amp;quot;GoJuice&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_OffsetNeed&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          need = &amp;quot;Rest&amp;quot;,&lt;br /&gt;
          offset = 0.4,&lt;br /&gt;
          toleranceChemical = &amp;quot;GoJuice&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_OffsetPsyfocus&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          offset = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;GoJuiceProduction&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;DrugLab&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Drug&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Neutroamine = 2,&lt;br /&gt;
      Yayo = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;GoJuice&amp;quot;,&lt;br /&gt;
        addictiveness = 0.026,&lt;br /&gt;
        existingAddictionSeverityOffset = 0.20,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        isCombatEnhancingDrug = true,&lt;br /&gt;
        listOrder = 200,&lt;br /&gt;
        overdoseSeverityOffset = { [&amp;quot;&amp;lt;&amp;quot;]=0.18, [&amp;quot;&amp;gt;&amp;quot;]=0.35 },&lt;br /&gt;
        largeOverdoseChance = 0.005,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Luciferium&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DrugPillBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Luciferium.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Luciferium&amp;quot;,&lt;br /&gt;
    label = &amp;quot;luciferium&amp;quot;,&lt;br /&gt;
    description = [[A concoction of mechanites that dramatically improve the body's functioning in all respects. Over time, it can even heal old scarred-over wounds or brain damage, though it cannot regenerate lost limbs. Unfortunately, without the moderating effects of regular doses every five or six days, the mechanites lose cohesion, causing continuous berserk rages and, eventually, death.\n\nAfter the first dose, there is no way to get the mechanites out, ever.\n\nOn the urbworlds, they call Luciferium the 'Devil's Bargain'. Many have been forced to kill friends when no more of the seductive red pills could be found.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 70,&lt;br /&gt;
      Mass = 0.01,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      drugCategory = &amp;quot;Medical&amp;quot;,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;LuciferiumHigh&amp;quot;,&lt;br /&gt;
          severity = 1.00,&lt;br /&gt;
          doToGeneratedPawnIfAddicted = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;Luciferium&amp;quot;,&lt;br /&gt;
        addictiveness = 1.00,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        listOrder = 1010,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Penoxycyline&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableDrugPillBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Penoxycyline.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Penoxycyline&amp;quot;,&lt;br /&gt;
    label = &amp;quot;penoxycyline&amp;quot;,&lt;br /&gt;
    description = [[A drug for preventing infections before they take hold. Blocks malaria, sleeping sickness, plague. Must be taken every five days to remain effective.\n\nThis drug only prevents new infections. It does not cure existing infections - even those that are not yet discovered.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 600,&lt;br /&gt;
      MarketValue = 18,&lt;br /&gt;
      Mass = 0.005,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      drugCategory = &amp;quot;Medical&amp;quot;,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;PenoxycylineHigh&amp;quot;,&lt;br /&gt;
          severity = 1.0,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;PenoxycylineProduction&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;DrugLab&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Neutroamine = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        listOrder = 1000,&lt;br /&gt;
        overdoseSeverityOffset = { [&amp;quot;&amp;lt;&amp;quot;]=0.08, [&amp;quot;&amp;gt;&amp;quot;]=0.14 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Flake&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableDrugBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Psychite_Flake.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Flake&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flake&amp;quot;,&lt;br /&gt;
    description = [[A flaky white preparation of psychite that can be smoked to induce a short but powerful euphoric state. While it is cheap to produce and extremely pleasurable to use, it is exceptionally addictive. Flake is known for destroying lives, communities, and entire societies.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 250,&lt;br /&gt;
      MarketValue = 14,&lt;br /&gt;
      Mass = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      joyKind = &amp;quot;Chemical&amp;quot;,&lt;br /&gt;
      joy = 0.70,&lt;br /&gt;
      baseIngestTicks = 650,&lt;br /&gt;
      drugCategory = &amp;quot;Hard&amp;quot;,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;FlakeHigh&amp;quot;,&lt;br /&gt;
          severity = 0.75,&lt;br /&gt;
          toleranceChemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_OffsetNeed&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          need = &amp;quot;Rest&amp;quot;,&lt;br /&gt;
          offset = 0.2,&lt;br /&gt;
          toleranceChemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;PsychiteTolerance&amp;quot;,&lt;br /&gt;
          severity = 0.04,&lt;br /&gt;
          divideByBodySize = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;PsychiteRefining&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;DrugLab&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Drug&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      PsychoidLeaves = 4,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        addictiveness = 0.05,&lt;br /&gt;
        existingAddictionSeverityOffset = 0.30,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        listOrder = 110,&lt;br /&gt;
        overdoseSeverityOffset = { [&amp;quot;&amp;lt;&amp;quot;]=0.18, [&amp;quot;&amp;gt;&amp;quot;]=0.35 },&lt;br /&gt;
        largeOverdoseChance = 0.015,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychiteTea&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableDrugBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Psychite_Tea.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychiteTea&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychite tea&amp;quot;,&lt;br /&gt;
    description = [[A fragrant tea infused with leaves of the psychoid plant. Drinking it induces a subtle psychite euphoria. This tea is easy to produce at cooking facilities, but can produce psychite addiction if consumed too often.\n\nMany tribes use psychoid tea, both as a daily energizer and as part of social and religious rituals.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 400,&lt;br /&gt;
      MarketValue = 10,&lt;br /&gt;
      Mass = 0.05,&lt;br /&gt;
      DeteriorationRate = 6,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Fluid&amp;quot;,&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      joyKind = &amp;quot;Chemical&amp;quot;,&lt;br /&gt;
      joy = 0.40,&lt;br /&gt;
      baseIngestTicks = 210,&lt;br /&gt;
      drugCategory = &amp;quot;Social&amp;quot;,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;PsychiteTeaHigh&amp;quot;,&lt;br /&gt;
          severity = 0.75,&lt;br /&gt;
          toleranceChemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_OffsetNeed&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          need = &amp;quot;Rest&amp;quot;,&lt;br /&gt;
          offset = 0.1,&lt;br /&gt;
          toleranceChemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;PsychiteTolerance&amp;quot;,&lt;br /&gt;
          severity = 0.03,&lt;br /&gt;
          divideByBodySize = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;PsychoidBrewing&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;Campfire&amp;quot;,&lt;br /&gt;
        &amp;quot;ElectricStove&amp;quot;,&lt;br /&gt;
        &amp;quot;FueledStove&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      workSpeedStat = &amp;quot;DrugCookingSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Cooking&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Cooking = 2,&lt;br /&gt;
      },&lt;br /&gt;
      requiredGiverWorkType = &amp;quot;Cooking&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      PsychoidLeaves = 4,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        addictiveness = 0.02,&lt;br /&gt;
        minToleranceToAddict = 0.10,&lt;br /&gt;
        existingAddictionSeverityOffset = 0.15,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        listOrder = 110,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Yayo&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableDrugBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Psychite_Yayo.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Yayo&amp;quot;,&lt;br /&gt;
    label = &amp;quot;yayo&amp;quot;,&lt;br /&gt;
    description = [[A refined powdery preparation of the psychite drug. When snorted, it produces a rapid euphoric high, dramatically reduces the user's need for rest, and suppresses pain. Like all forms of psychite, it is addictive, though it is not as addictive as the cruder flake.\n\nBecause of its high cost and refined appearance, many cultures associate yayo with degenerate wealth. Whether in the throneroom or the boardroom, many hare-brained policy schemes have been developed during yayo-fueled binge parties.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 350,&lt;br /&gt;
      MarketValue = 21,&lt;br /&gt;
      Mass = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      joyKind = &amp;quot;Chemical&amp;quot;,&lt;br /&gt;
      joy = 0.80,&lt;br /&gt;
      drugCategory = &amp;quot;Hard&amp;quot;,&lt;br /&gt;
      baseIngestTicks = 150,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;YayoHigh&amp;quot;,&lt;br /&gt;
          severity = 0.75,&lt;br /&gt;
          toleranceChemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_OffsetNeed&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          need = &amp;quot;Rest&amp;quot;,&lt;br /&gt;
          offset = 0.4,&lt;br /&gt;
          toleranceChemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;PsychiteTolerance&amp;quot;,&lt;br /&gt;
          severity = 0.040,&lt;br /&gt;
          divideByBodySize = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;PsychiteRefining&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;DrugLab&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Drug&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      PsychoidLeaves = 8,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;Psychite&amp;quot;,&lt;br /&gt;
        addictiveness = 0.01,&lt;br /&gt;
        existingAddictionSeverityOffset = 0.20,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        isCombatEnhancingDrug = true,&lt;br /&gt;
        listOrder = 100,&lt;br /&gt;
        overdoseSeverityOffset = { [&amp;quot;&amp;lt;&amp;quot;]=0.18, [&amp;quot;&amp;gt;&amp;quot;]=0.35 },&lt;br /&gt;
        largeOverdoseChance = 0.01,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SmokeleafJoint&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableDrugBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Smokeleaf.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmokeleafJoint&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smokeleaf joint&amp;quot;,&lt;br /&gt;
    description = [[Smokeleaf leaves prepared in small rolls for smoking. The drug improves mood, but also increases appetite, reduces focus and slows movement. Smokeleaf use can produce a dependency.\n\nJoints can be produced at a crafting spot without equipment, and are a fixture in many traditional low-industriousness cultures.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 450,&lt;br /&gt;
      MarketValue = 11,&lt;br /&gt;
      Mass = 0.05,&lt;br /&gt;
      DeteriorationRate = 6,&lt;br /&gt;
      Flammability = 1.3,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Plant&amp;quot;,&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      joyKind = &amp;quot;Chemical&amp;quot;,&lt;br /&gt;
      joy = 0.80,&lt;br /&gt;
      baseIngestTicks = 720,&lt;br /&gt;
      drugCategory = &amp;quot;Social&amp;quot;,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;SmokeleafHigh&amp;quot;,&lt;br /&gt;
          severity = 0.5,&lt;br /&gt;
          toleranceChemical = &amp;quot;Smokeleaf&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_OffsetNeed&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          need = &amp;quot;Rest&amp;quot;,&lt;br /&gt;
          offset = -0.1,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;SmokeleafTolerance&amp;quot;,&lt;br /&gt;
          severity = 0.030,&lt;br /&gt;
          divideByBodySize = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
        &amp;quot;DrugLab&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      workSpeedStat = &amp;quot;DrugCookingSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Cooking&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      SmokeleafLeaves = 4,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;Smokeleaf&amp;quot;,&lt;br /&gt;
        addictiveness = 0.020,&lt;br /&gt;
        minToleranceToAddict = 0.15,&lt;br /&gt;
        existingAddictionSeverityOffset = 0.06,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        listOrder = 20,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WakeUp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableDrugPillBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;WakeUp.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WakeUp&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wake-up&amp;quot;,&lt;br /&gt;
    description = [[A synthetic stimulant. Wake-up fills the user's need for rest, allowing them to work for extended periods without getting tired. However, taking wake-up runs the risk of developing an addiction.\n\nIn the most competitive universities and companies of many worlds, high-achievers are sometimes called 'wake-ups' because of the association with this drug.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 900,&lt;br /&gt;
      MarketValue = 35,&lt;br /&gt;
      Mass = 0.005,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      joyKind = &amp;quot;Chemical&amp;quot;,&lt;br /&gt;
      joy = 0.40,&lt;br /&gt;
      drugCategory = &amp;quot;Hard&amp;quot;,&lt;br /&gt;
      outcomeDoers = {&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_GiveHediff&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          hediffDef = &amp;quot;WakeUpHigh&amp;quot;,&lt;br /&gt;
          severity = 0.75,&lt;br /&gt;
          toleranceChemical = &amp;quot;WakeUp&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          _ = {&lt;br /&gt;
            Class = &amp;quot;IngestionOutcomeDoer_OffsetNeed&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          need = &amp;quot;Rest&amp;quot;,&lt;br /&gt;
          offset = 1.0,&lt;br /&gt;
          toleranceChemical = &amp;quot;WakeUp&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;WakeUpProduction&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;DrugLab&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Neutroamine = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Drug&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chemical = &amp;quot;WakeUp&amp;quot;,&lt;br /&gt;
        addictiveness = 0.02,&lt;br /&gt;
        existingAddictionSeverityOffset = 0.20,&lt;br /&gt;
        needLevelOffset = 0.9,&lt;br /&gt;
        listOrder = 210,&lt;br /&gt;
        overdoseSeverityOffset = { [&amp;quot;&amp;lt;&amp;quot;]=0.18, [&amp;quot;&amp;gt;&amp;quot;]=0.35 },&lt;br /&gt;
        largeOverdoseChance = 0.005,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartArchotechBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartArchotechBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Archotech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BodyPartsArchotech&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      DeteriorationRate = 0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArchotechEye&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartArchotechBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Archotech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ArchotechEye&amp;quot;,&lt;br /&gt;
    label = &amp;quot;archotech eye&amp;quot;,&lt;br /&gt;
    description = [[An artifical eye built by an archotech. It perceives every type of electromagnetic radiation, including radio waves, infrared, light, x-rays, and gamma rays. Its visual acuity is precise enough to read handwriting from twenty meters away. It can emit various wavelengths of radiation like a flashlight, and has an internal subpersona AI which helps highlight useful visual information. Externally, it looks like a natural human eye, except it can change color at will. Its internal workings are a mystery to all human minds.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2800,&lt;br /&gt;
      Mass = 0.3,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArchotechArm&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartArchotechBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Archotech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ArchotechArm&amp;quot;,&lt;br /&gt;
    label = &amp;quot;archotech arm&amp;quot;,&lt;br /&gt;
    description = [[An artifical arm built by an archotech. It's strong enough to crush a thick hardwood branch in its hand, and precise enough to write a sonnet on a grain of rice. It looks and feels like natural flesh, but it's harder to damage than plasteel. Even if it is harmed, it repairs itself over time. Its internal workings are a mystery to all human minds.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2800,&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArchotechLeg&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartArchotechBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Archotech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ArchotechLeg&amp;quot;,&lt;br /&gt;
    label = &amp;quot;archotech leg&amp;quot;,&lt;br /&gt;
    description = [[An artifical leg built by an archotech. It looks and feels like natural flesh, but a pair of these can move the user as fast as a decent car, and it's harder to damage than plasteel. Even if it is harmed, it repairs itself over time. Its internal workings are a mystery to all human minds.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2800,&lt;br /&gt;
      Mass = 7,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Base.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      Beauty = -4,&lt;br /&gt;
      DeteriorationRate = 2.0,&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;TechHediff&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartBionicBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BodyPartsBionic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Bionic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 26000,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedHealthItemBionic&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 8,&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;Bionics&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BionicEye&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BionicEye&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bionic eye&amp;quot;,&lt;br /&gt;
    description = [[An advanced artifical eye. With its biogel nerve-link, internal signal pre-processor, and wide-spectrum sensors, it is better than a biological eye in almost every way. A lattice-dust healing system allows it to recover from damage.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 0.3,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BionicArm&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BionicArm&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bionic arm&amp;quot;,&lt;br /&gt;
    description = [[An advanced artificial arm. Silenced mini-servos give great strength, while the biogel nerve-link gives exquisite control. A lattice-dust healing system allows it to recover from damage. It is better than a biological arm in almost every way.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BionicLeg&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BionicLeg&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bionic leg&amp;quot;,&lt;br /&gt;
    description = [[An advanced artificial leg. With its biogel nerve-link, powerful mini-servos, and lattice-dust healing system, it is better than a biological leg in almost every way.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 8,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BionicSpine&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BionicSpine&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bionic spine&amp;quot;,&lt;br /&gt;
    description = [[An advanced artificial spine. A biogel nerve bundle runs down an articulated plasteel core, surrounded by a lattice-dust healing system. It matches the performance of a biological spine.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BionicHeart&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BionicHeart&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bionic heart&amp;quot;,&lt;br /&gt;
    description = [[An advanced artificial heart. It has synthetic muscle fibers for a realistic heartbeat, plus a high-flow pump for rapid circulation during high stress. It is better than a biological heart in almost every way.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BionicStomach&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BionicStomach&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bionic stomach&amp;quot;,&lt;br /&gt;
    description = [[An advanced artificial stomach. A set of sensors and chemical synthesizers efficiently digest nearly any energy-bearing foodstuff. An integrated lattice-dust healing system automatically repairs any damage caused by the powerful acids. It is better than a biological stomach in almost every way.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
      ComponentSpacer = 3,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DeathAcidifier&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DeathAcidifier&amp;quot;,&lt;br /&gt;
    label = &amp;quot;death acidifier&amp;quot;,&lt;br /&gt;
    description = [[A chest implant for preventing enemy use of captured equipment. Upon the user's death, it releases powerful chemicals that dissolve gear in contact with the user's body. It doesn't damage others.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 400,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BodyPartsBionic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Mote_AcidCloud&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MoteBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mote_AcidCloud&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;MoteOverhead&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BionicEar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BionicEar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bionic ear&amp;quot;,&lt;br /&gt;
    description = [[An advanced artificial ear implant. A collection of invisible subdermal microphones capture sound and transmit it to a biogel nerve interface that links directly with the auditory nerve. It's sensitive enough to hear a cat before you see it, can't be damaged by loud noise, and automatically tunes itself to pick out meaningful sounds in noisy environments.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
      ComponentSpacer = 3,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartNaturalBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartNaturalBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BodyPartsNatural&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      DeteriorationRate = 4.0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Heart&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartNaturalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Heart&amp;quot;,&lt;br /&gt;
    label = &amp;quot;heart&amp;quot;,&lt;br /&gt;
    description = [[A biological human heart. Pumps blood around the body.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 500,&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Lung&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartNaturalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Lung&amp;quot;,&lt;br /&gt;
    label = &amp;quot;lung&amp;quot;,&lt;br /&gt;
    description = [[A biological human lung. A pair of these form the core of the human respiratory system.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 400,&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Kidney&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartNaturalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Kidney&amp;quot;,&lt;br /&gt;
    label = &amp;quot;kidney&amp;quot;,&lt;br /&gt;
    description = [[A biological human kidney. Filters and removes waste products from the blood.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Liver&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartNaturalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Liver&amp;quot;,&lt;br /&gt;
    label = &amp;quot;liver&amp;quot;,&lt;br /&gt;
    description = [[A biological human liver. Plays an important role in metabolism.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 500,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartProstheticBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartProstheticBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BodyPartsProsthetic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 15000,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartProstheticMakeableBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartProstheticMakeableBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedHealthItemProsthetic&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SimpleProstheticLeg&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SimpleProstheticLeg&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prosthetic leg&amp;quot;,&lt;br /&gt;
    description = [[A leg prosthesis. While it lacks a neural interface, its complex arrangement of internal joints allows it to mimic natural movement quite convincingly. Still, it is inferior to a real leg.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 8,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SimpleProstheticArm&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SimpleProstheticArm&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prosthetic arm&amp;quot;,&lt;br /&gt;
    description = [[An arm prosthesis. While it lacks a neural interface, its complex arrangement of internal joints allows it to mimic natural movement quite convincingly. Still, it is inferior to a real arm.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SimpleProstheticHeart&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SimpleProstheticHeart&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prosthetic heart&amp;quot;,&lt;br /&gt;
    description = [[A heart prosthesis. It contains an electric motor that pumps blood smoothly around the body. Users often report feeling tired, but it's better than the alternative.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 25,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CochlearImplant&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CochlearImplant&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cochlear implant&amp;quot;,&lt;br /&gt;
    description = [[An implant which replaces normal hearing. An external microphone transmits a sound signal to electrodes wrapped around the inner ear's auditory sensing nerves. The electrodes stimulate the nerves according to the sound, creating a sensation of hearing. It's not as good as a natural ear, but it's a lot better than being deaf.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PowerClaw&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PowerClaw&amp;quot;,&lt;br /&gt;
    label = &amp;quot;power claw&amp;quot;,&lt;br /&gt;
    description = [[A combat-oriented hand replacement consisting of a mechanical hand with a hooked claw on each finger. It cuts deep, and it is strong enough to crush a skull like a hand crushes an egg. The claws can be retracted, making it as useful as a natural hand for non-combat tasks, however its overall ungainlyness slows down movement slightly.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 8,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Joywire&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Joywire&amp;quot;,&lt;br /&gt;
    label = &amp;quot;joywire&amp;quot;,&lt;br /&gt;
    description = [[A brain implant that stimulates the brain's pleasure centers. While it dramatically improves a user's mood, the blanket of happiness makes it hard to concentrate on anything real. Joywires are illegal on many worlds, and are known for destroying whole cultures.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Painstopper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Painstopper&amp;quot;,&lt;br /&gt;
    label = &amp;quot;painstopper&amp;quot;,&lt;br /&gt;
    description = [[A brain implant which inhibits nociception, or pain sensation. While it does allow the user to accomplish more, it turns out pain has a purpose. When you don't feel it, you can get hurt really bad really easily.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:PsychoidBrewing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychoidBrewing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychoid brewing&amp;quot;,&lt;br /&gt;
    description = [[Prepare psychoid leaves into a mildly euphoria-inducing and addictive tea at the campfire or cooking stove.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;TribalStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 0.00,&lt;br /&gt;
    researchViewY = 1.40,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:TreeSowing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TreeSowing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tree sowing&amp;quot;,&lt;br /&gt;
    description = [[Sow the local biome's natural trees in your fields.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    researchViewX = 0.00,&lt;br /&gt;
    researchViewY = 0.00,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;TribalStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Brewing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Brewing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;beer brewing&amp;quot;,&lt;br /&gt;
    description = [[Build a brewery and fermenting vats to transform hops into tasty, tasty beer.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    researchViewX = 0.00,&lt;br /&gt;
    researchViewY = 3.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ComplexFurniture&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    label = &amp;quot;complex furniture&amp;quot;,&lt;br /&gt;
    description = [[Build complex furniture like beds, end tables, dining chairs, armchairs, dressers, tool cabinets, billiard tables, and poker tables, vents, sarcophagi, and more.]],&lt;br /&gt;
    baseCost = 300,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    researchViewX = 1.00,&lt;br /&gt;
    researchViewY = 4.25,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;ClassicStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:PassiveCooler&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PassiveCooler&amp;quot;,&lt;br /&gt;
    label = &amp;quot;passive cooler&amp;quot;,&lt;br /&gt;
    description = [[Make passive coolers, to cool indoor spaces without using electricity.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;ClassicStart&amp;quot;,&lt;br /&gt;
      &amp;quot;TribalStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 0.00,&lt;br /&gt;
    researchViewY = 2.10,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Stonecutting&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Stonecutting&amp;quot;,&lt;br /&gt;
    label = &amp;quot;stonecutting&amp;quot;,&lt;br /&gt;
    description = [[Cut rock chunks into stone blocks for use in construction. Build beautiful stone tile floors or ugly concrete walkways.]],&lt;br /&gt;
    baseCost = 300,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;ClassicStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 0.00,&lt;br /&gt;
    researchViewY = 4.25,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ComplexClothing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;complex clothing&amp;quot;,&lt;br /&gt;
    description = [[Tailor complicated garments like pants, dusters, and cowboy hats.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    researchViewX = 1.00,&lt;br /&gt;
    researchViewY = 2.80,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;ClassicStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:DrugProduction&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DrugProduction&amp;quot;,&lt;br /&gt;
    label = &amp;quot;drug production&amp;quot;,&lt;br /&gt;
    description = [[Build a drug lab for basic drug synthesis. Further research is required to make specific drugs.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    researchViewX = 3.00,&lt;br /&gt;
    researchViewY = 0.00,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Cocoa&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cocoa&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cocoa&amp;quot;,&lt;br /&gt;
    description = [[Sow cocoa trees to create your own delicious chocolate. Eating chocolate fulfills the need for recreation, and it's valuable on the market too.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    researchViewX = 1.00,&lt;br /&gt;
    researchViewY = 0.00,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;TreeSowing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Devilstrand&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Devilstrand&amp;quot;,&lt;br /&gt;
    label = &amp;quot;devilstrand&amp;quot;,&lt;br /&gt;
    description = [[Plant devilstrand, a slow-growing mushroom that yields an exceptionally tough, heat-resistant plant fiber.]],&lt;br /&gt;
    baseCost = 800,&lt;br /&gt;
    techLevel = &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    researchViewX = 0.00,&lt;br /&gt;
    researchViewY = 2.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:CarpetMaking&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CarpetMaking&amp;quot;,&lt;br /&gt;
    label = &amp;quot;carpet making&amp;quot;,&lt;br /&gt;
    description = [[Weave beautiful carpets from cloth.]],&lt;br /&gt;
    baseCost = 800,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    researchViewX = 1.00,&lt;br /&gt;
    researchViewY = 2.10,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Pemmican&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Pemmican&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pemmican&amp;quot;,&lt;br /&gt;
    description = [[Make pemmican, a preserved mixture of meat and plant matter that doesn't go bad for a long time. Great for traveling.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;TribalStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 1.00,&lt;br /&gt;
    researchViewY = 1.40,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Smithing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smithing&amp;quot;,&lt;br /&gt;
    description = [[Build smithies for crafting metal weapons like knives, gladii, and maces. Work metal into clean, beautiful floor tiles.]],&lt;br /&gt;
    baseCost = 700,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    researchViewX = 1.00,&lt;br /&gt;
    researchViewY = 3.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:RecurveBow&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RecurveBow&amp;quot;,&lt;br /&gt;
    label = &amp;quot;recurve bow&amp;quot;,&lt;br /&gt;
    description = [[Build the recurve bow, an effective and inexpensive ranged weapon.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;TribalStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 0.00,&lt;br /&gt;
    researchViewY = 0.70,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:PsychiteRefining&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychiteRefining&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychite refining&amp;quot;,&lt;br /&gt;
    description = [[Refine psychoid leaves into flake and yayo, different forms of the euphoric psychite drug.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;DrugProduction&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 4.00,&lt;br /&gt;
    researchViewY = 0.40,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:WakeUpProduction&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WakeUpProduction&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wake-up production&amp;quot;,&lt;br /&gt;
    description = [[Synthesize wake-up, a work performance-enhancing drug which replaces the need for sleep.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;DrugProduction&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 4.00,&lt;br /&gt;
    researchViewY = 1.10,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:GoJuiceProduction&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GoJuiceProduction&amp;quot;,&lt;br /&gt;
    label = &amp;quot;go-juice production&amp;quot;,&lt;br /&gt;
    description = [[Produce go-juice, a synthetic combat-performance-enhancing drug which improves shooting, melee, and movement ability, and dulls pain.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;DrugProduction&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 4.00,&lt;br /&gt;
    researchViewY = 1.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:PenoxycylineProduction&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PenoxycylineProduction&amp;quot;,&lt;br /&gt;
    label = &amp;quot;penoxycyline production&amp;quot;,&lt;br /&gt;
    description = [[Produce penoxycyline, a disease prevention drug which blocks plague, malaria, and more before they start.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;DrugProduction&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 4.00,&lt;br /&gt;
    researchViewY = 2.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:LongBlades&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;LongBlades&amp;quot;,&lt;br /&gt;
    label = &amp;quot;long blades&amp;quot;,&lt;br /&gt;
    description = [[Craft longswords and spears.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 2.00,&lt;br /&gt;
    researchViewY = 3.15,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:PlateArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PlateArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;plate armor&amp;quot;,&lt;br /&gt;
    description = [[Smith suits of plate armor from metal or wood. This heavy armor noticeably slows movement, but protects very effectively.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
      &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 2.00,&lt;br /&gt;
    researchViewY = 2.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Greatbow&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_1.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Greatbow&amp;quot;,&lt;br /&gt;
    label = &amp;quot;greatbow&amp;quot;,&lt;br /&gt;
    description = [[Craft greatbows for killing enemies at great range.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;RecurveBow&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 1.00,&lt;br /&gt;
    researchViewY = 0.70,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Electricity&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    label = &amp;quot;electricity&amp;quot;,&lt;br /&gt;
    description = [[Harness the power of electricity for a hundred different tasks.]],&lt;br /&gt;
    baseCost = 1600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;ClassicStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 5.00,&lt;br /&gt;
    researchViewY = 2.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Batteries&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Batteries&amp;quot;,&lt;br /&gt;
    label = &amp;quot;battery&amp;quot;,&lt;br /&gt;
    description = [[Build batteries for storing electricity.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 6.00,&lt;br /&gt;
    researchViewY = 1.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:BiofuelRefining&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BiofuelRefining&amp;quot;,&lt;br /&gt;
    label = &amp;quot;biofuel refining&amp;quot;,&lt;br /&gt;
    description = [[Build biofuel refineries to make chemfuel from biological matter like wood or foodstuffs.]],&lt;br /&gt;
    baseCost = 700,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 7.00,&lt;br /&gt;
    researchViewY = 2.60,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:WatermillGenerator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WatermillGenerator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;watermill generator&amp;quot;,&lt;br /&gt;
    description = [[Build watermill generators on rivers to generate a steady supply of power.]],&lt;br /&gt;
    baseCost = 700,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 7.00,&lt;br /&gt;
    researchViewY = 1.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:NutrientPaste&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;NutrientPaste&amp;quot;,&lt;br /&gt;
    label = &amp;quot;nutrient paste&amp;quot;,&lt;br /&gt;
    description = [[Build nutrient paste dispensers which efficiently produce edible meals from raw nutritive feedstocks, while requiring no labor at all.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 8.00,&lt;br /&gt;
    researchViewY = 1.20,&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;ClassicStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:SolarPanels&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SolarPanels&amp;quot;,&lt;br /&gt;
    label = &amp;quot;solar panel&amp;quot;,&lt;br /&gt;
    description = [[Build solar panels for electricity generation.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 7.00,&lt;br /&gt;
    researchViewY = 1.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:AirConditioning&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AirConditioning&amp;quot;,&lt;br /&gt;
    label = &amp;quot;air conditioning&amp;quot;,&lt;br /&gt;
    description = [[Build coolers to make people comfortable in hot weather, or to construct freezers for storing perishable goods.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;ClassicStart&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 6.00,&lt;br /&gt;
    researchViewY = 2.60,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Autodoors&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Autodoors&amp;quot;,&lt;br /&gt;
    label = &amp;quot;autodoor&amp;quot;,&lt;br /&gt;
    description = [[Build autodoors which automatically open when someone approaches, without slowing anyone down.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 6.00,&lt;br /&gt;
    researchViewY = 1.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Hydroponics&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Hydroponics&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hydroponics&amp;quot;,&lt;br /&gt;
    description = [[Build hydroponics basins to rapidly grow crops indoors regardless of the terrain or weather outside.]],&lt;br /&gt;
    baseCost = 700,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 6.00,&lt;br /&gt;
    researchViewY = 0.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:TubeTelevision&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TubeTelevision&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tube television&amp;quot;,&lt;br /&gt;
    description = [[Produce tube televisions for recreational watching.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 9.00,&lt;br /&gt;
    researchViewY = 0.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:PackagedSurvivalMeal&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PackagedSurvivalMeal&amp;quot;,&lt;br /&gt;
    label = &amp;quot;packaged survival meal&amp;quot;,&lt;br /&gt;
    description = [[Produce packaged survival meals which never go bad. Great for traveling.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;NutrientPaste&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 9.00,&lt;br /&gt;
    researchViewY = 1.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Firefoam&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Firefoam&amp;quot;,&lt;br /&gt;
    label = &amp;quot;firefoam&amp;quot;,&lt;br /&gt;
    description = [[Construct firefoam poppers, automatic fire-safety devices which spread fire-retardant foam in response to encroaching flames.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 8.00,&lt;br /&gt;
    researchViewY = 1.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:IEDs&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;IEDs&amp;quot;,&lt;br /&gt;
    label = &amp;quot;IEDs&amp;quot;,&lt;br /&gt;
    description = [[Build improvised traps from any kind of mortar shell.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hideWhen = {&lt;br /&gt;
      trapsDisabled = true,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 7.00,&lt;br /&gt;
    researchViewY = 0.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:GeothermalPower&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GeothermalPower&amp;quot;,&lt;br /&gt;
    label = &amp;quot;geothermal power&amp;quot;,&lt;br /&gt;
    description = [[Build geothermal power plants on top of steam geysers, for uninterrupted power.]],&lt;br /&gt;
    baseCost = 3200,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 8.00,&lt;br /&gt;
    researchViewY = 2.60,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:SterileMaterials&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SterileMaterials&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sterile materials&amp;quot;,&lt;br /&gt;
    description = [[Construct sterile tiles to make cleanrooms for safer and more effective medical treatment, research, and cooking.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 8.00,&lt;br /&gt;
    researchViewY = 0.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ColoredLights&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ColoredLights&amp;quot;,&lt;br /&gt;
    label = &amp;quot;colored lights&amp;quot;,&lt;br /&gt;
    description = [[Construct colored lights for decorative purposes. Cosmetic only.]],&lt;br /&gt;
    baseCost = 300,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 9.00,&lt;br /&gt;
    researchViewY = 1.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Machining&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    label = &amp;quot;machining&amp;quot;,&lt;br /&gt;
    description = [[Build machining tables to craft guns, grenades, flak armor, and to shred dead mechanoids for resources.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
      &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 6.00,&lt;br /&gt;
    researchViewY = 3.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:SmokepopBelt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmokepopBelt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smokepop packs&amp;quot;,&lt;br /&gt;
    description = [[Build smokepop packs which allow the wearer to deploy a defensive smokescreen.]],&lt;br /&gt;
    baseCost = 300,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 7.00,&lt;br /&gt;
    researchViewY = 4.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Prosthetics&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prosthetics&amp;quot;,&lt;br /&gt;
    description = [[Build inexpensive prosthetic body parts to replace lost limbs. Requires a skilled doctor to attach.]],&lt;br /&gt;
    baseCost = 600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 8.00,&lt;br /&gt;
    researchViewY = 4.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Gunsmithing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gunsmithing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gunsmithing&amp;quot;,&lt;br /&gt;
    description = [[Craft simple manually-operated guns like revolvers, pump shotguns, bolt-action rifles, and incendiary launchers.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 7.00,&lt;br /&gt;
    researchViewY = 3.40,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:FlakArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FlakArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flak armor&amp;quot;,&lt;br /&gt;
    description = [[Craft clothing with metal armor sewn in to resist bullets and explosions. This weighty armor slows movement slightly.]],&lt;br /&gt;
    baseCost = 1200,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;PlateArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 7.00,&lt;br /&gt;
    researchViewY = 4.10,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Mortars&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mortars&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mortars&amp;quot;,&lt;br /&gt;
    description = [[Build mortars which can lob shells long distances - even over walls.]],&lt;br /&gt;
    baseCost = 2000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Gunsmithing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hideWhen = {&lt;br /&gt;
      mortarsDisabled = true,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 8.00,&lt;br /&gt;
    researchViewY = 4.10,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:BlowbackOperation&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BlowbackOperation&amp;quot;,&lt;br /&gt;
    label = &amp;quot;blowback operation&amp;quot;,&lt;br /&gt;
    description = [[Craft low-power blowback-operated guns like autopistols and machine pistols.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Gunsmithing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 8.00,&lt;br /&gt;
    researchViewY = 3.40,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:GasOperation&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GasOperation&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gas operation&amp;quot;,&lt;br /&gt;
    description = [[Craft high-power guns like chain shotguns, LMGs, and heavy SMGs.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;BlowbackOperation&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 9.00,&lt;br /&gt;
    researchViewY = 4.10,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:GunTurrets&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_2_Electricity.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GunTurrets&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gun turrets&amp;quot;,&lt;br /&gt;
    description = [[Produce simple automated gun turrets.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;BlowbackOperation&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hideWhen = {&lt;br /&gt;
      turretsDisabled = true,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 9.00,&lt;br /&gt;
    researchViewY = 3.40,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:MicroelectronicsBasics&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    label = &amp;quot;microelectronics&amp;quot;,&lt;br /&gt;
    description = [[Work with complex microelectronics. This unlocks the hi-tech research bench and comms console.]],&lt;br /&gt;
    baseCost = 3000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 10.00,&lt;br /&gt;
    researchViewY = 2.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:FlatscreenTelevision&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FlatscreenTelevision&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flatscreen television&amp;quot;,&lt;br /&gt;
    description = [[Produce high-resolution flatscreen televisions for greater enjoyment.]],&lt;br /&gt;
    baseCost = 2000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;TubeTelevision&amp;quot;,&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 11.00,&lt;br /&gt;
    researchViewY = 0.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:MoisturePump&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MoisturePump&amp;quot;,&lt;br /&gt;
    label = &amp;quot;moisture pump&amp;quot;,&lt;br /&gt;
    description = [[Construct moisture pumps, which very slowly normalize the moisture in the ground around them. They can turn wet ground dry and convert soft sand into normal sand.]],&lt;br /&gt;
    baseCost = 1200,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 12.00,&lt;br /&gt;
    researchViewY = 0.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:HospitalBed&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HospitalBed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hospital bed&amp;quot;,&lt;br /&gt;
    description = [[Construct hospital beds which improve medical outcomes.]],&lt;br /&gt;
    baseCost = 1200,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;SterileMaterials&amp;quot;,&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 12.00,&lt;br /&gt;
    researchViewY = 1.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:DeepDrilling&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DeepDrilling&amp;quot;,&lt;br /&gt;
    label = &amp;quot;deep drilling&amp;quot;,&lt;br /&gt;
    description = [[Build deep drills for extracting resources from underground. You'll need a ground-penetrating scanner to find the resources.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 12.00,&lt;br /&gt;
    researchViewY = 2.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:GroundPenetratingScanner&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GroundPenetratingScanner&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ground-penetrating scanner&amp;quot;,&lt;br /&gt;
    description = [[Build ground-penetrating scanners that can detect drillable resources under the surface. Requires an advanced component to construct.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;DeepDrilling&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 13.00,&lt;br /&gt;
    researchViewY = 2.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:TransportPod&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TransportPod&amp;quot;,&lt;br /&gt;
    label = &amp;quot;transport pod&amp;quot;,&lt;br /&gt;
    description = [[Construct launchable transport pods that you can use to send people and supplies long distances across the planet's surface. Can be used for raiding, travel, sending gifts, and more.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;BiofuelRefining&amp;quot;,&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 11.00,&lt;br /&gt;
    researchViewY = 2.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:MedicineProduction&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MedicineProduction&amp;quot;,&lt;br /&gt;
    label = &amp;quot;medicine production&amp;quot;,&lt;br /&gt;
    description = [[Produce standard industrial-tech medicine by combining herbal medicine, neutroamine, and cloth.]],&lt;br /&gt;
    baseCost = 1500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;DrugProduction&amp;quot;,&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 11.00,&lt;br /&gt;
    researchViewY = 0.00,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:LongRangeMineralScanner&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;LongRangeMineralScanner&amp;quot;,&lt;br /&gt;
    label = &amp;quot;long-range mineral scanner&amp;quot;,&lt;br /&gt;
    description = [[Construct long-range mineral scanners your researchers can use to detect precious minerals across the planet. Can be tuned to find a specific mineral. Requires advanced components to construct.]],&lt;br /&gt;
    baseCost = 2000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 12.00,&lt;br /&gt;
    researchViewY = 0.00,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ShieldBelt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShieldBelt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shields&amp;quot;,&lt;br /&gt;
    description = [[Build wearable shield gear. Shields use momentum-repulsion technology to prevent projectiles from traversing the field boundry.]],&lt;br /&gt;
    baseCost = 1000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 11.00,&lt;br /&gt;
    researchViewY = 1.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:PrecisionRifling&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PrecisionRifling&amp;quot;,&lt;br /&gt;
    label = &amp;quot;precision rifling&amp;quot;,&lt;br /&gt;
    description = [[Craft precisely-machined guns like assault rifles and sniper rifles.]],&lt;br /&gt;
    baseCost = 1400,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;GasOperation&amp;quot;,&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 11.00,&lt;br /&gt;
    researchViewY = 3.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:HeavyTurrets&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HeavyTurrets&amp;quot;,&lt;br /&gt;
    label = &amp;quot;autocannon turret&amp;quot;,&lt;br /&gt;
    description = [[Produce the heavy autocannon turret.]],&lt;br /&gt;
    baseCost = 1600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;GunTurrets&amp;quot;,&lt;br /&gt;
      &amp;quot;GasOperation&amp;quot;,&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    hideWhen = {&lt;br /&gt;
      turretsDisabled = true,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 11.00,&lt;br /&gt;
    researchViewY = 3.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:MultibarrelWeapons&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_3_Microelectronics.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MultibarrelWeapons&amp;quot;,&lt;br /&gt;
    label = &amp;quot;multibarrel weapons&amp;quot;,&lt;br /&gt;
    description = [[Assemble miniguns.]],&lt;br /&gt;
    baseCost = 2600,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;GasOperation&amp;quot;,&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 11.00,&lt;br /&gt;
    researchViewY = 4.60,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:MultiAnalyzer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;multi-analyzer&amp;quot;,&lt;br /&gt;
    description = [[Build multi-analyzers which increase research speed and allow higher-level research projects.]],&lt;br /&gt;
    baseCost = 4000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 13.00,&lt;br /&gt;
    researchViewY = 2.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:VitalsMonitor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;VitalsMonitor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;vitals monitor&amp;quot;,&lt;br /&gt;
    description = [[Build vitals monitors which improve medical outcomes when placed next to hospital beds.]],&lt;br /&gt;
    baseCost = 2500,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
      &amp;quot;HospitalBed&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 14.00,&lt;br /&gt;
    researchViewY = 1.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Fabrication&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    label = &amp;quot;fabrication&amp;quot;,&lt;br /&gt;
    description = [[Build fabrication benches, capable of high-tech projects ranging from component assembly to power armor construction.]],&lt;br /&gt;
    baseCost = 4000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 14.00,&lt;br /&gt;
    researchViewY = 2.90,&lt;br /&gt;
    discoveredLetterTitle = &amp;quot;About: Getting advanced components&amp;quot;,&lt;br /&gt;
    discoveredLetterText = &amp;quot;You now have the technology to build a fabrication bench - but it also requires some advanced components to get started. You can collect advanced components several ways:\n\n  -All outlander settlements sell advanced components. Send a caravan to buy some.\n  -Some visiting traders sell advanced components. Invite or wait for them.\n  -Some quests are rewarded with advanced components.&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:AdvancedFabrication&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AdvancedFabrication&amp;quot;,&lt;br /&gt;
    label = &amp;quot;advanced fabrication&amp;quot;,&lt;br /&gt;
    description = [[Fabricate advanced components from standard components and other materials.]],&lt;br /&gt;
    baseCost = 4000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 16.00,&lt;br /&gt;
    researchViewY = 2.90,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Cryptosleep&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cryptosleep&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cryptosleep casket&amp;quot;,&lt;br /&gt;
    description = [[Construct cryptosleep caskets, which can put living beings in a state of indefinite suspended animation.]],&lt;br /&gt;
    baseCost = 2000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 14.00,&lt;br /&gt;
    researchViewY = 2.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ReconArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ReconArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;recon armor&amp;quot;,&lt;br /&gt;
    description = [[Craft recon armor, a light powered armor suit used by scout troops who need protection on the move. Note that these also require advanced components.]],&lt;br /&gt;
    baseCost = 6000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 15.00,&lt;br /&gt;
    researchViewY = 1.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:PoweredArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PoweredArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;marine armor&amp;quot;,&lt;br /&gt;
    description = [[Build marine armor, a general-use powered armor suit used by high-tech shock troops. Note that these also require advanced components.]],&lt;br /&gt;
    baseCost = 6000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;ReconArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 16.00,&lt;br /&gt;
    researchViewY = 1.50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ChargedShot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChargedShot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pulse-charged munitions&amp;quot;,&lt;br /&gt;
    description = [[Build weapons which fire pulse-charged munitions for extra damage. Note that these also require advanced components.]],&lt;br /&gt;
    baseCost = 3000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;PrecisionRifling&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 15.00,&lt;br /&gt;
    researchViewY = 3.8,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Bionics&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bionics&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bionic replacements&amp;quot;,&lt;br /&gt;
    description = [[Build high-tech bionic body parts to replace lost limbs and eyes. Requires a skilled doctor to attach.]],&lt;br /&gt;
    baseCost = 2000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 16.00,&lt;br /&gt;
    researchViewY = 3.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:SniperTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_4_MultiAnalyzer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SniperTurret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;uranium slug turret&amp;quot;,&lt;br /&gt;
    description = [[Produce the armor-penetrating uranium slug turret. It fires uranium slugs which tear through plasteel like paper, but it's less effective at close range.]],&lt;br /&gt;
    baseCost = 3000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;HeavyTurrets&amp;quot;,&lt;br /&gt;
      &amp;quot;PrecisionRifling&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hideWhen = {&lt;br /&gt;
      turretsDisabled = true,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 14.00,&lt;br /&gt;
    researchViewY = 3.60,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ShipResearchProjectBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ShipResearchProjectBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_5_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tags = {&lt;br /&gt;
      &amp;quot;ShipRelated&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ShipBasics&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShipResearchProjectBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_5_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipBasics&amp;quot;,&lt;br /&gt;
    label = &amp;quot;starflight basics&amp;quot;,&lt;br /&gt;
    description = [[Construct the structural and supportive elements of a starship. This is the first step in building a ship to leave this star system.]],&lt;br /&gt;
    baseCost = 4000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;AdvancedFabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 18.00,&lt;br /&gt;
    researchViewY = 2.90,&lt;br /&gt;
    discoveredLetterTitle = &amp;quot;About: Launching the ship&amp;quot;,&lt;br /&gt;
    discoveredLetterText = &amp;quot;Escaping from this planet - it would be freedom at last, and maybe a return home.\n\nBut also incredibly dangerous.\n\nMany desperate souls want off this planet. Ship reactors take 15 days to charge up. Once you begin that process, the ship reactor will emit an energy signature detectable from thousands of kilometers away. Raiders will flock to attack you in waves, with an intensity you've never seen. Mechanoids are also known to be attracted to such energy signatures for their own mysterious reasons.\n\nIt won't start until you activate your ship's reactor, but when it does, it'll be ferocious. You'll need to stockpile resources, weapons, and defenses for the onslaught if you hope to escape alive.&amp;quot;,&lt;br /&gt;
    discoveredLetterDisabledWhen = {&lt;br /&gt;
      bigThreatsDisabled = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ShipCryptosleep&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShipResearchProjectBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_5_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipCryptosleep&amp;quot;,&lt;br /&gt;
    label = &amp;quot;vacuum cryptosleep casket&amp;quot;,&lt;br /&gt;
    description = [[Construct hardened cryptosleep caskets tough enough to be exposed to vacuum, for transporting people on the years-long journey between stars.]],&lt;br /&gt;
    baseCost = 2800,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;ShipBasics&amp;quot;,&lt;br /&gt;
      &amp;quot;Cryptosleep&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 19.00,&lt;br /&gt;
    researchViewY = 2.20,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ShipReactor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShipResearchProjectBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_5_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipReactor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;starship reactor&amp;quot;,&lt;br /&gt;
    description = [[Build a long-duration nuclear reactor to power a starship. Note that reactors have a long startup process that will attract raiders.]],&lt;br /&gt;
    baseCost = 6000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;ShipBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 19.00,&lt;br /&gt;
    researchViewY = 3.60,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ShipEngine&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShipResearchProjectBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_5_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipEngine&amp;quot;,&lt;br /&gt;
    label = &amp;quot;Johnson-Tanaka drive&amp;quot;,&lt;br /&gt;
    description = [[Construct a Johnson-Tanaka drive for a ship. The JT drive can push you to other stars by leveraging quantum scale effects to beam momentum to distant stars. Of course, as with all starships, it still takes many years to get anywhere.]],&lt;br /&gt;
    baseCost = 6000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;ShipBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 19.00,&lt;br /&gt;
    researchViewY = 4.85,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ShipComputerCore&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShipResearchProjectBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_5_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipComputerCore&amp;quot;,&lt;br /&gt;
    label = &amp;quot;machine persuasion&amp;quot;,&lt;br /&gt;
    description = [[Build a reward-signal system to persuade an existing persona core into serving as a ship's machine captain. Since people sleep during interstellar travel, a persona core is necessary to handle the complex decisions of a years-long starflight.]],&lt;br /&gt;
    baseCost = 3000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;ShipBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 19.00,&lt;br /&gt;
    researchViewY = 1.15,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ShipSensorCluster&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShipResearchProjectBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_5_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipSensorCluster&amp;quot;,&lt;br /&gt;
    label = &amp;quot;starflight sensors&amp;quot;,&lt;br /&gt;
    description = [[Construct long-range sensors for a starship. These sensors are essential for navigation, communication, and threat avoidance.]],&lt;br /&gt;
    baseCost = 4000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;ShipBasics&amp;quot;,&lt;br /&gt;
      &amp;quot;LongRangeMineralScanner&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 19.00,&lt;br /&gt;
    researchViewY = 0.00,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AncientConcreteBarrier&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ancient.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AncientConcreteBarrier&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ancient concrete barrier&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    description = [[A traffic management solution from long ago.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    pathCostIgnoreRepeat = true,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 500,&lt;br /&gt;
      Beauty = -10,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      WorkToBuild = 600,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 15,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AncientLamppost&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ancient.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AncientLamppost&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ancient lamppost&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    description = [[Road lighting from long ago. No longer functional.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      WorkToBuild = 400,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.25,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 15,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Urn&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ancient.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Urn&amp;quot;,&lt;br /&gt;
    label = &amp;quot;urn&amp;quot;,&lt;br /&gt;
    description = [[An ancient-style decorative container.]],&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 40,&lt;br /&gt;
      WorkToBuild = 500,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 20,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SculptureBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;SculptureBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Art.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building_Art&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsArt&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      SellPriceFactor = 1.10,&lt;br /&gt;
      MeditationFocusStrength = 0.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtSculpture&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_Sculpture&amp;quot;,&lt;br /&gt;
        canBeEnjoyedAsArt = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Artistic&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_Quality&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            curve = {&lt;br /&gt;
              points = {&lt;br /&gt;
                {0, 0.12},&lt;br /&gt;
                {1, 0.16},&lt;br /&gt;
                {2, 0.20},&lt;br /&gt;
                {3, 0.22},&lt;br /&gt;
                {4, 0.24},&lt;br /&gt;
                {5, 0.26},&lt;br /&gt;
                {6, 0.28},&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_BuildingDefsWithQuality&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              &amp;quot;SculptureSmall&amp;quot;,&lt;br /&gt;
              &amp;quot;SculptureLarge&amp;quot;,&lt;br /&gt;
              &amp;quot;SculptureGrand&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 8,&lt;br /&gt;
            focusPerQuality = {&lt;br /&gt;
              points = {&lt;br /&gt;
                {0, 0.0},&lt;br /&gt;
                {1, 0.0},&lt;br /&gt;
                {2, 0.01},&lt;br /&gt;
                {3, 0.01},&lt;br /&gt;
                {4, 0.01},&lt;br /&gt;
                {5, 0.02},&lt;br /&gt;
                {6, 0.02},&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerSculpture&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerSculptureAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Art&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Artistic&amp;quot;,&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedSculpture&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Sculpt&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Sculpt&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableSculpting&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultIngredientFilter = {&lt;br /&gt;
        categories = {&lt;br /&gt;
          &amp;quot;Root&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        disallowedThingDefs = {&lt;br /&gt;
          &amp;quot;Gold&amp;quot;,&lt;br /&gt;
          &amp;quot;Silver&amp;quot;,&lt;br /&gt;
          &amp;quot;Plasteel&amp;quot;,&lt;br /&gt;
          &amp;quot;Jade&amp;quot;,&lt;br /&gt;
          &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SculptureSmall&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SculptureBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Art.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SculptureSmall&amp;quot;,&lt;br /&gt;
    label = &amp;quot;small sculpture&amp;quot;,&lt;br /&gt;
    description = [[A torso-sized piece of material sculpted into an artistic form.]],&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 90,&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      Beauty = 50,&lt;br /&gt;
      WorkToMake = 18000,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SculptureLarge&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SculptureBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Art.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SculptureLarge&amp;quot;,&lt;br /&gt;
    label = &amp;quot;large sculpture&amp;quot;,&lt;br /&gt;
    description = [[A person-sized piece of material sculpted into an artistic form.]],&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Mass = 7,&lt;br /&gt;
      Beauty = 100,&lt;br /&gt;
      WorkToMake = 30000,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 100,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SculptureGrand&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SculptureBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Art.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SculptureGrand&amp;quot;,&lt;br /&gt;
    label = &amp;quot;grand sculpture&amp;quot;,&lt;br /&gt;
    description = [[A huge sculpture sized to dominate a room.]],&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      Beauty = 400,&lt;br /&gt;
      Mass = 28,&lt;br /&gt;
      WorkToMake = 105000,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 400,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Snowman&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Art.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Snowman&amp;quot;,&lt;br /&gt;
    label = &amp;quot;snowman&amp;quot;,&lt;br /&gt;
    description = [[A set of large snowballs piled and shaped to resemble a person. People make these for the fun of it.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    pathCostIgnoreRepeat = false,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      Beauty = 4,&lt;br /&gt;
      WorkToBuild = 1000,&lt;br /&gt;
      MarketValue = 0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompMelter&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      repairable = false,&lt;br /&gt;
      isInert = true,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BuildingBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Base.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    leaveResourcesWhenKilled = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      SellPriceFactor = 0.70,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CrashedShipPartBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;CrashedShipPartBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    size = {6, 3},&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 1200,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Beauty = -200,&lt;br /&gt;
    },&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 4,&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
      ComponentSpacer = 1,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      combatPower = 250,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicDronerShipPart&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;CrashedShipPartBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicDronerShipPart&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship part (psychic droner)&amp;quot;,&lt;br /&gt;
    description = [[An ancient ship part, torn off of a craft of unknown origin. It might be thousands of years old.\n\nThis one contains a psychic disturbance device. Using incomprehensible archotechnologies, it generates a psychic signal that drives people and animals mad within a wide radius around itself.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition_PsychicEmanation&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        conditionDef = &amp;quot;PsychicDroner&amp;quot;,&lt;br /&gt;
        compClass = &amp;quot;CompCauseGameCondition_PsychicEmanation&amp;quot;,&lt;br /&gt;
        worldRange = 1,&lt;br /&gt;
        droneLevelIncreaseInterval = 150000,&lt;br /&gt;
        droneLevel = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AnimalInsanityPulser&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DefoliatorShipPart&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;CrashedShipPartBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DefoliatorShipPart&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship part (defoliator)&amp;quot;,&lt;br /&gt;
    description = [[An ancient ship part, torn off of a craft of unknown origin. It might be thousands of years old.\n\nThis one contains a device which annihilates plant life near itself without directly affecting flesh creatures. These kinds of weapons are sometimes scattered across farmlands or forests to remove the enemy's food supply and hiding places without permanently ruining the territory. They're usually associated with orbital-drop mechanoid armies.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_PlantHarmRadius&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        radiusPerDayCurve = {&lt;br /&gt;
          points = {&lt;br /&gt;
            &amp;quot;0  , 5&amp;quot;,&lt;br /&gt;
            &amp;quot;1.5, 18&amp;quot;,&lt;br /&gt;
            &amp;quot;6  , 40&amp;quot;,&lt;br /&gt;
            &amp;quot;20 , 100&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShipChunk&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipChunk&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship chunk&amp;quot;,&lt;br /&gt;
    description = [[A chunk of a spacecraft. Can be deconstructed to yield useful resources.]],&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.50,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
      WorkToBuild = 12000,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 2,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentIndustrial = 11,&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      alwaysDeconstructible = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FurnitureBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;FurnitureBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FurnitureWithQualityBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;FurnitureBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArtableFurnitureBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ArtableFurnitureBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtFurniture&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_Furniture&amp;quot;,&lt;br /&gt;
        minQualityForArtistic = &amp;quot;Excellent&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArtableFurnitureRegardlessOfQualityBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ArtableFurnitureRegardlessOfQualityBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtFurniture&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_Furniture&amp;quot;,&lt;br /&gt;
        minQualityForArtistic = &amp;quot;Awful&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SleepingSpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SleepingSpot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sleeping spot&amp;quot;,&lt;br /&gt;
    description = [[Designates a spot on the ground where people should sleep. Not comfortable.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Bed&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
      Comfort = 0.4,&lt;br /&gt;
      SurgerySuccessChanceFactor = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DoubleSleepingSpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DoubleSleepingSpot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;double sleeping spot&amp;quot;,&lt;br /&gt;
    description = [[Designates a spot on the ground where two people should sleep together. Not comfortable.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Bed&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
      Comfort = 0.4,&lt;br /&gt;
      SurgerySuccessChanceFactor = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BedBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BedBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building_Bed&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BedWithQualityBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BedWithQualityBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BedBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArtableBedBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ArtableBedBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BedWithQualityBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtFurniture&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_Furniture&amp;quot;,&lt;br /&gt;
        minQualityForArtistic = &amp;quot;Excellent&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bed&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BedWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bed&amp;quot;,&lt;br /&gt;
    description = [[A cozy mattress and sheets on a frame for resting.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;EndTable&amp;quot;,&lt;br /&gt;
          &amp;quot;Dresser&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 140,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      WorkToBuild = 800,&lt;br /&gt;
      Mass = 30,&lt;br /&gt;
      BedRestEffectiveness = 1,&lt;br /&gt;
      Comfort = 0.75,&lt;br /&gt;
      ImmunityGainSpeedFactor = 1.07,&lt;br /&gt;
      SurgerySuccessChanceFactor = 1,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 45,&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_healPerDay = 4,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DoubleBed&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArtableBedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DoubleBed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;double bed&amp;quot;,&lt;br /&gt;
    description = [[A simple double-wide bed that fits two people.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;EndTable&amp;quot;,&lt;br /&gt;
          &amp;quot;Dresser&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      WorkToBuild = 1500,&lt;br /&gt;
      Mass = 50,&lt;br /&gt;
      Comfort = 0.75,&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
      BedRestEffectiveness = 1,&lt;br /&gt;
      ImmunityGainSpeedFactor = 1.07,&lt;br /&gt;
      SurgerySuccessChanceFactor = 1,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 85,&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_healPerDay = 4,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    leaveResourcesWhenKilled = true,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RoyalBed&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArtableBedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RoyalBed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;royal bed&amp;quot;,&lt;br /&gt;
    description = [[A luxurious gold-inlaid bed fit for the highborn. Very comfy and beautiful, it is a work of art in itself. Fits two.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;EndTable&amp;quot;,&lt;br /&gt;
          &amp;quot;Dresser&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      WorkToBuild = 50000,&lt;br /&gt;
      Mass = 60,&lt;br /&gt;
      Beauty = 75,&lt;br /&gt;
      BedRestEffectiveness = 1.05,&lt;br /&gt;
      Comfort = 0.90,&lt;br /&gt;
      ImmunityGainSpeedFactor = 1.07,&lt;br /&gt;
      SurgerySuccessChanceFactor = 1,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 100,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Gold = 50,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_healPerDay = 4,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    leaveResourcesWhenKilled = true,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HospitalBed&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BedWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HospitalBed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hospital bed&amp;quot;,&lt;br /&gt;
    description = [[A bed specially designed for use in hospitals. Adjustable for a patient and festooned with built-in equipment, it improves medical outcomes over normal beds.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      WorkToBuild = 2800,&lt;br /&gt;
      Mass = 35,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      BedRestEffectiveness = 1,&lt;br /&gt;
      Comfort = 0.80,&lt;br /&gt;
      ImmunityGainSpeedFactor = 1.11,&lt;br /&gt;
      MedicalTendQualityOffset = 0.10,&lt;br /&gt;
      SurgerySuccessChanceFactor = 1.1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;VitalsMonitor&amp;quot;,&lt;br /&gt;
          &amp;quot;EndTable&amp;quot;,&lt;br /&gt;
          &amp;quot;Dresser&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 40,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 80,&lt;br /&gt;
      ComponentIndustrial = 5,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_healPerDay = 10,&lt;br /&gt;
      bed_defaultMedical = true,&lt;br /&gt;
      buildingSizeCategory = &amp;quot;Small&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    leaveResourcesWhenKilled = true,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;HospitalBed&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bedroll&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BedWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bedroll&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bedroll&amp;quot;,&lt;br /&gt;
    description = [[A simple bed that lays on the floor, usually made of cloth or leather, often lined with fur. It is lightweight and can be rolled up for easy transport, but it is not quite as comfortable as a typical bed. Caravans can use bedrolls while traveling for better sleep.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Mass = 2.5,&lt;br /&gt;
      BedRestEffectiveness = 0.95,&lt;br /&gt;
      ImmunityGainSpeedFactor = 1.05,&lt;br /&gt;
      Comfort = 0.68,&lt;br /&gt;
      WorkToBuild = 600,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;Dresser&amp;quot;,&lt;br /&gt;
          &amp;quot;EndTable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 40,&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_healPerDay = 4,&lt;br /&gt;
      bed_caravansCanUse = true,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BedrollDouble&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BedWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BedrollDouble&amp;quot;,&lt;br /&gt;
    label = &amp;quot;double bedroll&amp;quot;,&lt;br /&gt;
    description = [[A simple double-wide bed that lays on the floor, usually made of cloth or leather, often lined with fur. It is lightweight and can be rolled up for easy transport, but it is not quite as comfortable as a typical bed. Caravans can use bedrolls while traveling for better sleep.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Mass = 4.5,&lt;br /&gt;
      BedRestEffectiveness = 0.95,&lt;br /&gt;
      ImmunityGainSpeedFactor = 1.05,&lt;br /&gt;
      Comfort = 0.68,&lt;br /&gt;
      WorkToBuild = 1100,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;Dresser&amp;quot;,&lt;br /&gt;
          &amp;quot;EndTable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 85,&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_healPerDay = 4,&lt;br /&gt;
      bed_caravansCanUse = true,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AnimalSleepingSpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AnimalSleepingSpot&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building_Bed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;animal sleeping spot&amp;quot;,&lt;br /&gt;
    description = [[Designates a spot on the ground where animals should sleep.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
      SurgerySuccessChanceFactor = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_humanlike = false,&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AnimalSleepingBox&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AnimalSleepingBox&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building_Bed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;animal sleeping box&amp;quot;,&lt;br /&gt;
    description = [[A small box for animals to sleep in. Fits smaller animals like chickens, cats, or small dogs.]],&lt;br /&gt;
    fillPercent = 0.15,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 25,&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_humanlike = false,&lt;br /&gt;
      bed_maxBodySize = 0.55,&lt;br /&gt;
      bed_healPerDay = 4,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      WorkToBuild = 180,&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      BedRestEffectiveness = 0.93,&lt;br /&gt;
      Comfort = 0.60,&lt;br /&gt;
      ImmunityGainSpeedFactor = 1.05,&lt;br /&gt;
      SurgerySuccessChanceFactor = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AnimalBed&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AnimalBed&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building_Bed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;animal bed&amp;quot;,&lt;br /&gt;
    description = [[A soft bed for animals to sleep on. Fits any animal.]],&lt;br /&gt;
    fillPercent = 0.15,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 40,&lt;br /&gt;
    building = {&lt;br /&gt;
      bed_humanlike = false,&lt;br /&gt;
      bed_healPerDay = 4,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 140,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      WorkToBuild = 400,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      BedRestEffectiveness = 1,&lt;br /&gt;
      Comfort = 0.75,&lt;br /&gt;
      ImmunityGainSpeedFactor = 1.07,&lt;br /&gt;
      SurgerySuccessChanceFactor = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Bed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Stool&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Stool&amp;quot;,&lt;br /&gt;
    label = &amp;quot;stool&amp;quot;,&lt;br /&gt;
    description = [[A simple platform on which to sit. Not very comfortable, but much better than nothing. Can be used at tables, work stations, and elsewhere.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      WorkToBuild = 450,&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 0,&lt;br /&gt;
      Comfort = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 25,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    building = {&lt;br /&gt;
      isSittable = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DiningChair&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArtableFurnitureBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DiningChair&amp;quot;,&lt;br /&gt;
    label = &amp;quot;dining chair&amp;quot;,&lt;br /&gt;
    description = [[A comfortable and attractive chair. Can be used at tables, work stations, and elsewhere.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToBuild = 8000,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 8,&lt;br /&gt;
      Comfort = 0.70,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 45,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    building = {&lt;br /&gt;
      isSittable = true,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Armchair&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Armchair&amp;quot;,&lt;br /&gt;
    label = &amp;quot;armchair&amp;quot;,&lt;br /&gt;
    description = [[A large, soft, comfy seat. Great for relaxation. Can be used at tables, work stations, and elsewhere.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      WorkToBuild = 14000,&lt;br /&gt;
      Mass = 18,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 4,&lt;br /&gt;
      Comfort = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 110,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    building = {&lt;br /&gt;
      isSittable = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TableBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;TableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    description = [[People eat off tables when chairs are placed facing them.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = true,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TableGatherSpotBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;TableBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;TableGatherSpotBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompGatherSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EndTable&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EndTable&amp;quot;,&lt;br /&gt;
    label = &amp;quot;end table&amp;quot;,&lt;br /&gt;
    description = [[A small bedside table which makes nearby beds a little bit more comfortable. Must be placed directly adjacent to the head of the bed. Placing more than one end table near the same bed has no effect.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      WorkToBuild = 1000,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 3,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    costStuffCount = 30,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Facility&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statOffsets = {&lt;br /&gt;
          Comfort = 0.05,&lt;br /&gt;
        },&lt;br /&gt;
        maxSimultaneous = 1,&lt;br /&gt;
        mustBePlacedAdjacentCardinalToBedHead = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Table1x2c&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TableGatherSpotBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Table1x2c&amp;quot;,&lt;br /&gt;
    label = &amp;quot;table (1x2)&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      WorkToBuild = 750,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    costStuffCount = 28,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Table2x2c&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TableGatherSpotBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Table2x2c&amp;quot;,&lt;br /&gt;
    label = &amp;quot;table (2x2)&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToBuild = 1500,&lt;br /&gt;
      Mass = 10,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Table2x4c&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TableGatherSpotBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Table2x4c&amp;quot;,&lt;br /&gt;
    label = &amp;quot;table (2x4)&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      WorkToBuild = 3000,&lt;br /&gt;
      Mass = 20,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 4},&lt;br /&gt;
    costStuffCount = 95,&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingSizeCategory = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Table3x3c&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TableGatherSpotBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Table3x3c&amp;quot;,&lt;br /&gt;
    label = &amp;quot;table (3x3)&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 175,&lt;br /&gt;
      WorkToBuild = 3300,&lt;br /&gt;
      Mass = 22,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 3},&lt;br /&gt;
    costStuffCount = 100,&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingSizeCategory = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PlantPot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PlantPot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;plant pot&amp;quot;,&lt;br /&gt;
    description = [[Plant decorative flowers here to improve the mood of people nearby.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_PlantGrower&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      WorkToBuild = 250,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 20,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    building = {&lt;br /&gt;
      defaultPlantToGrow = &amp;quot;Plant_Daylily&amp;quot;,&lt;br /&gt;
      sowTag = &amp;quot;Decorative&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TorchLamp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TorchLamp&amp;quot;,&lt;br /&gt;
    label = &amp;quot;torch lamp&amp;quot;,&lt;br /&gt;
    description = [[A wooden torch for lighting an area. People need light to move and work at full speed. Can be automatically refueled with wood. Produces a small amount of heat.]],&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    fillPercent = 0.15,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      WorkToBuild = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      MeditationFocusStrength = 0.0,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 20,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelConsumptionRate = 2.0,&lt;br /&gt;
        fuelCapacity = 20.0,&lt;br /&gt;
        fuelConsumptionPerTickInRain = 0.0006,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        initialFuelPercent = 1,&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 10,&lt;br /&gt;
        glowColor = {252, 187, 113, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 3.5,&lt;br /&gt;
        heatPushMaxTemperature = 23,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_FireOverlay&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fireSize = 0.4,&lt;br /&gt;
        offset = {0, 0, 0.2},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_Lit&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.1,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_BuildingDefsLit&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              &amp;quot;Campfire&amp;quot;,&lt;br /&gt;
              &amp;quot;TorchLamp&amp;quot;,&lt;br /&gt;
              &amp;quot;Brazier&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offsetPerBuilding = 0.01,&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 8,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerFlame&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerFlameAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:LampBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;LampBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      WorkToBuild = 300,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:StandingLampBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;StandingLampBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;LampBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 30,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:StandingLamp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StandingLampBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;StandingLamp&amp;quot;,&lt;br /&gt;
    label = &amp;quot;standing lamp&amp;quot;,&lt;br /&gt;
    description = [[An electrical standing lamp that lights an area. People need light to move and work at full speed.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 12,&lt;br /&gt;
        glowColor = {217, 217, 208, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:StandingLamp_Red&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StandingLampBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;StandingLamp_Red&amp;quot;,&lt;br /&gt;
    label = &amp;quot;standing lamp (red)&amp;quot;,&lt;br /&gt;
    description = [[A standing lamp that lights an area in red.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 12,&lt;br /&gt;
        glowColor = {217, 80, 80, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;ColoredLights&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:StandingLamp_Green&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StandingLampBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;StandingLamp_Green&amp;quot;,&lt;br /&gt;
    label = &amp;quot;standing lamp (green)&amp;quot;,&lt;br /&gt;
    description = [[A standing lamp that lights an area in green.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 12,&lt;br /&gt;
        glowColor = {80, 217, 80, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;ColoredLights&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:StandingLamp_Blue&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StandingLampBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;StandingLamp_Blue&amp;quot;,&lt;br /&gt;
    label = &amp;quot;standing lamp (blue)&amp;quot;,&lt;br /&gt;
    description = [[A standing lamp that lights an area in blue.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 12,&lt;br /&gt;
        glowColor = {80, 80, 217, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;ColoredLights&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SunLamp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LampBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SunLamp&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sun lamp&amp;quot;,&lt;br /&gt;
    description = [[An industrial lamp which lights an area brightly enough to grow crops, but consumes a huge amount of power. Automatically turns itself off at night.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_SunLamp&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 330,&lt;br /&gt;
      Mass = 4.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        overlightRadius = 7.0,&lt;br /&gt;
        glowRadius = 14,&lt;br /&gt;
        glowColor = {370, 370, 370, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 2900,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Schedule&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        startTime = 0.25,&lt;br /&gt;
        endTime = 0.8,&lt;br /&gt;
        offMessage = &amp;quot;Off for plant resting period&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Shelf&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Shelf&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shelf&amp;quot;,&lt;br /&gt;
    description = [[A shelf for storing miscellaneous items. Items stored in this will not affect room beauty and they won't deteriorate, even if outside.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Storage&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 30,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 8,&lt;br /&gt;
      WorkToBuild = 600,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 1},&lt;br /&gt;
    building = {&lt;br /&gt;
      preventDeteriorationOnTop = true,&lt;br /&gt;
      ignoreStoredThingsBeauty = true,&lt;br /&gt;
      defaultStorageSettings = {&lt;br /&gt;
        priority = &amp;quot;Important&amp;quot;,&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;Weapons&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Dresser&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArtableFurnitureBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Dresser&amp;quot;,&lt;br /&gt;
    label = &amp;quot;dresser&amp;quot;,&lt;br /&gt;
    description = [[A dresser. Gives a small comfort bonus to all nearby beds. Placing more than one dresser near the same bed has no effect.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      Mass = 15,&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 5,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 1},&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Facility&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statOffsets = {&lt;br /&gt;
          Comfort = 0.05,&lt;br /&gt;
        },&lt;br /&gt;
        maxSimultaneous = 1,&lt;br /&gt;
        maxDistance = 6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HorseshoesPin&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HorseshoesPin&amp;quot;,&lt;br /&gt;
    label = &amp;quot;horseshoes pin&amp;quot;,&lt;br /&gt;
    description = [[A simple ancient game played with a horseshoes and a large pin in the ground. Players toss horseshoes to try to get them to land on the pin. It's relaxing, and trains shooting skills.]],&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsJoy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      WorkToBuild = 100,&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      JoyGainFactor = 1,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Gaming_Dexterity&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 10,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HoopstoneRing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HoopstoneRing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hoopstone ring&amp;quot;,&lt;br /&gt;
    description = [[A simple ancient game played with stones and a large ring in the ground. Players try to toss stones through the ring from a distance. It's relaxing, and trains shooting skills.]],&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsJoy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToBuild = 100,&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      JoyGainFactor = 1,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Gaming_Dexterity&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 20,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:GameOfUrBoard&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GameOfUrBoard&amp;quot;,&lt;br /&gt;
    label = &amp;quot;Game-of-Ur board&amp;quot;,&lt;br /&gt;
    description = [[Dating from 2500BC, this exciting yet infuriating board game can be played by one or two people. It trains intellectual skills.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Gaming_Cerebral&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 90,&lt;br /&gt;
      WorkToBuild = 6000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
      JoyGainFactor = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 35,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChessTable&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChessTable&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chess table&amp;quot;,&lt;br /&gt;
    description = [[The ancient game of kings. Fun for a few hours here and there, even playing alone. It trains intellectual skills.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Gaming_Cerebral&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToBuild = 8000,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 4,&lt;br /&gt;
      JoyGainFactor = 1,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 70,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PokerTable&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PokerTable&amp;quot;,&lt;br /&gt;
    label = &amp;quot;poker table&amp;quot;,&lt;br /&gt;
    description = [[A table designed for playing gambling card games like poker. A great way to test your strategic skills and a bit of luck.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Gaming_Cerebral&amp;quot;,&lt;br /&gt;
      buildingSizeCategory = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      WorkToBuild = 10000,&lt;br /&gt;
      Mass = 30,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 0,&lt;br /&gt;
      JoyGainFactor = 1.3,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Cloth = 50,&lt;br /&gt;
      WoodLog = 25,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BilliardsTable&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BilliardsTable&amp;quot;,&lt;br /&gt;
    label = &amp;quot;billiards table&amp;quot;,&lt;br /&gt;
    description = [[A soft-topped bounded table for playing a variety of billiards-type games. It trains shooting ability.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Gaming_Dexterity&amp;quot;,&lt;br /&gt;
      buildingSizeCategory = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      WorkToBuild = 12000,&lt;br /&gt;
      Mass = 60,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 0,&lt;br /&gt;
      JoyGainFactor = 1.3,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 3},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 80,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Cloth = 80,&lt;br /&gt;
      WoodLog = 30,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TubeTelevision&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TubeTelevision&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tube television&amp;quot;,&lt;br /&gt;
    description = [[A cathode ray tube display for showing moving pictures with sound. Even on the rimworlds, there is often an old transmitter running something at least marginally interesting.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsJoy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 10000,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 14,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      JoyGainFactor = 1.2,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 80,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Television&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Television&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;TubeTelevision&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FlatscreenTelevision&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FlatscreenTelevision&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flatscreen television&amp;quot;,&lt;br /&gt;
    description = [[A high-tech flat-screen television with crystal-clear image and rich color. Picks up transmissions from ancient satellites and ubiquitous data cards.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsJoy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 140,&lt;br /&gt;
      ComponentIndustrial = 16,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 40000,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Mass = 8,&lt;br /&gt;
      JoyGainFactor = 1.4,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    size = {2, 1},&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;FlatscreenTelevision&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Television&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 330,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Television&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MegascreenTelevision&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MegascreenTelevision&amp;quot;,&lt;br /&gt;
    label = &amp;quot;megascreen television&amp;quot;,&lt;br /&gt;
    description = [[A huge, high-tech television. Gigantic, hyper-vibrant images almost leap out of the screen. Very entertaining. Picks up transmissions from ancient satellites and ubiquitous data cards.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsJoy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 260,&lt;br /&gt;
      ComponentIndustrial = 22,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 80000,&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Mass = 10,&lt;br /&gt;
      JoyGainFactor = 1.6,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Television&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 450,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Television&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Telescope&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Joy.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Telescope&amp;quot;,&lt;br /&gt;
    label = &amp;quot;telescope&amp;quot;,&lt;br /&gt;
    description = [[A telescope for doing amateur astronomy. It's a relaxing hobby for a certain kind of person. Can only be used outdoors.]],&lt;br /&gt;
    fillPercent = 0.15,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsJoy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;Telescope&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 50,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      MarketValue = 350,&lt;br /&gt;
      Mass = 7.5,&lt;br /&gt;
      JoyGainFactor = 1.2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:OrbitalTradeBeacon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;OrbitalTradeBeacon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;orbital trade beacon&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building_OrbitalTradeBeacon&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      WorkToBuild = 800,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
    },&lt;br /&gt;
    description = [[Required for orbital trading. You can only sell goods to orbital traders if they're near an orbital trade beacon. Can be placed indoors.]],&lt;br /&gt;
    fillPercent = 0.15,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 40,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CommsConsole&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CommsConsole&amp;quot;,&lt;br /&gt;
    label = &amp;quot;comms console&amp;quot;,&lt;br /&gt;
    description = [[Allows radio contact with other factions and orbital traders.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_CommsConsole&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      WorkToBuild = 2200,&lt;br /&gt;
      Flammability = 0.6,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 2},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 120,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FirefoamPopper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FirefoamPopper&amp;quot;,&lt;br /&gt;
    label = &amp;quot;firefoam popper&amp;quot;,&lt;br /&gt;
    description = [[When it detects fire, this safety device pops and sprays a fire-retardant foam in a circular field around itself. Can also be triggered manually.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 9.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Extinguish&amp;quot;,&lt;br /&gt;
        startWickHitPointsPercent = -1,&lt;br /&gt;
        startWickOnDamageTaken = {&lt;br /&gt;
          &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        postExplosionSpawnThingDef = &amp;quot;Filth_FireFoam&amp;quot;,&lt;br /&gt;
        postExplosionSpawnChance = 1,&lt;br /&gt;
        postExplosionSpawnThingCount = 1,&lt;br /&gt;
        applyDamageToExplosionCellsNeighbors = true,&lt;br /&gt;
        explosionEffect = &amp;quot;ExtinguisherExplosion&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Usable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        useJob = &amp;quot;TriggerFirefoamPopper&amp;quot;,&lt;br /&gt;
        useLabel = &amp;quot;Trigger firefoam popper&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffect&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompUseEffect_StartWick&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ProximityFuse&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        target = &amp;quot;Fire&amp;quot;,&lt;br /&gt;
        radius = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      WorkToBuild = 1500,&lt;br /&gt;
      Mass = 10,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = -8,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.30,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Firefoam&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MoisturePump&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MoisturePump&amp;quot;,&lt;br /&gt;
    label = &amp;quot;moisture pump&amp;quot;,&lt;br /&gt;
    description = [[Very slowly equalizes moisture in nearby terrain, converting marshes or shallow water into dry ground, and soft sand into normal sand. Does not affect deep water.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 150,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TerrainPumpDry&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        soundWorking = &amp;quot;MoisturePump_Ambience&amp;quot;,&lt;br /&gt;
        radius = 6.9,&lt;br /&gt;
        daysToRadius = 60,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      WorkToBuild = 1500,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = -8,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.15,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;MoisturePump&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:GroundPenetratingScanner&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GroundPenetratingScanner&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ground-penetrating scanner&amp;quot;,&lt;br /&gt;
    description = [[A sensor unit used by researchers to search for buried resources. The chance to find a resource depends on the operator's research ability. It consumes a lot of electricity. If you find a buried resource, you'll need to use deep drills to extract it. It doesn't work under a roof.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 150,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
      ComponentSpacer = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 700,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ScannerMineralsDeep&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        scanSpeedStat = &amp;quot;ResearchSpeed&amp;quot;,&lt;br /&gt;
        scanFindMtbDays = 3,&lt;br /&gt;
        scanFindGuaranteedDays = 6,&lt;br /&gt;
        soundWorking = &amp;quot;ScannerGroundPenetrating_Ambience&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      WorkToBuild = 12000,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Beauty = -8,&lt;br /&gt;
    },&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    size = {3, 3},&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;GroundPenetratingScanner&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:LongRangeMineralScanner&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;LongRangeMineralScanner&amp;quot;,&lt;br /&gt;
    label = &amp;quot;long-range mineral scanner&amp;quot;,&lt;br /&gt;
    description = [[A lateral sensor unit used by researchers to detect a specific type of mineral across the planet. The chance to find a resource depends on the operator's research ability. This sensor can be tuned to target a specific resource type. It consumes a lot of electricity. If you find a resource, you'll need to travel to collect it.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 200,&lt;br /&gt;
      ComponentIndustrial = 6,&lt;br /&gt;
      ComponentSpacer = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 700,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_LongRangeMineralScanner&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        scanSpeedStat = &amp;quot;ResearchSpeed&amp;quot;,&lt;br /&gt;
        scanFindMtbDays = 4,&lt;br /&gt;
        scanFindGuaranteedDays = 8,&lt;br /&gt;
        soundWorking = &amp;quot;ScannerLongRangeMineral_Ambience&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      WorkToBuild = 1000,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Beauty = -8,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    size = {3, 3},&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;LongRangeMineralScanner&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PodLauncher&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PodLauncher&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pod launcher&amp;quot;,&lt;br /&gt;
    description = [[A fueling port for launching one transport pod. Pod launchers can launch as a group - but the launchers must be placed adjacent to each other.]],&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1.0,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      WorkToBuild = 3000,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 50,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelCapacity = 150.0,&lt;br /&gt;
        targetFuelLevelConfigurable = true,&lt;br /&gt;
        initialConfigurableTargetFuelLevel = 75,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        consumeFuelOnlyWhenUsed = true,&lt;br /&gt;
        autoRefuelPercent = 1,&lt;br /&gt;
        showFuelGizmo = true,&lt;br /&gt;
        drawOutOfFuelOverlay = false,&lt;br /&gt;
        drawFuelGaugeInMap = true,&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;TransportPod&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TransportPod&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TransportPod&amp;quot;,&lt;br /&gt;
    label = &amp;quot;transport pod&amp;quot;,&lt;br /&gt;
    description = [[A launchable sub-orbital cargo pod capable of carrying people, items, or animals. Can be used for sending gifts, transporting people or supplies, surprise attacks, or reinforcing battles.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    altitudeLayer = &amp;quot;BuildingOnTop&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      WorkToBuild = 1600,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Transporter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        restEffectiveness = 0.8,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Launchable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        skyfallerLeaving = &amp;quot;DropPodLeaving&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;TransportPod&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MultiAnalyzer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;multi-analyzer&amp;quot;,&lt;br /&gt;
    description = [[Increases research speed when placed near hi-tech research bench and unlocks new research projects. Each research bench can only use one multi-analyzer.]],&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      WorkToBuild = 10000,&lt;br /&gt;
      Mass = 60,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      Plasteel = 50,&lt;br /&gt;
      Gold = 20,&lt;br /&gt;
      ComponentIndustrial = 8,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Facility&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statOffsets = {&lt;br /&gt;
          ResearchSpeedFactor = 0.1,&lt;br /&gt;
        },&lt;br /&gt;
        maxSimultaneous = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:VitalsMonitor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;VitalsMonitor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;vitals monitor&amp;quot;,&lt;br /&gt;
    description = [[Increases medical tend quality, surgery success chance, and immunity gain speed when placed directly adjacent to a hospital bed. Only works for hospital beds - normal beds will not benefit. Attaching more than one vitals monitor to the same bed will have no effect.]],&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;VitalsMonitor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.2,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToBuild = 6000,&lt;br /&gt;
      Mass = 20,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 50,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 80,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Facility&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statOffsets = {&lt;br /&gt;
          MedicalTendQualityOffset = 0.07,&lt;br /&gt;
          ImmunityGainSpeedFactor = 0.02,&lt;br /&gt;
          SurgerySuccessChanceFactor = 0.05,&lt;br /&gt;
        },&lt;br /&gt;
        maxSimultaneous = 1,&lt;br /&gt;
        mustBePlacedAdjacent = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ToolCabinet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tool cabinet&amp;quot;,&lt;br /&gt;
    description = [[Increases work speed when placed near a workbench. One workbench use to up to two tool cabinets.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToBuild = 1800,&lt;br /&gt;
      Mass = 20,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 1},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 200,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Facility&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statOffsets = {&lt;br /&gt;
          WorkTableWorkSpeedFactor = 0.06,&lt;br /&gt;
        },&lt;br /&gt;
        maxSimultaneous = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Grave&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Grave&amp;quot;,&lt;br /&gt;
    label = &amp;quot;grave&amp;quot;,&lt;br /&gt;
    description = [[A decent final resting place. Colonists will visit full graves to gain meditative joy.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Grave&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 800,&lt;br /&gt;
      MeditationFocusStrength = 0.06,&lt;br /&gt;
    },&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
      preventDeteriorationInside = true,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
      fixedStorageSettings = {&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;Corpses&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      defaultStorageSettings = {&lt;br /&gt;
        priority = &amp;quot;Important&amp;quot;,&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;CorpsesHumanlike&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Diggable&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Grave&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Morbid&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_GraveFull&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.10,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_GraveCorpseRelationship&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.10,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_NearbyGraves&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              &amp;quot;Grave&amp;quot;,&lt;br /&gt;
              &amp;quot;Sarcophagus&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offsetPerBuilding = 0.01,&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 4,&lt;br /&gt;
            focusPerFullGrave = 0.01,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerGrave&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerGraveAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Sarcophagus&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Sarcophagus&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sarcophagus&amp;quot;,&lt;br /&gt;
    description = [[An ornamented burial receptacle for the honored dead.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Sarcophagus&amp;quot;,&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    building = {&lt;br /&gt;
      preventDeteriorationInside = true,&lt;br /&gt;
      fixedStorageSettings = {&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;Corpses&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      defaultStorageSettings = {&lt;br /&gt;
        priority = &amp;quot;Important&amp;quot;,&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;CorpsesHumanlike&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          specialFiltersToDisallow = {&lt;br /&gt;
            &amp;quot;AllowCorpsesStranger&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2400,&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      MeditationFocusStrength = 0.10,&lt;br /&gt;
      Beauty = 0,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtSarcophagusPlate&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_SarcophagusPlate&amp;quot;,&lt;br /&gt;
        mustBeFullGrave = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Grave&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Morbid&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_GraveFull&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.10,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_GraveCorpseRelationship&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.10,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_NearbyGraves&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              &amp;quot;Grave&amp;quot;,&lt;br /&gt;
              &amp;quot;Sarcophagus&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offsetPerBuilding = 0.01,&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 4,&lt;br /&gt;
            focusPerFullGrave = 0.01,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerGrave&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerGraveAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 60,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CryptosleepCasket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CryptosleepCasket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cryptosleep casket&amp;quot;,&lt;br /&gt;
    description = [[A self-powered sarcophagus designed to keep a person in a state of suspended animation for many years.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_CryptosleepCasket&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Cryptosleep&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 3200,&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 180,&lt;br /&gt;
      Uranium = 5,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
      ComponentSpacer = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 2.66,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EmptyStateGraphic&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        graphicData = {&lt;br /&gt;
          texPath = &amp;quot;Things/Building/Ship/ShipCryptosleepCasketOpenDoor&amp;quot;,&lt;br /&gt;
          graphicClass = &amp;quot;Graphic_Multi&amp;quot;,&lt;br /&gt;
          drawSize = {1, 2},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AncientCryptosleepCasket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AncientCryptosleepCasket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ancient cryptosleep casket&amp;quot;,&lt;br /&gt;
    description = [[This cryptosleep casket looks like it has been here for a very long time. Who knows what it might contain?]],&lt;br /&gt;
    thingClass = &amp;quot;Building_AncientCryptosleepCasket&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 180,&lt;br /&gt;
      Uranium = 5,&lt;br /&gt;
    },&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 1,&lt;br /&gt;
      Steel = 25,&lt;br /&gt;
      Uranium = 3,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 2.66,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EmptyStateGraphic&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        graphicData = {&lt;br /&gt;
          texPath = &amp;quot;Things/Building/Ship/ShipCryptosleepCasketOpenDoor&amp;quot;,&lt;br /&gt;
          graphicClass = &amp;quot;Graphic_Multi&amp;quot;,&lt;br /&gt;
          drawSize = {1, 2},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MarriageSpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MarriageSpot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;marriage spot&amp;quot;,&lt;br /&gt;
    description = [[Designates a spot where marriage ceremonies will take place. Spectators can watch from either side.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_MarriageSpot&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    size = {2, 1},&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PartySpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PartySpot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;party spot&amp;quot;,&lt;br /&gt;
    description = [[Designates a spot for throwing parties.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CaravanPackingSpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CaravanPackingSpot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;caravan packing spot&amp;quot;,&lt;br /&gt;
    description = [[Designates a spot for forming caravans. Put this near your stockpiles to speed up the caravan loading process.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SteleBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;SteleBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.50,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtFurniture&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_Furniture&amp;quot;,&lt;br /&gt;
        minQualityForArtistic = &amp;quot;Awful&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SteleLarge&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SteleBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SteleLarge&amp;quot;,&lt;br /&gt;
    label = &amp;quot;large stele&amp;quot;,&lt;br /&gt;
    description = [[A tall, thick slab with engravings on the sides. Steles have been used since ancient times to memorialize individuals, battles, and other important events.]],&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      WorkToBuild = 8000,&lt;br /&gt;
      Beauty = 15,&lt;br /&gt;
      MeditationFocusStrength = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 125,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Artistic&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SteleGrand&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SteleBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SteleGrand&amp;quot;,&lt;br /&gt;
    label = &amp;quot;grand stele&amp;quot;,&lt;br /&gt;
    description = [[A towering slab with extensive engravings on the sides. Steles have been used since ancient times to memorialize individuals, battles, and other important events.]],&lt;br /&gt;
    size = {3, 3},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 400,&lt;br /&gt;
      WorkToBuild = 16000,&lt;br /&gt;
      Beauty = 30,&lt;br /&gt;
      MeditationFocusStrength = 0.18,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 250,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Artistic&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BuildingNaturalBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BuildingNaturalBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RockBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingNaturalBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Mineable&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
      isNaturalRock = true,&lt;br /&gt;
      deconstructible = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CollapsedRocks&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CollapsedRocks&amp;quot;,&lt;br /&gt;
    label = &amp;quot;collapsed rocks&amp;quot;,&lt;br /&gt;
    description = [[Collapsed rocks, packed tightly enough to hold up a roof.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 500,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isNaturalRock = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MineableSteel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MineableSteel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;compacted steel&amp;quot;,&lt;br /&gt;
    description = [[The remains of some ancient, collapsed structure. Rich in steel.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 1500,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isResourceRock = true,&lt;br /&gt;
      mineableThing = &amp;quot;Steel&amp;quot;,&lt;br /&gt;
      mineableYield = 40,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MineableSilver&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MineableSilver&amp;quot;,&lt;br /&gt;
    label = &amp;quot;silver ore&amp;quot;,&lt;br /&gt;
    description = [[Rock containing bits of silver.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 1500,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isResourceRock = true,&lt;br /&gt;
      mineableThing = &amp;quot;Silver&amp;quot;,&lt;br /&gt;
      mineableYield = 40,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MineableGold&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MineableGold&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gold ore&amp;quot;,&lt;br /&gt;
    description = [[Rock containing bits of gold.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 1500,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isResourceRock = true,&lt;br /&gt;
      mineableThing = &amp;quot;Gold&amp;quot;,&lt;br /&gt;
      mineableYield = 40,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MineableUranium&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MineableUranium&amp;quot;,&lt;br /&gt;
    label = &amp;quot;uranium ore&amp;quot;,&lt;br /&gt;
    description = [[Rock containing bits of uranium.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 4000,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isResourceRock = true,&lt;br /&gt;
      mineableThing = &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
      mineableYield = 40,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MineablePlasteel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MineablePlasteel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;compacted plasteel&amp;quot;,&lt;br /&gt;
    description = [[Ancient compacted rubble rich in plasteel.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 8000,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isResourceRock = true,&lt;br /&gt;
      mineableThing = &amp;quot;Plasteel&amp;quot;,&lt;br /&gt;
      mineableYield = 40,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MineableJade&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MineableJade&amp;quot;,&lt;br /&gt;
    label = &amp;quot;jade&amp;quot;,&lt;br /&gt;
    description = [[Rock containing bits of jade.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 1500,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isResourceRock = true,&lt;br /&gt;
      mineableThing = &amp;quot;Jade&amp;quot;,&lt;br /&gt;
      mineableYield = 40,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MineableComponentsIndustrial&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MineableComponentsIndustrial&amp;quot;,&lt;br /&gt;
    label = &amp;quot;compacted machinery&amp;quot;,&lt;br /&gt;
    description = [[Ancient machinery, compacted over time. Can be mined for useful components.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 2000,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isResourceRock = true,&lt;br /&gt;
      mineableThing = &amp;quot;ComponentIndustrial&amp;quot;,&lt;br /&gt;
      mineableYield = 2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SteamGeyser&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingNaturalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SteamGeyser&amp;quot;,&lt;br /&gt;
    label = &amp;quot;steam geyser&amp;quot;,&lt;br /&gt;
    description = [[A natural source of high-pressure steam. Geothermal generators can harness the steam power. Rooms built over this will rapidly cook.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_SteamGeyser&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Floor&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    building = {&lt;br /&gt;
      isEdifice = false,&lt;br /&gt;
      deconstructible = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Hive&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingNaturalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Hive&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hive&amp;quot;,&lt;br /&gt;
    description = [[A hive of giant insects. If activated, it will spawn additional insects and hives over time, as well as valuable insect jelly.]],&lt;br /&gt;
    thingClass = &amp;quot;Hive&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 130,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      InsectJelly = 30,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CanBeDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        startsDormant = true,&lt;br /&gt;
        canWakeUpFogged = false,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SpawnerPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        spawnablePawnKinds = {&lt;br /&gt;
          &amp;quot;Megascarab&amp;quot;,&lt;br /&gt;
          &amp;quot;Spelopede&amp;quot;,&lt;br /&gt;
          &amp;quot;Megaspider&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        lordJob = &amp;quot;LordJob_DefendAndExpandHive&amp;quot;,&lt;br /&gt;
        spawnSound = &amp;quot;Hive_Spawn&amp;quot;,&lt;br /&gt;
        initialPawnsPoints = 200,&lt;br /&gt;
        maxSpawnedPawnsPoints = 500,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SelfhealHitpoints&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        ticksPerHeal = 6000,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SpawnerHives&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Spawner&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        thingToSpawn = &amp;quot;InsectJelly&amp;quot;,&lt;br /&gt;
        spawnCount = 20,&lt;br /&gt;
        spawnIntervalRange = { [&amp;quot;&amp;lt;&amp;quot;]=26000, [&amp;quot;&amp;gt;&amp;quot;]=30000 },&lt;br /&gt;
        spawnMaxAdjacent = 40,&lt;br /&gt;
        spawnForbidden = true,&lt;br /&gt;
        saveKeysPrefix = &amp;quot;jelly&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Spawner&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        thingToSpawn = &amp;quot;GlowPod&amp;quot;,&lt;br /&gt;
        spawnCount = 1,&lt;br /&gt;
        spawnIntervalRange = { [&amp;quot;&amp;lt;&amp;quot;]=30000, [&amp;quot;&amp;gt;&amp;quot;]=60000 },&lt;br /&gt;
        spawnMaxAdjacent = 1,&lt;br /&gt;
        saveKeysPrefix = &amp;quot;pod&amp;quot;,&lt;br /&gt;
        inheritFaction = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        heatPerSecond = 6,&lt;br /&gt;
        heatPushMaxTemperature = 38,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SpawnerFilth&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        filthDef = &amp;quot;Filth_Slime&amp;quot;,&lt;br /&gt;
        spawnCountOnSpawn = 10,&lt;br /&gt;
        spawnMtbHours = 4,&lt;br /&gt;
        spawnRadius = 5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Maintainable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        ticksHealthy = 60000,&lt;br /&gt;
        ticksNeedsMaintenance = 60000,&lt;br /&gt;
        damagePerTickRare = 10,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:GlowPod&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingNaturalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GlowPod&amp;quot;,&lt;br /&gt;
    label = &amp;quot;glow pod&amp;quot;,&lt;br /&gt;
    description = [[A bioluminescent pod produced by giant insects. Glows under its own light for a long time, then dies.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSpecial&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      MarketValue = 50,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 6,&lt;br /&gt;
        glowColor = {113, 141, 117, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Lifespan&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        lifespanTicks = 1200000,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RaisedRocks&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;RaisedRocks&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Natural.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RaisedRocks&amp;quot;,&lt;br /&gt;
    label = &amp;quot;raised rocks&amp;quot;,&lt;br /&gt;
    description = [[A fragile wall made of rubble. It will collapse in time.]],&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    building = {&lt;br /&gt;
      isNaturalRock = false,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Lifespan&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        lifespanTicks = 10000,&lt;br /&gt;
        expireEffect = &amp;quot;RaisedRock_Collapse&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PowerConduit&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;PowerConduit&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PowerConduit&amp;quot;,&lt;br /&gt;
    label = &amp;quot;power conduit&amp;quot;,&lt;br /&gt;
    description = [[A bundle of electrical cables for moving power around. Can be placed under walls and other buildings.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
      isEdifice = false,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Conduits&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToBuild = 35,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      Beauty = -2,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTransmitter&amp;quot;,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WaterproofConduit&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PowerConduit&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WaterproofConduit&amp;quot;,&lt;br /&gt;
    label = &amp;quot;waterproof conduit&amp;quot;,&lt;br /&gt;
    description = [[Insulated electrical cables for transmitting power under shallow water.]],&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;ShallowWater&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 10,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PowerSwitch&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PowerSwitch&amp;quot;,&lt;br /&gt;
    label = &amp;quot;power switch&amp;quot;,&lt;br /&gt;
    description = [[Switches power on/off.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_PowerSwitch&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      WorkToBuild = 200,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Beauty = -2,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 15,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTransmitter&amp;quot;,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WoodFiredGenerator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WoodFiredGenerator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wood-fired generator&amp;quot;,&lt;br /&gt;
    description = [[Produces power by consuming wood. Must be periodically loaded with wood fuel by hand.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 1.0,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      WorkToBuild = 2500,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlant&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -1000,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
        soundAmbientProducingPower = &amp;quot;WoodFiredGenerator_Ambience&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelConsumptionRate = 22.0,&lt;br /&gt;
        fuelCapacity = 75.0,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 6,&lt;br /&gt;
        glowColor = {217, 112, 33, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChemfuelPoweredGenerator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChemfuelPoweredGenerator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chemfuel powered generator&amp;quot;,&lt;br /&gt;
    description = [[Produces power by consuming chemfuel. Must be periodically refueled by hand.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 1.0,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      WorkToBuild = 2500,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlant&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -1000,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
        soundAmbientProducingPower = &amp;quot;ChemfuelFiredGenerator_Ambience&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelConsumptionRate = 4.5,&lt;br /&gt;
        fuelCapacity = 30.0,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 6,&lt;br /&gt;
        glowColor = {80, 112, 180, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 0,&lt;br /&gt;
        explosiveExpandPerFuel = 0.95,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        destroyThingOnExplosionSize = 2,&lt;br /&gt;
        startWickHitPointsPercent = 0.333,&lt;br /&gt;
        preExplosionSpawnThingDef = &amp;quot;Filth_Fuel&amp;quot;,&lt;br /&gt;
        preExplosionSpawnChance = 1,&lt;br /&gt;
        wickTicks = { [&amp;quot;&amp;lt;&amp;quot;]=70, [&amp;quot;&amp;gt;&amp;quot;]=150 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WindTurbine&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WindTurbine&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wind turbine&amp;quot;,&lt;br /&gt;
    description = [[A wind-powered electrical generator. Requires a large clear space in front and behind for optimal air flow.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      WorkToBuild = 3300,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Beauty = -12,&lt;br /&gt;
    },&lt;br /&gt;
    size = {7, 2},&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlantWind&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -2300,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Battery&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Battery&amp;quot;,&lt;br /&gt;
    label = &amp;quot;battery&amp;quot;,&lt;br /&gt;
    description = [[Stores electricity for later use. Charged batteries explode when exposed to rain or fire.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Battery&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsPower&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToBuild = 800,&lt;br /&gt;
      Mass = 20,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = -15,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 70,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Battery&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        storedEnergyMax = 600,&lt;br /&gt;
        efficiency = 0.5,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Batteries&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SolarGenerator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SolarGenerator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;solar generator&amp;quot;,&lt;br /&gt;
    description = [[Produces electricity from sunlight. Does not work in the dark or under artificial light.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      WorkToBuild = 2500,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    size = {4, 4},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlantSolar&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -1,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;SolarPanels&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:GeothermalGenerator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GeothermalGenerator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;geothermal generator&amp;quot;,&lt;br /&gt;
    description = [[Produces electricity from geothermal steam geysers. Must be placed on a steam geyser.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 500,&lt;br /&gt;
      WorkToBuild = 12000,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Beauty = -30,&lt;br /&gt;
    },&lt;br /&gt;
    size = {6, 6},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 340,&lt;br /&gt;
      ComponentIndustrial = 8,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlantSteam&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -3600,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;GeothermalPower&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WatermillGenerator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Power.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WatermillGenerator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;watermill generator&amp;quot;,&lt;br /&gt;
    description = [[Produces electricity from a river. Must be placed with its wheel in moving water. If watermills are placed too close together, the turbulence they generate will interfere and reduce power generation.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 400,&lt;br /&gt;
      WorkToBuild = 4000,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    size = {5, 6},&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 280,&lt;br /&gt;
      Steel = 80,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlantWater&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -1100,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
        soundAmbientProducingPower = &amp;quot;WaterMill_Ambience&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = {},&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;WatermillGenerator&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CraftingSpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;crafting spot&amp;quot;,&lt;br /&gt;
    description = [[A place for crafting simple items like knives or bows. Production here is slow because of the lack of tools.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
      WorkTableWorkSpeedFactor = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    building = {&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompReportWorkSpeed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ButcherSpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ButcherSpot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;butcher spot&amp;quot;,&lt;br /&gt;
    description = [[A place for butchering animals. Due to the lack of equipment, butchering here yields only 70% of the meat and leather of each creature.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
      WorkTableEfficiencyFactor = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    building = {&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompReportWorkSpeed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BenchBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsProduction&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 20,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompReportWorkSpeed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TableSculpting&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TableSculpting&amp;quot;,&lt;br /&gt;
    label = &amp;quot;art bench&amp;quot;,&lt;br /&gt;
    description = [[A workbench equipped for creating art.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 50,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2500,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TableButcher&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TableButcher&amp;quot;,&lt;br /&gt;
    label = &amp;quot;butcher table&amp;quot;,&lt;br /&gt;
    description = [[A heavy table for butchering dead creatures into pieces of raw meat.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 20,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Cleanliness = -15,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HandTailoringBench&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HandTailoringBench&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hand tailor bench&amp;quot;,&lt;br /&gt;
    description = [[A workbench for tailoring clothes by hand. Works at 50% of the speed of an electric tailoring bench.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      WorkTableWorkSpeedFactor = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ElectricTailoringBench&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ElectricTailoringBench&amp;quot;,&lt;br /&gt;
    label = &amp;quot;electric tailor bench&amp;quot;,&lt;br /&gt;
    description = [[A workbench with a sewing machine for rapid tailoring of clothes. Can work without electricity at 50% of normal speed.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 50,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2500,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 120,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FueledSmithy&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
    label = &amp;quot;fueled smithy&amp;quot;,&lt;br /&gt;
    description = [[A wood-fueled station for smithing non-mechanical weapons and tools.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 3000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Cleanliness = -3,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelConsumptionRate = 80.0,&lt;br /&gt;
        fuelCapacity = 50.0,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        consumeFuelOnlyWhenUsed = true,&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ElectricSmithy&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
    label = &amp;quot;electric smithy&amp;quot;,&lt;br /&gt;
    description = [[An electric-powered station for smithing non-mechanical weapons and tools.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 3000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Cleanliness = -3,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 210,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TableMachining&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
    label = &amp;quot;machining table&amp;quot;,&lt;br /&gt;
    description = [[A work station for assembling machinery like guns and ammunition, or breaking down dead mechanoids.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 150,&lt;br /&gt;
      ComponentIndustrial = 5,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 3000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Cleanliness = -2,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 350,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 5,&lt;br /&gt;
        glowColor = {73, 123, 138, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ElectricStove&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ElectricStove&amp;quot;,&lt;br /&gt;
    label = &amp;quot;electric stove&amp;quot;,&lt;br /&gt;
    description = [[An electrically-powered stove with an attached countertop for preparing meals.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable_HeatPush&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 80,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
        basePowerConsumption = 350,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isMealSource = true,&lt;br /&gt;
      heatPerTickWhileWorking = 0.10,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FueledStove&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FueledStove&amp;quot;,&lt;br /&gt;
    label = &amp;quot;fueled stove&amp;quot;,&lt;br /&gt;
    description = [[A wood-fueled stove with an attached countertop for preparing meals.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable_HeatPush&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 80,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelConsumptionRate = 160.0,&lt;br /&gt;
        fuelCapacity = 50.0,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        consumeFuelOnlyWhenUsed = true,&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isMealSource = true,&lt;br /&gt;
      heatPerTickWhileWorking = 0.10,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TableStonecutter&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TableStonecutter&amp;quot;,&lt;br /&gt;
    label = &amp;quot;stonecutter's table&amp;quot;,&lt;br /&gt;
    description = [[A work table with saws and chisels for cutting stone chunks into usable blocks.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable_HeatPush&amp;quot;,&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 30,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Stonecutting&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Brewery&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Brewery&amp;quot;,&lt;br /&gt;
    label = &amp;quot;brewery&amp;quot;,&lt;br /&gt;
    description = [[A work station with all the equipment needed to mix wort for beer production. Wort must be fermented to finally become beer.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 120,&lt;br /&gt;
      Steel = 30,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Brewing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DrugLab&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DrugLab&amp;quot;,&lt;br /&gt;
    label = &amp;quot;drug lab&amp;quot;,&lt;br /&gt;
    description = [[A work bench equipped with containers, heaters, and measurement devices for producing various drugs.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 6,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 3500,&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;DrugProduction&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ElectricSmelter&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ElectricSmelter&amp;quot;,&lt;br /&gt;
    label = &amp;quot;electric smelter&amp;quot;,&lt;br /&gt;
    description = [[Extracts usable metal from slag chunks and other mixed metal items. Consumes a lot of power.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable_HeatPush&amp;quot;,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 170,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 3500,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 700,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 6,&lt;br /&gt;
        glowColor = {217, 112, 33, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 9,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      heatPerTickWhileWorking = 0.32,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BiofuelRefinery&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BiofuelRefinery&amp;quot;,&lt;br /&gt;
    label = &amp;quot;biofuel refinery&amp;quot;,&lt;br /&gt;
    description = [[Refines biological matter like wood or plant matter into chemfuel.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = {},&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 2},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 150,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 170,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;BiofuelRefining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FabricationBench&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
    label = &amp;quot;fabrication bench&amp;quot;,&lt;br /&gt;
    description = [[A workbench equipped with advanced tools for producing technological marvels from simpler materials.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      WorkToBuild = 5000,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = {},&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    size = {5, 2},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 200,&lt;br /&gt;
      ComponentIndustrial = 12,&lt;br /&gt;
      ComponentSpacer = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;ToolCabinet&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 250,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SimpleResearchBench&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SimpleResearchBench&amp;quot;,&lt;br /&gt;
    label = &amp;quot;simple research bench&amp;quot;,&lt;br /&gt;
    description = [[A simple bench with writing implements and simple measurement devices. Researchers work here to discover new things.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_ResearchBench&amp;quot;,&lt;br /&gt;
    size = {3, 2},&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 25,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      WorkToBuild = 2800,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      ResearchSpeedFactor = 0.75,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HiTechResearchBench&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BenchBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hi-tech research bench&amp;quot;,&lt;br /&gt;
    description = [[A high-tech bench with computers and electronic measurement equipment. Allows more rapid research, and unlocks advanced research projects.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_ResearchBench&amp;quot;,&lt;br /&gt;
    size = {5, 2},&lt;br /&gt;
    minifiedDef = {},&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 150,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentIndustrial = 10,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      WorkToBuild = 5000,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      ResearchSpeedFactor = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 250,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectedByFacilities&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        linkableFacilities = {&lt;br /&gt;
          &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ElectricCrematorium&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ElectricCrematorium&amp;quot;,&lt;br /&gt;
    label = &amp;quot;electric crematorium&amp;quot;,&lt;br /&gt;
    description = [[A huge stone crematorium which vaporizes corpses with extremely high temperatures.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable_HeatPush&amp;quot;,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 150,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 4500,&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      Cleanliness = -20,&lt;br /&gt;
      Beauty = -10,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 2},&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 250,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 6,&lt;br /&gt;
        glowColor = {217, 112, 33, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 12,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      heatPerTickWhileWorking = 0.32,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HydroponicsBasin&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HydroponicsBasin&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hydroponics basin&amp;quot;,&lt;br /&gt;
    description = [[An artificial nutrient bath for growing plants. The nutrients pumps must work continuously; the plants will die if power is cut.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_PlantGrower&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;LowPlant&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.30,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2800,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Cleanliness = -3,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 4},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      defaultPlantToGrow = &amp;quot;Plant_Rice&amp;quot;,&lt;br /&gt;
      sowTag = &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 70,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Hydroponics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FermentingBarrel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FermentingBarrel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;fermenting barrel&amp;quot;,&lt;br /&gt;
    description = [[A barrel for fermenting raw wort into beer.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_FermentingBarrel&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.45,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsProduction&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 600,&lt;br /&gt;
      Mass = 10,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 10,&lt;br /&gt;
      WoodLog = 30,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TemperatureRuinable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        minSafeTemperature = -1,&lt;br /&gt;
        maxSafeTemperature = 32,&lt;br /&gt;
        progressPerDegreePerTick = 0.00001,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Brewing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DeepDrill&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DeepDrill&amp;quot;,&lt;br /&gt;
    label = &amp;quot;deep drill&amp;quot;,&lt;br /&gt;
    description = [[A deep-crust drilling rig for extracting minerals from deep under the surface. Use a ground-penetrating scanner to detect the resources. This drill will yield stone chunks if no resources are present. Can be repositioned freely.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsProduction&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;DeepDrilling&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      WorkToBuild = 10000,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Beauty = -25,&lt;br /&gt;
      Mass = 35,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_DeepDrill&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CreatesInfestations&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:NutrientPasteDispenser&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;NutrientPasteDispenser&amp;quot;,&lt;br /&gt;
    label = &amp;quot;nutrient paste dispenser&amp;quot;,&lt;br /&gt;
    description = [[A machine that synthesizes edible nutrient paste from organic feedstocks placed in adjacent hoppers. It consumes less ingredients and time than any other meal production method - but nobody likes eating nutrient paste. Accepts raw food, but not rough plant matter like hay.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_NutrientPasteDispenser&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 2200,&lt;br /&gt;
      MaxHitPoints = 350,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isMealSource = true,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 4},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 90,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;NutrientPaste&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Hopper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Production.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Hopper&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hopper&amp;quot;,&lt;br /&gt;
    description = [[Holds resources for use by machines like nutrient paste dispensers.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Storage&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    building = {&lt;br /&gt;
      fixedStorageSettings = {&lt;br /&gt;
        priority = &amp;quot;Important&amp;quot;,&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;FoodRaw&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          specialFiltersToDisallow = {&lt;br /&gt;
            &amp;quot;AllowPlantFood&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      defaultStorageSettings = {&lt;br /&gt;
        priority = &amp;quot;Important&amp;quot;,&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;FoodRaw&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          disallowedThingDefs = {&lt;br /&gt;
            &amp;quot;Meat_Human&amp;quot;,&lt;br /&gt;
            &amp;quot;Meat_Megaspider&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Production&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 300,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 15,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;NutrientPaste&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Sandbags&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Sandbags&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sandbags&amp;quot;,&lt;br /&gt;
    description = [[Bags of locally-sourced dirt or sand, stacked for use as cover. Sandbags are ugly, but provide better cover than other low objects.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    pathCostIgnoreRepeat = true,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.57,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      Beauty = -10,&lt;br /&gt;
      WorkToBuild = 180,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 5,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Barricade&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Barricade&amp;quot;,&lt;br /&gt;
    label = &amp;quot;barricade&amp;quot;,&lt;br /&gt;
    description = [[A waist-high barrier for use as cover from incoming shots. Barricades are ugly, but provide better cover than other low objects.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    pathCostIgnoreRepeat = true,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.57,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      Beauty = -3,&lt;br /&gt;
      WorkToBuild = 320,&lt;br /&gt;
      Flammability = 1,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 5,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TrapSpike&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TrapSpike&amp;quot;,&lt;br /&gt;
    label = &amp;quot;spike trap&amp;quot;,&lt;br /&gt;
    description = [[Five spikes under tension, connected to a touch-activated trigger. When the victim disturbs the trigger, the spikes spring forth and strike the victim. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_TrapDamager&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSecurity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 2.5,&lt;br /&gt;
      MaxHitPoints = 40,&lt;br /&gt;
      WorkToBuild = 3200,&lt;br /&gt;
      Flammability = 1,&lt;br /&gt;
      Beauty = -18,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
      TrapMeleeDamage = 100,&lt;br /&gt;
      TrapSpringChance = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 45,&lt;br /&gt;
    building = {&lt;br /&gt;
      isTrap = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TrapIEDBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;TrapIEDBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building_TrapExplosive&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSecurity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      MaxHitPoints = 40,&lt;br /&gt;
      WorkToBuild = 1400,&lt;br /&gt;
      Flammability = 1,&lt;br /&gt;
      Beauty = -4,&lt;br /&gt;
      TrapSpringChance = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isTrap = true,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;IEDs&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TrapIED_HighExplosive&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TrapIEDBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TrapIED_HighExplosive&amp;quot;,&lt;br /&gt;
    label = &amp;quot;IED trap&amp;quot;,&lt;br /&gt;
    description = [[A pair of high-explosive shells connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Shell_HighExplosive = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 3.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        startWickHitPointsPercent = 0.2,&lt;br /&gt;
        wickTicks = 15,&lt;br /&gt;
        startWickOnDamageTaken = {&lt;br /&gt;
          &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
          &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
          &amp;quot;ArrowHighVelocity&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TrapIED_Incendiary&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TrapIEDBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TrapIED_Incendiary&amp;quot;,&lt;br /&gt;
    label = &amp;quot;IED incendiary trap&amp;quot;,&lt;br /&gt;
    description = [[A pair of incendiary shells connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Shell_Incendiary = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 3.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        startWickHitPointsPercent = 0.2,&lt;br /&gt;
        wickTicks = 15,&lt;br /&gt;
        startWickOnDamageTaken = {&lt;br /&gt;
          &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
          &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
          &amp;quot;ArrowHighVelocity&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TrapIED_EMP&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TrapIEDBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TrapIED_EMP&amp;quot;,&lt;br /&gt;
    label = &amp;quot;IED EMP trap&amp;quot;,&lt;br /&gt;
    description = [[A pair of EMP shells connected to a trigger which detonates on touch or bullet impact. The explosion can paralyze mechanoids for a few seconds. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Shell_EMP = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 10.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
        startWickHitPointsPercent = 0.2,&lt;br /&gt;
        wickTicks = 15,&lt;br /&gt;
        startWickOnDamageTaken = {&lt;br /&gt;
          &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
          &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
          &amp;quot;ArrowHighVelocity&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TrapIED_Smoke&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TrapIEDBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TrapIED_Smoke&amp;quot;,&lt;br /&gt;
    label = &amp;quot;IED Smoke trap&amp;quot;,&lt;br /&gt;
    description = [[A pair of smoke shells connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Shell_Smoke = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 8.6,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Smoke&amp;quot;,&lt;br /&gt;
        startWickHitPointsPercent = 0.2,&lt;br /&gt;
        postExplosionSpawnThingDef = &amp;quot;Gas_Smoke&amp;quot;,&lt;br /&gt;
        postExplosionSpawnChance = 1,&lt;br /&gt;
        postExplosionSpawnThingCount = 1,&lt;br /&gt;
        wickTicks = 15,&lt;br /&gt;
        startWickOnDamageTaken = {&lt;br /&gt;
          &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
          &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
          &amp;quot;ArrowHighVelocity&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TrapIED_Firefoam&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TrapIEDBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TrapIED_Firefoam&amp;quot;,&lt;br /&gt;
    label = &amp;quot;IED firefoam trap&amp;quot;,&lt;br /&gt;
    description = [[A pair of firefoam shells connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Shell_Firefoam = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 9.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Extinguish&amp;quot;,&lt;br /&gt;
        startWickHitPointsPercent = 0.2,&lt;br /&gt;
        postExplosionSpawnThingDef = &amp;quot;Filth_FireFoam&amp;quot;,&lt;br /&gt;
        postExplosionSpawnChance = 1,&lt;br /&gt;
        postExplosionSpawnThingCount = 3,&lt;br /&gt;
        applyDamageToExplosionCellsNeighbors = true,&lt;br /&gt;
        explosionEffect = &amp;quot;ExtinguisherExplosion&amp;quot;,&lt;br /&gt;
        wickTicks = 15,&lt;br /&gt;
        startWickOnDamageTaken = {&lt;br /&gt;
          &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
          &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
          &amp;quot;ArrowHighVelocity&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TrapIED_AntigrainWarhead&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TrapIEDBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TrapIED_AntigrainWarhead&amp;quot;,&lt;br /&gt;
    label = &amp;quot;IED antigrain warhead trap&amp;quot;,&lt;br /&gt;
    description = [[An antimatter-powered antigrain warhead connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Shell_AntigrainWarhead = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 14.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;BombSuper&amp;quot;,&lt;br /&gt;
        startWickHitPointsPercent = 0.2,&lt;br /&gt;
        chanceToStartFire = 0.22,&lt;br /&gt;
        damageFalloff = true,&lt;br /&gt;
        explosionEffect = &amp;quot;GiantExplosion&amp;quot;,&lt;br /&gt;
        explosionSound = &amp;quot;Explosion_GiantBomb&amp;quot;,&lt;br /&gt;
        wickTicks = 15,&lt;br /&gt;
        startWickOnDamageTaken = {&lt;br /&gt;
          &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
          &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
          &amp;quot;ArrowHighVelocity&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseWeaponTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;BaseWeaponTurret&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;None&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;TurretGun&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseArtilleryWeapon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;BaseArtilleryWeapon&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponTurret&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;Artillery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseArtilleryBuilding&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseArtilleryBuilding&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building_TurretGun&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSecurity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 150,&lt;br /&gt;
      ComponentIndustrial = 6,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Mannable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        manWorkType = &amp;quot;Violent&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      Mass = 30,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      turretBurstWarmupTime = 4.0,&lt;br /&gt;
      turretBurstCooldownTime = 28.0,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Artillery&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Mortars&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turret_MiniTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turret_MiniTurret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mini-turret&amp;quot;,&lt;br /&gt;
    description = [[A portable automatic turret. Requires steel to refurbish its barrel after heavy use. May explode when damaged. Its dumb AI brain can't be directly controlled, so beware of friendly fire.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_TurretGun&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSecurity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      WorkToBuild = 1800,&lt;br /&gt;
      Mass = 8,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
      ShootingAccuracyTurret = 0.96,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 3.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        chanceNeverExplodeFromDamage = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 80,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelLabel = &amp;quot;Shots until barrel change&amp;quot;,&lt;br /&gt;
        fuelGizmoLabel = &amp;quot;Barrel durability&amp;quot;,&lt;br /&gt;
        outOfFuelMessage = &amp;quot;Cannot shoot: Needs new barrel&amp;quot;,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;Steel&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        fuelCapacity = 60,&lt;br /&gt;
        fuelMultiplier = 0.75,&lt;br /&gt;
        initialFuelPercent = 1,&lt;br /&gt;
        autoRefuelPercent = 0.5,&lt;br /&gt;
        showFuelGizmo = true,&lt;br /&gt;
        minimumFueledThreshold = 1,&lt;br /&gt;
        factorByDifficulty = true,&lt;br /&gt;
        consumeFuelOnlyWhenUsed = true,&lt;br /&gt;
        fuelIconPath = &amp;quot;UI/Overlays/Barrel&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 30,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 70,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      combatPower = 45,&lt;br /&gt;
      turretGunDef = &amp;quot;Gun_MiniTurret&amp;quot;,&lt;br /&gt;
      turretBurstCooldownTime = 4.8,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;GunTurrets&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_MiniTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_MiniTurret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mini-turret bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 11,&lt;br /&gt;
      speed = 70,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_MiniTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponTurret&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_MiniTurret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mini-turret gun&amp;quot;,&lt;br /&gt;
    description = [[A simple automatic gun made to be mounted on a turret.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      AccuracyTouch = 0.70,&lt;br /&gt;
      AccuracyShort = 0.64,&lt;br /&gt;
      AccuracyMedium = 0.41,&lt;br /&gt;
      AccuracyLong = 0.22,&lt;br /&gt;
      RangedWeapon_Cooldown = 4.8,&lt;br /&gt;
      DeteriorationRate = 0,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_MiniTurret&amp;quot;,&lt;br /&gt;
        warmupTime = 0,&lt;br /&gt;
        range = 28.9,&lt;br /&gt;
        ticksBetweenBurstShots = 8,&lt;br /&gt;
        burstShotCount = 2,&lt;br /&gt;
        consumeFuelPerShot = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AutocannonTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;AutocannonTurret&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building_TurretGun&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 380,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      WorkToBuild = 15000,&lt;br /&gt;
      Mass = 100,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turret_Autocannon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AutocannonTurret&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turret_Autocannon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;autocannon turret&amp;quot;,&lt;br /&gt;
    description = [[A heavy automatic turret. Its large-caliber shells do heavy damage over significant ranges, but its barrel must be refurbished after use. It cannot fire at close-up targets, and may explode when damaged.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ShootingAccuracyTurret = 0.96,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 350,&lt;br /&gt;
      Plasteel = 40,&lt;br /&gt;
      ComponentIndustrial = 6,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 5.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        chanceNeverExplodeFromDamage = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 150,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelLabel = &amp;quot;Shots until barrel change&amp;quot;,&lt;br /&gt;
        fuelGizmoLabel = &amp;quot;Barrel durability&amp;quot;,&lt;br /&gt;
        outOfFuelMessage = &amp;quot;Cannot shoot: Needs new barrel&amp;quot;,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;Steel&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        fuelCapacity = 90,&lt;br /&gt;
        fuelMultiplier = 0.5,&lt;br /&gt;
        initialFuelPercent = 1,&lt;br /&gt;
        autoRefuelPercent = 0.5,&lt;br /&gt;
        showFuelGizmo = true,&lt;br /&gt;
        minimumFueledThreshold = 1,&lt;br /&gt;
        factorByDifficulty = true,&lt;br /&gt;
        consumeFuelOnlyWhenUsed = true,&lt;br /&gt;
        fuelIconPath = &amp;quot;UI/Overlays/Barrel&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      turretGunDef = &amp;quot;Gun_AutocannonTurret&amp;quot;,&lt;br /&gt;
      turretBurstCooldownTime = 3.5,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;HeavyTurrets&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_AutocannonTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_AutocannonTurret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;autocannon shell&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 25,&lt;br /&gt;
      speed = 88,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_AutocannonTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponTurret&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_AutocannonTurret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;autocannon&amp;quot;,&lt;br /&gt;
    description = [[A self-loading large-bore cannon designed to attach to a turret.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      AccuracyTouch = 0.25,&lt;br /&gt;
      AccuracyShort = 0.65,&lt;br /&gt;
      AccuracyMedium = 0.60,&lt;br /&gt;
      AccuracyLong = 0.45,&lt;br /&gt;
      RangedWeapon_Cooldown = 3.5,&lt;br /&gt;
      DeteriorationRate = 0,&lt;br /&gt;
      Mass = 40,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_AutocannonTurret&amp;quot;,&lt;br /&gt;
        warmupTime = 0,&lt;br /&gt;
        minRange = 8.9,&lt;br /&gt;
        range = 32.9,&lt;br /&gt;
        ticksBetweenBurstShots = 17,&lt;br /&gt;
        burstShotCount = 3,&lt;br /&gt;
        consumeFuelPerShot = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turret_Sniper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AutocannonTurret&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turret_Sniper&amp;quot;,&lt;br /&gt;
    label = &amp;quot;uranium slug turret&amp;quot;,&lt;br /&gt;
    description = [[An armor-piercing turret. Its ultra-dense uranium shells can punch through heavy armor, but it requires new uranium slugs to be loaded after use. It's more accurate at longer ranges, and can't fire at all close up. May explode when damaged.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ShootingAccuracyTurret = 0.98,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 300,&lt;br /&gt;
      Plasteel = 30,&lt;br /&gt;
      Uranium = 60,&lt;br /&gt;
      ComponentIndustrial = 6,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 5.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        chanceNeverExplodeFromDamage = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 150,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelLabel = &amp;quot;Shots until rearm&amp;quot;,&lt;br /&gt;
        fuelGizmoLabel = &amp;quot;Uranium slugs&amp;quot;,&lt;br /&gt;
        outOfFuelMessage = &amp;quot;Cannot shoot: No slugs&amp;quot;,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        fuelCapacity = 30,&lt;br /&gt;
        fuelMultiplier = 0.3333,&lt;br /&gt;
        initialFuelPercent = 1,&lt;br /&gt;
        autoRefuelPercent = 0.5,&lt;br /&gt;
        showFuelGizmo = true,&lt;br /&gt;
        minimumFueledThreshold = 1,&lt;br /&gt;
        factorByDifficulty = true,&lt;br /&gt;
        consumeFuelOnlyWhenUsed = true,&lt;br /&gt;
        fuelIconPath = &amp;quot;UI/Overlays/Barrel&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      turretGunDef = &amp;quot;Gun_TurretSniper&amp;quot;,&lt;br /&gt;
      turretBurstCooldownTime = 3.2,&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;SniperTurret&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_TurretSniper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_TurretSniper&amp;quot;,&lt;br /&gt;
    label = &amp;quot;uranium slug&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 50,&lt;br /&gt;
      speed = 120,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_TurretSniper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponTurret&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_TurretSniper&amp;quot;,&lt;br /&gt;
    label = &amp;quot;uranium slug cannon&amp;quot;,&lt;br /&gt;
    description = [[A self-loading uranium slug cannon designed to attach to a turret.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      AccuracyTouch = 0.20,&lt;br /&gt;
      AccuracyShort = 0.30,&lt;br /&gt;
      AccuracyMedium = 0.40,&lt;br /&gt;
      AccuracyLong = 0.95,&lt;br /&gt;
      RangedWeapon_Cooldown = 4.0,&lt;br /&gt;
      DeteriorationRate = 0,&lt;br /&gt;
      Mass = 40,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_TurretSniper&amp;quot;,&lt;br /&gt;
        warmupTime = 0,&lt;br /&gt;
        minRange = 11.9,&lt;br /&gt;
        range = 45.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        consumeFuelPerShot = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turret_Mortar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseArtilleryBuilding&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turret_Mortar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mortar&amp;quot;,&lt;br /&gt;
    description = [[A manned mortar that launches all kinds of shells. While it can inflict devastating damage, the mortar's inherent inaccuracy makes it more useful for attacking large fortifications than groups of enemies in the field.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 4.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      turretGunDef = &amp;quot;Artillery_Mortar&amp;quot;,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;Artillery_BaseDestroyer&amp;quot;,&lt;br /&gt;
        &amp;quot;Artillery_MannedMortar&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Artillery_Mortar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseArtilleryWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Security_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Artillery_Mortar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mortar&amp;quot;,&lt;br /&gt;
    description = [[Mortar launcher. Lobs bombs over walls. Very inaccurate but long-ranged.]],&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;Artillery_BaseDestroyer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        warmupTime = 4.0,&lt;br /&gt;
        forcedMissRadius = 13,&lt;br /&gt;
        requireLineOfSight = false,&lt;br /&gt;
        minRange = 29.9,&lt;br /&gt;
        range = 500,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ChangeableProjectile&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      fixedStorageSettings = {&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;MortarShells&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      defaultStorageSettings = {&lt;br /&gt;
        filter = {&lt;br /&gt;
          categories = {&lt;br /&gt;
            &amp;quot;MortarShells&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          disallowedThingDefs = {&lt;br /&gt;
            &amp;quot;Shell_Firefoam&amp;quot;,&lt;br /&gt;
            &amp;quot;Shell_AntigrainWarhead&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ship_Beam&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ship_Beam&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship structural beam&amp;quot;,&lt;br /&gt;
    description = [[A structural beam around which a starship can be constructed. Includes all the necessary conduits and transit pipes for communications, power, and materials transport.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 8000,&lt;br /&gt;
      MaxHitPoints = 400,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 6},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTransmitter&amp;quot;,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ShipPart&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 200,&lt;br /&gt;
      Plasteel = 40,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
      ComponentSpacer = 1,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ShipBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ship_CryptosleepCasket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ship_CryptosleepCasket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship cryptosleep casket&amp;quot;,&lt;br /&gt;
    description = [[A cryptosleep casket hardened against the dangers of space. Capable of maintaining a person in cryptosleep for centuries and surviving atmospheric re-entry.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_CryptosleepCasket&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ShipCryptosleep&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 8000,&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTransmitter&amp;quot;,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ShipPart&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 2.66,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EmptyStateGraphic&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        graphicData = {&lt;br /&gt;
          texPath = &amp;quot;Things/Building/Ship/ShipCryptosleepCasketOpenDoor&amp;quot;,&lt;br /&gt;
          graphicClass = &amp;quot;Graphic_Multi&amp;quot;,&lt;br /&gt;
          drawSize = {1, 2},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isPlayerEjectable = true,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 120,&lt;br /&gt;
      Uranium = 14,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
      ComponentSpacer = 3,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ship_ComputerCore&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ship_ComputerCore&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship computer core&amp;quot;,&lt;br /&gt;
    description = [[A computer core housing a machine persona who can guide a starship through any challenge during a multi-decade starflight.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_ShipComputerCore&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ShipComputerCore&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 16000,&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ShipPart&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTransmitter&amp;quot;,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 150,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
      Gold = 70,&lt;br /&gt;
      AIPersonaCore = 1,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ship_Reactor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ship_Reactor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship reactor&amp;quot;,&lt;br /&gt;
    description = [[Powers a ship on its journey between stars. Takeoff requires a long powerup process that is likely to attract raiders.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_ShipReactor&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ShipReactor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 65000,&lt;br /&gt;
      MaxHitPoints = 500,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {6, 7},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 350,&lt;br /&gt;
      Plasteel = 280,&lt;br /&gt;
      Uranium = 70,&lt;br /&gt;
      ComponentSpacer = 8,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlant&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -1000,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ShipPart&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hibernatable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        incidentTargetWhileStarting = &amp;quot;Map_RaidBeacon&amp;quot;,&lt;br /&gt;
        sustainerActive = &amp;quot;ShipReactor_Ambience&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ship_Engine&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ship_Engine&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship engine&amp;quot;,&lt;br /&gt;
    description = [[A reactionless Johnson-Tanaka drive capable of launching a ship into orbit, and crawling across the vast expanses between stars.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ShipEngine&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 50000,&lt;br /&gt;
      MaxHitPoints = 400,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {3, 4},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTransmitter&amp;quot;,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ShipPart&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 260,&lt;br /&gt;
      Plasteel = 140,&lt;br /&gt;
      Uranium = 70,&lt;br /&gt;
      ComponentSpacer = 6,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ship_SensorCluster&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Ship.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ship_SensorCluster&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sensor cluster&amp;quot;,&lt;br /&gt;
    description = [[A multi-function sensor module. Can scan and signal across the void for communications, threat detection, deception, jamming, and other purposes.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ShipSensorCluster&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 30000,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTransmitter&amp;quot;,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ShipPart&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 140,&lt;br /&gt;
      Gold = 4,&lt;br /&gt;
      ComponentIndustrial = 6,&lt;br /&gt;
      ComponentSpacer = 6,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicEmanator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Special.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicEmanator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic emanator&amp;quot;,&lt;br /&gt;
    description = [[An ancient device that projects a soothing psychic field around itself. This improves the mood of anyone nearby. Works through walls.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSpecial&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 50,&lt;br /&gt;
      ComponentSpacer = 6,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_PsychicEmanatorEffect&amp;quot;,&lt;br /&gt;
        emissionInterval = 350,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1300,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Beauty = 0,&lt;br /&gt;
      Mass = 15,&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.2,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticBuilding&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:VanometricPowerCell&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Special.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;VanometricPowerCell&amp;quot;,&lt;br /&gt;
    label = &amp;quot;vanometric power cell&amp;quot;,&lt;br /&gt;
    description = [[Generates free energy, forever, without using fuel. This technology is developed by archotechs, and is beyond even most glitterworld societies. While nobody knows exactly how it works, scholars believe it somehow extracts energy directly from fluctuations in the quantum foam.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSpecial&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1200,&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Mass = 15,&lt;br /&gt;
    },&lt;br /&gt;
    size = {1, 2},&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      ComponentSpacer = 6,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlant&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -1000,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 3,&lt;br /&gt;
        glowColor = {227, 233, 168, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticBuilding&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:InfiniteChemreactor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Special.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;InfiniteChemreactor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;infinite chemreactor&amp;quot;,&lt;br /&gt;
    description = [[Slowly generates chemfuel by a complex series of chemical reactions, using atoms extracted from the air.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSpecial&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 200,&lt;br /&gt;
      ComponentSpacer = 6,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 300,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Spawner&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        requiresPower = true,&lt;br /&gt;
        thingToSpawn = &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
        spawnCount = 75,&lt;br /&gt;
        spawnIntervalRange = {&lt;br /&gt;
          min = 600000,&lt;br /&gt;
          max = 600000,&lt;br /&gt;
        },&lt;br /&gt;
        writeTimeLeftToSpawn = true,&lt;br /&gt;
        showMessageIfOwned = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 8,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1500,&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = -10,&lt;br /&gt;
      Mass = 35,&lt;br /&gt;
      WorkToBuild = 8000,&lt;br /&gt;
    },&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    fillPercent = 1.0,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticBuilding&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DoorBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;DoorBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Structure.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building_Door&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;DoorMoveable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 160,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Door&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DoorBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Structure.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Door&amp;quot;,&lt;br /&gt;
    label = &amp;quot;door&amp;quot;,&lt;br /&gt;
    description = [[Divides rooms. Simple doors must be manually opened, which slows people down. The amount of slowdown depends on what the door is made of.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 850,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 25,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Autodoor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DoorBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Structure.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Autodoor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;autodoor&amp;quot;,&lt;br /&gt;
    description = [[Divides rooms. Powered operation allows people to move through the door without slowing down.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 1100,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 25,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 50,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Autodoors&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Wall&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;Wall&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Structure.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Wall&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wall&amp;quot;,&lt;br /&gt;
    description = [[An impassable wall. Capable of holding up a roof.]],&lt;br /&gt;
    thingClass = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      WorkToBuild = 135,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      MeditationFocusStrength = 0.22,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 5,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Minimal&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Column&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Structure.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Column&amp;quot;,&lt;br /&gt;
    label = &amp;quot;column&amp;quot;,&lt;br /&gt;
    description = [[A column capable of holding a roof. Does not block sight or movement and looks quite nice.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.25,&lt;br /&gt;
    pathCost = 0,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 160,&lt;br /&gt;
      WorkToBuild = 750,&lt;br /&gt;
      Mass = 10,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 20,&lt;br /&gt;
    building = {&lt;br /&gt;
      isInert = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Campfire&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Temperature.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Campfire&amp;quot;,&lt;br /&gt;
    label = &amp;quot;campfire&amp;quot;,&lt;br /&gt;
    description = [[Cooks meals and produces heat, and burns out after a few days. As with all heat sources, it must be placed indoors so it has a closed space to heat. Refuelable.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_WorkTable&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToBuild = 200,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      WorkTableWorkSpeedFactor = 0.5,&lt;br /&gt;
      MeditationFocusStrength = 0.0,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 20,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelConsumptionRate = 10.0,&lt;br /&gt;
        fuelCapacity = 20.0,&lt;br /&gt;
        fuelConsumptionPerTickInRain = 0.0006,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        initialFuelPercent = 1,&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 10,&lt;br /&gt;
        glowColor = {252, 187, 113, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 21,&lt;br /&gt;
        heatPushMaxTemperature = 28,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_FireOverlay&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fireSize = 1,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompGatherSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_Lit&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.12,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_BuildingDefsLit&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              &amp;quot;Campfire&amp;quot;,&lt;br /&gt;
              &amp;quot;TorchLamp&amp;quot;,&lt;br /&gt;
              &amp;quot;Brazier&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offsetPerBuilding = 0.02,&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 8,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerFlame&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerFlameAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    building = {&lt;br /&gt;
      isMealSource = true,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PassiveCooler&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Temperature.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PassiveCooler&amp;quot;,&lt;br /&gt;
    label = &amp;quot;passive cooler&amp;quot;,&lt;br /&gt;
    description = [[A traditional unpowered cooler that works by water evaporation. Must be regularly replenished with wood. Not efficient enough to refrigerate food.]],&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToBuild = 200,&lt;br /&gt;
      Flammability = 1,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 50,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = -11,&lt;br /&gt;
        heatPushMinTemperature = 17,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelConsumptionRate = 10.0,&lt;br /&gt;
        fuelCapacity = 50.0,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        initialFuelPercent = 1,&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;PassiveCooler&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Heater&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Temperature.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Heater&amp;quot;,&lt;br /&gt;
    label = &amp;quot;heater&amp;quot;,&lt;br /&gt;
    description = [[A device that converts electricity into heat. It can automatically turn itself on or off to reach a specific target temperature.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Heater&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsTemperature&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 1000,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 6,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 50,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 175,&lt;br /&gt;
        shortCircuitInRain = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TempControl&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        energyPerSecond = 21,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 3,&lt;br /&gt;
        glowColor = {255, 150, 100, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Cooler&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Temperature.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cooler&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cooler&amp;quot;,&lt;br /&gt;
    description = [[An air-cooling machine that fits into a wall. Cool air comes out one side, while hot exhaust comes out the other. Can be used to cool down rooms during summer, or to create a walk-in freezer.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Cooler&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 1600,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 90,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TempControl&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        energyPerSecond = -21,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;AirConditioning&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Vent&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Temperature.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Vent&amp;quot;,&lt;br /&gt;
    label = &amp;quot;vent&amp;quot;,&lt;br /&gt;
    description = [[A vent for equalizing the temperature between two rooms without allowing people to walk between them.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_Vent&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 400,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 30,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        commandTexture = &amp;quot;UI/Commands/Vent&amp;quot;,&lt;br /&gt;
        commandLabelKey = &amp;quot;CommandDesignateOpenCloseVentLabel&amp;quot;,&lt;br /&gt;
        commandDescKey = &amp;quot;CommandDesignateOpenCloseVentDesc&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArtifactBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;ArtifactBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Artifacts.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Artifacts&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Artifact&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Usable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        useJob = &amp;quot;UseArtifact&amp;quot;,&lt;br /&gt;
        useLabel = &amp;quot;Activate&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffect&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompUseEffect_DestroySelf&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicAnimalPulser&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArtifactBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Artifacts.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicAnimalPulser&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic animal pulser&amp;quot;,&lt;br /&gt;
    description = [[A one-use broad-wave psychic effector. The psychic pulse fills lower minds with terrifying imagery, driving all animals in the region into a manhunting rage. Animals currently under your control will not be affected.]],&lt;br /&gt;
    stackLimit = 1,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 700,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Targetable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompTargetable_AllAnimalsOnTheMap&amp;quot;,&lt;br /&gt;
        psychicSensitiveTargetsOnly = true,&lt;br /&gt;
        doCameraShake = true,&lt;br /&gt;
        moteOnTarget = &amp;quot;Mote_PsycastPsychicEffect&amp;quot;,&lt;br /&gt;
        moteOnUsed = &amp;quot;Mote_PsycastAreaEffect&amp;quot;,&lt;br /&gt;
        moteOnUsedScale = 10,&lt;br /&gt;
        ignorePlayerFactionPawns = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompTargetEffect_Manhunter&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_GoodwillImpact&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        goodwillImpact = -200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffectArtifact&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        sound = &amp;quot;PsychicAnimalPulserCast&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicSoothePulser&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArtifactBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Artifacts.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicSoothePulser&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic soothe pulser&amp;quot;,&lt;br /&gt;
    description = [[A one-use broad-wave psychic effector. The psychic pulse induces self-satisfying perceptual distortions, giving a temporary mood boost to everyone in the region.]],&lt;br /&gt;
    stackLimit = 1,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 600,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Targetable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompTargetable_AllPawnsOnTheMap&amp;quot;,&lt;br /&gt;
        psychicSensitiveTargetsOnly = true,&lt;br /&gt;
        doCameraShake = true,&lt;br /&gt;
        moteOnTarget = &amp;quot;Mote_PsycastPsychicEffect&amp;quot;,&lt;br /&gt;
        moteOnUsed = &amp;quot;Mote_PsycastAreaEffect&amp;quot;,&lt;br /&gt;
        moteOnUsedScale = 10,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompTargetEffect_MoodBoost&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffectArtifact&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        sound = &amp;quot;PsychicSoothePulserCast&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ResourceVerbBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ResourceVerbBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompEquippable&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AIPersonaCore&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AIPersonaCore&amp;quot;,&lt;br /&gt;
    label = &amp;quot;persona core&amp;quot;,&lt;br /&gt;
    description = [[A hyper-advanced computer core that houses a peak-human-equivalent machine persona. In its isolated state, the core is dormant. Installed in a proper support structure, however, it can become a mind of great power.]],&lt;br /&gt;
    stackLimit = 1,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 4000,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      Flammability = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Items&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MechSerumBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;MechSerumBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      Mass = 0.2,&lt;br /&gt;
      DeteriorationRate = 2.0,&lt;br /&gt;
      Flammability = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffectPlaySound&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        soundOnUsed = &amp;quot;MechSerumUsed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MechSerumHealer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechSerumBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MechSerumHealer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;healer mech serum&amp;quot;,&lt;br /&gt;
    description = [[A one-use super-dose of mechanites tuned to heal health conditions. The mechanites will target and heal the single worst health condition affecting someone at any given time. Works even on health conditions that would otherwise be incurable. The mechanites can even transmute themselves into organic matter, forming new limbs or organs as needed.]],&lt;br /&gt;
    stackLimit = 10,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1300,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Items&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Usable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        useJob = &amp;quot;UseItem&amp;quot;,&lt;br /&gt;
        useLabel = &amp;quot;Use healer mech serum&amp;quot;,&lt;br /&gt;
        useDuration = 600,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffect&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompUseEffect_FixWorstHealthCondition&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffect&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompUseEffect_DestroySelf&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MechSerumResurrector&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechSerumBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MechSerumResurrector&amp;quot;,&lt;br /&gt;
    label = &amp;quot;resurrector mech serum&amp;quot;,&lt;br /&gt;
    description = [[A one-use super-dose of mechanites tuned to resurrect the dead. Administered to a corpse, mechanites repair broken-down tissues and kickstart the body back to life. Unfortunately, the resurrected sometimes come back with brain damage, blindness, or progressive psychosis. Outcomes are better when the mechanites are administered to a fresher body. If a body is preserved, it can even be resurrected long after death.]],&lt;br /&gt;
    stackLimit = 10,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1700,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Items&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Usable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        useJob = &amp;quot;UseItem&amp;quot;,&lt;br /&gt;
        useLabel = &amp;quot;Use resurrector mech serum&amp;quot;,&lt;br /&gt;
        useDuration = 0,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Targetable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompTargetable_SingleCorpse&amp;quot;,&lt;br /&gt;
        fleshCorpsesOnly = true,&lt;br /&gt;
        nonDessicatedCorpsesOnly = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompTargetEffect_Resurrect&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TechprofSubpersonaCore&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TechprofSubpersonaCore&amp;quot;,&lt;br /&gt;
    label = &amp;quot;techprof subpersona core&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    description = [[A small AI core housing a low-grade subpersona specialized in teaching technology. When used, the AI will teach you the technology you're currently researching, instantly and for free. Can only be used once.]],&lt;br /&gt;
    stackLimit = 1,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1000,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 2.0,&lt;br /&gt;
      Flammability = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Items&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Usable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        useJob = &amp;quot;UseItem&amp;quot;,&lt;br /&gt;
        useLabel = &amp;quot;Use techprof subpersona core&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffect&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompUseEffect_FinishRandomResearchProject&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffect&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompUseEffect_DestroySelf&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ThrumboHorn&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceVerbBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ThrumboHorn&amp;quot;,&lt;br /&gt;
    label = &amp;quot;thrumbo horn&amp;quot;,&lt;br /&gt;
    description = [[A thrumbo's horn. It's razor-sharp, rock-hard, and priceless in most markets. This is a true trophy, as well as a deadly melee weapon.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 800,&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      DeteriorationRate = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stackLimit = 10,&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 28,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;base&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Items&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ElephantTusk&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceVerbBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ElephantTusk&amp;quot;,&lt;br /&gt;
    label = &amp;quot;elephant tusk&amp;quot;,&lt;br /&gt;
    description = [[An elephant's tusk. It is very durable and valuable. While somewhat unwieldy as a melee weapon, it can still be deadly.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 80,&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Mass = 1.8,&lt;br /&gt;
      Flammability = 0.9,&lt;br /&gt;
      DeteriorationRate = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stackLimit = 10,&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 18.2,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;base&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Items&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MealBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;MealBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 0,&lt;br /&gt;
      Mass = 0.44,&lt;br /&gt;
      DeteriorationRate = 10,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    stackLimit = 10,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;FoodMeals&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Ingredients&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_FoodPoisonable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Meal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      optimalityOffsetHumanlikes = 16,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MealSurvivalPack&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MealBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MealSurvivalPack&amp;quot;,&lt;br /&gt;
    label = &amp;quot;packaged survival meal&amp;quot;,&lt;br /&gt;
    description = [[A high-quality packaged meal, manufactured for use in survival situations. While it never rots, it can still deteriorate if left outside. Great for traveling.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      DeteriorationRate = 0.25,&lt;br /&gt;
      MarketValue = 24,&lt;br /&gt;
      Mass = 0.3,&lt;br /&gt;
      WorkToMake = 450,&lt;br /&gt;
      Nutrition = 0.9,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;MealSimple&amp;quot;,&lt;br /&gt;
      optimalityOffsetHumanlikes = -5,&lt;br /&gt;
      optimalityOffsetFeedingAnimals = -10,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MealNutrientPaste&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MealBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MealNutrientPaste&amp;quot;,&lt;br /&gt;
    label = &amp;quot;nutrient paste meal&amp;quot;,&lt;br /&gt;
    description = [[A synthetic mixture of protein, carbohydrates, and vitamins, amino acids and minerals. Everything the body needs, and absolutely disgusting.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 10,&lt;br /&gt;
      Nutrition = 0.9,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;MealAwful&amp;quot;,&lt;br /&gt;
      tasteThought = &amp;quot;AteAwfulMeal&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Buyable&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 0.75,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MealCooked&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MealBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;MealCooked&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Buyable&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 4,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MealSimple&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MealCooked&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MealSimple&amp;quot;,&lt;br /&gt;
    label = &amp;quot;simple meal&amp;quot;,&lt;br /&gt;
    description = [[A simple meal quickly cooked from one main ingredient.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 15,&lt;br /&gt;
      WorkToMake = 300,&lt;br /&gt;
      Nutrition = 0.9,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;MealSimple&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MealFine&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MealCooked&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MealFine&amp;quot;,&lt;br /&gt;
    label = &amp;quot;fine meal&amp;quot;,&lt;br /&gt;
    description = [[A complex dish assembled with care from a variety of ingredients.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 20,&lt;br /&gt;
      WorkToMake = 450,&lt;br /&gt;
      Nutrition = 0.9,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;MealFine&amp;quot;,&lt;br /&gt;
      tasteThought = &amp;quot;AteFineMeal&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MealLavish&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MealCooked&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MealLavish&amp;quot;,&lt;br /&gt;
    label = &amp;quot;lavish meal&amp;quot;,&lt;br /&gt;
    description = [[A masterpiece of the culinary arts, this meal nourishes the body, mind, and soul.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 40,&lt;br /&gt;
      WorkToMake = 800,&lt;br /&gt;
      Nutrition = 1,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;MealLavish&amp;quot;,&lt;br /&gt;
      tasteThought = &amp;quot;AteLavishMeal&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Kibble&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrganicProductBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Kibble&amp;quot;,&lt;br /&gt;
    label = &amp;quot;kibble&amp;quot;,&lt;br /&gt;
    description = [[Animal feed made from mixed meat and plant sources. Humans can eat it, but they really, really don't like it.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Foods&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.1,&lt;br /&gt;
      Mass = 0.015,&lt;br /&gt;
      Nutrition = 0.05,&lt;br /&gt;
      FoodPoisonChanceFixedHuman = 0.02,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Kibble&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      preferability = &amp;quot;RawBad&amp;quot;,&lt;br /&gt;
      tasteThought = &amp;quot;AteKibble&amp;quot;,&lt;br /&gt;
      optimalityOffsetHumanlikes = -30,&lt;br /&gt;
      optimalityOffsetFeedingAnimals = 15,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Ingredients&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Pemmican&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrganicProductBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Food.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Pemmican&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pemmican&amp;quot;,&lt;br /&gt;
    description = [[A preserved mashed mixture of fat and plant food. Tastes bland, but not offensive. It lasts a very long time without refrigeration. Great for traveling.]],&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Foods&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.4,&lt;br /&gt;
      Mass = 0.018,&lt;br /&gt;
      Flammability = 0.6,&lt;br /&gt;
      WorkToMake = 700,&lt;br /&gt;
      DeteriorationRate = 2,&lt;br /&gt;
      Nutrition = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Meal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      preferability = &amp;quot;MealSimple&amp;quot;,&lt;br /&gt;
      optimalityOffsetHumanlikes = 6,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 70,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Ingredients&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_FoodPoisonable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Chocolate&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Luxury.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Chocolate&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chocolate&amp;quot;,&lt;br /&gt;
    description = [[A delicious preparation of cocoa seeds ground together with sugar and vanilla. It fulfills the need for recreation, but it is not very nutritious.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 60,&lt;br /&gt;
      MarketValue = 3,&lt;br /&gt;
      Mass = 0.075,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      DeteriorationRate = 8,&lt;br /&gt;
      Nutrition = 0.1,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Foods&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;DesperateOnly&amp;quot;,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Processed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      joy = 0.10,&lt;br /&gt;
      joyKind = &amp;quot;Gluttonous&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Milk&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrganicProductBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Milk&amp;quot;,&lt;br /&gt;
    label = &amp;quot;milk&amp;quot;,&lt;br /&gt;
    description = [[Milk from an animal.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3.1,&lt;br /&gt;
      Mass = 0.045,&lt;br /&gt;
      MaxHitPoints = 60,&lt;br /&gt;
      Flammability = 0.2,&lt;br /&gt;
      Nutrition = 0.05,&lt;br /&gt;
      FoodPoisonChanceFixedHuman = 0.02,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 14,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;RawTasty&amp;quot;,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;AnimalProduct&amp;quot;,&lt;br /&gt;
        &amp;quot;Fluid&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;AnimalProductRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:InsectJelly&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrganicProductBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;InsectJelly&amp;quot;,&lt;br /&gt;
    label = &amp;quot;insect jelly&amp;quot;,&lt;br /&gt;
    description = [[Jelly stored and used as food by oversized insects. It is smooth, rich, and fulfills the recreation need of those who consume it. Because of its unique biological properties, it can nourish almost any creature and never rots.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 8.0,&lt;br /&gt;
      Mass = 0.025,&lt;br /&gt;
      Nutrition = 0.05,&lt;br /&gt;
      FoodPoisonChanceFixedHuman = 0.02,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;AnimalProduct&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      preferability = &amp;quot;MealFine&amp;quot;,&lt;br /&gt;
      joy = 0.08,&lt;br /&gt;
      joyKind = &amp;quot;Gluttonous&amp;quot;,&lt;br /&gt;
      canAutoSelectAsFoodForCaravan = false,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;AnimalProductRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;EggBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;OrganicProductBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;AnimalProduct&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tasteThought = &amp;quot;AteRawFood&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 0.15,&lt;br /&gt;
      MaxHitPoints = 20,&lt;br /&gt;
      DeteriorationRate = 2,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      Nutrition = 0.25,&lt;br /&gt;
      FoodPoisonChanceFixedHuman = 0.02,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 15,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
        disableIfHatcher = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggUnfertBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;EggUnfertBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;EggBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;RawBad&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;EggsUnfertilized&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggFertBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;EggBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;DesperateOnly&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;EggsFertilized&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TemperatureRuinable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        minSafeTemperature = 0,&lt;br /&gt;
        maxSafeTemperature = 50,&lt;br /&gt;
        progressPerDegreePerTick = 0.00003,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggChickenUnfertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggUnfertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggChickenUnfertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chicken egg (unfert.)&amp;quot;,&lt;br /&gt;
    description = [[An unfertilized chicken egg. It can be eaten raw, but it's much, much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 7.0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggChickenFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggChickenFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chicken egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized chicken egg. If all goes well, it should hatch into a chick. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 7.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 3.5,&lt;br /&gt;
        hatcherPawn = &amp;quot;Chicken&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggCobraFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggCobraFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cobra egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized cobra egg. If all goes well, it should hatch into a baby cobra. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 40.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 4.5,&lt;br /&gt;
        hatcherPawn = &amp;quot;Cobra&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggIguanaFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggIguanaFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;iguana egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized iguana egg. If all goes well, it should hatch into a baby iguana. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 25.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 3.5,&lt;br /&gt;
        hatcherPawn = &amp;quot;Iguana&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggTortoiseFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggTortoiseFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tortoise egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized tortoise egg. If all goes well, it should hatch into a baby tortoise. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 23.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 3.5,&lt;br /&gt;
        hatcherPawn = &amp;quot;Tortoise&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggCassowaryFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggCassowaryFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cassowary egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized cassowary egg. If all goes well, it should hatch into a baby cassowary. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 19.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 7,&lt;br /&gt;
        hatcherPawn = &amp;quot;Cassowary&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggEmuFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggEmuFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;emu egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized emu egg. If all goes well, it should hatch into a baby emu. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 18.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 6,&lt;br /&gt;
        hatcherPawn = &amp;quot;Emu&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggOstrichFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggOstrichFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ostrich egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized ostrich egg. If all goes well, it should hatch into a baby ostrich. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 23.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 8,&lt;br /&gt;
        hatcherPawn = &amp;quot;Ostrich&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggTurkeyFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggTurkeyFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;turkey egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized turkey egg. If all goes well, it should hatch into a baby turkey. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 11.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 5,&lt;br /&gt;
        hatcherPawn = &amp;quot;Turkey&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggDuckUnfertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggUnfertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggDuckUnfertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;duck egg (unfert.)&amp;quot;,&lt;br /&gt;
    description = [[An unfertilized duck egg. It can be eaten raw, but it's much, much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 7.0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggDuckFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggDuckFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;duck egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized duck egg. If all goes well, it should hatch into a duckling. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 7.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 3.5,&lt;br /&gt;
        hatcherPawn = &amp;quot;Duck&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggGooseUnfertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggUnfertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggGooseUnfertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;goose egg (unfert.)&amp;quot;,&lt;br /&gt;
    description = [[An unfertilized goose egg. It can be eaten raw, but it's much, much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 9.0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EggGooseFertilized&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EggFertBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_AnimalProduct.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EggGooseFertilized&amp;quot;,&lt;br /&gt;
    label = &amp;quot;goose egg (fert.)&amp;quot;,&lt;br /&gt;
    description = [[A fertilized goose egg. If all goes well, it should hatch into a baby goose. It can be eaten raw, but it's much better cooked.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 11.0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Hatcher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hatcherDaystoHatch = 6.5,&lt;br /&gt;
        hatcherPawn = &amp;quot;Goose&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ResourceBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Base.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    stackLimit = 75,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -4,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MedicineBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;MedicineBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Manufactured.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Medicine&amp;quot;,&lt;br /&gt;
    stackLimit = 25,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 60,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Medicine&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MedicineHerbal&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MedicineBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Manufactured.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MedicineHerbal&amp;quot;,&lt;br /&gt;
    label = &amp;quot;herbal medicine&amp;quot;,&lt;br /&gt;
    description = [[A pack of herbal concoctions extracted from the healroot plant. It is less potent than industrial pharmaceuticals, but much better than nothing.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 10,&lt;br /&gt;
      Mass = 0.35,&lt;br /&gt;
      Flammability = 1.3,&lt;br /&gt;
      MedicalPotency = 0.60,&lt;br /&gt;
      MedicalQualityMax = 0.70,&lt;br /&gt;
      DeteriorationRate = 6,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 150,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MedicineIndustrial&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MedicineBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Manufactured.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MedicineIndustrial&amp;quot;,&lt;br /&gt;
    label = &amp;quot;medicine&amp;quot;,&lt;br /&gt;
    description = [[A kit of industrial-era medical equipment. It contains basic drugs, tools for suturing and bone setting, diagnostic devices, and various pads and fluids.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 18,&lt;br /&gt;
      Mass = 0.50,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      MedicalPotency = 1.00,&lt;br /&gt;
      MedicalQualityMax = 1.00,&lt;br /&gt;
      DeteriorationRate = 2,&lt;br /&gt;
      WorkToMake = 700,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      MedicineHerbal = 1,&lt;br /&gt;
      Neutroamine = 1,&lt;br /&gt;
      Cloth = 3,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;DrugSynthesisSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Intellectual&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;DrugLab&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;MedicineProduction&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
        Intellectual = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MedicineUltratech&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MedicineBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Manufactured.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MedicineUltratech&amp;quot;,&lt;br /&gt;
    label = &amp;quot;glitterworld medicine&amp;quot;,&lt;br /&gt;
    description = [[A kit of advanced ultra-tech medical supplies, probably manufactured on a distant glitterworld. It contains advanced polymorphic drugs, nanite diagnostic and healing assisters, a mini-imager, and various multi-use tools.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 50,&lt;br /&gt;
      Mass = 0.50,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      MedicalPotency = 1.60,&lt;br /&gt;
      MedicalQualityMax = 1.30,&lt;br /&gt;
      DeteriorationRate = 2.0,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ComponentIndustrial&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Manufactured.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ComponentIndustrial&amp;quot;,&lt;br /&gt;
    label = &amp;quot;component&amp;quot;,&lt;br /&gt;
    description = [[Miscellaneous gears, capacitors, circuit boards, tubes, wheels, sensors, wires, chips, processors, and other electronic and industrial parts. Necessary for assembling complex machines or electronics.]],&lt;br /&gt;
    stackLimit = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 70,&lt;br /&gt;
      MarketValue = 32,&lt;br /&gt;
      Mass = 0.6,&lt;br /&gt;
      Flammability = 0.6,&lt;br /&gt;
      DeteriorationRate = 2.0,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Manufactured&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ComponentSpacer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Manufactured.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ComponentSpacer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;advanced component&amp;quot;,&lt;br /&gt;
    description = [[Advanced computing and energy-directing machinery, miniaturized and hardened for the most demanding applications.]],&lt;br /&gt;
    stackLimit = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 70,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
      Mass = 0.6,&lt;br /&gt;
      Flammability = 0.6,&lt;br /&gt;
      DeteriorationRate = 2.0,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Manufactured&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Neutroamine&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Manufactured.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Neutroamine&amp;quot;,&lt;br /&gt;
    label = &amp;quot;neutroamine&amp;quot;,&lt;br /&gt;
    description = [[A synthetic precursor chemical. While it is useless on its own, many drugs require neutroamine as an ingredient.]],&lt;br /&gt;
    stackLimit = 150,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      MarketValue = 6,&lt;br /&gt;
      Mass = 0.02,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      DeteriorationRate = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Manufactured&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Chemfuel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Manufactured.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chemfuel&amp;quot;,&lt;br /&gt;
    description = [[A volatile liquid chemical. Used to fuel engines and rockets, or to transmute into propellant for projectiles, or as an incendiary weapon.]],&lt;br /&gt;
    stackLimit = 150,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      MarketValue = 2.3,&lt;br /&gt;
      Mass = 0.05,&lt;br /&gt;
      Flammability = 2.0,&lt;br /&gt;
      DeteriorationRate = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Manufactured&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 1.1,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        explosiveExpandPerStackcount = 0.037,&lt;br /&gt;
        startWickOnDamageTaken = {&lt;br /&gt;
          &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        startWickHitPointsPercent = 0.333,&lt;br /&gt;
        preExplosionSpawnThingDef = &amp;quot;Filth_Fuel&amp;quot;,&lt;br /&gt;
        preExplosionSpawnChance = 1,&lt;br /&gt;
        wickTicks = { [&amp;quot;&amp;lt;&amp;quot;]=70, [&amp;quot;&amp;gt;&amp;quot;]=150 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:OrganicProductBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;OrganicProductBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 60,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      DeteriorationRate = 6,&lt;br /&gt;
      Mass = 0.03,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PlantFoodRawBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;PlantFoodRawBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;OrganicProductBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;RawBad&amp;quot;,&lt;br /&gt;
      tasteThought = &amp;quot;AteRawFood&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Nutrition = 0.05,&lt;br /&gt;
      FoodPoisonChanceFixedHuman = 0.02,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;PlantFoodRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RawPotatoes&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantFoodRawBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RawPotatoes&amp;quot;,&lt;br /&gt;
    label = &amp;quot;potatoes&amp;quot;,&lt;br /&gt;
    description = [[Raw potatoes.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.1,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetableOrFruit&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 30,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RawFungus&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantFoodRawBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RawFungus&amp;quot;,&lt;br /&gt;
    label = &amp;quot;raw fungus&amp;quot;,&lt;br /&gt;
    description = [[Raw fungus.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.1,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetableOrFruit&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 30,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RawRice&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantFoodRawBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RawRice&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rice&amp;quot;,&lt;br /&gt;
    description = [[Raw rice.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.1,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Seed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 40,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RawAgave&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantFoodRawBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RawAgave&amp;quot;,&lt;br /&gt;
    label = &amp;quot;agave fruit&amp;quot;,&lt;br /&gt;
    description = [[Raw agave fruit.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.1,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetableOrFruit&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 25,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RawCorn&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantFoodRawBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RawCorn&amp;quot;,&lt;br /&gt;
    label = &amp;quot;corn&amp;quot;,&lt;br /&gt;
    description = [[Raw corn.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.1,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetableOrFruit&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 60,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RawBerries&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantFoodRawBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    label = &amp;quot;berries&amp;quot;,&lt;br /&gt;
    description = [[Assorted berries. Nice to eat, even when raw.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.2,&lt;br /&gt;
      Mass = 0.027,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 14,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;RawTasty&amp;quot;,&lt;br /&gt;
      tasteThought = {},&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetableOrFruit&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RoughPlantBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrganicProductBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;RoughPlantBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Plant&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      preferability = &amp;quot;DesperateOnlyForHumanlikes&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Nutrition = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Hay&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RoughPlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Hay&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hay&amp;quot;,&lt;br /&gt;
    description = [[Nutrient-rich grasses and shoots, harvested and compacted for storage. Hay is good animal feed, but inedible for humans.]],&lt;br /&gt;
    stackLimit = 200,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 0.6,&lt;br /&gt;
      Mass = 0.014,&lt;br /&gt;
      Flammability = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 60,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Foods&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      optimalityOffsetFeedingAnimals = 7,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RawHops&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RoughPlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RawHops&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hops&amp;quot;,&lt;br /&gt;
    description = [[Raw hops. A flavoring and preserving agent that is necessary for making beer.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.3,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 30,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;PlantMatter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;DesperateOnly&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychoidLeaves&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RoughPlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychoidLeaves&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychoid leaves&amp;quot;,&lt;br /&gt;
    description = [[Raw cut leaves of a psychoid plant. Can be refined into various form of the stimulant drug psychite.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.9,&lt;br /&gt;
      Flammability = 1.3,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 30,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;PlantMatter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;DesperateOnly&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SmokeleafLeaves&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;RoughPlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_RawPlant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmokeleafLeaves&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smokeleaf leaves&amp;quot;,&lt;br /&gt;
    description = [[Raw cut leaves of a smokeleaf plant. Can be rolled into smokeable joints at a crafting spot.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.6,&lt;br /&gt;
      Flammability = 1.3,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Rottable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        daysToRotStart = 30,&lt;br /&gt;
        rotDestroys = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;PlantMatter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      preferability = &amp;quot;DesperateOnly&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShellBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ShellBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stackLimit = 25,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 60,&lt;br /&gt;
      MarketValue = 55,&lt;br /&gt;
      Mass = 1.25,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      DeteriorationRate = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;MortarShells&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;MortarShell&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MakeableShellBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;MakeableShellBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ShellBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Cook&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Machining&amp;quot;,&lt;br /&gt;
      workAmount = 800,&lt;br /&gt;
      targetCountAdjustment = 5,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Shell_HighExplosive&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableShellBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Shell_HighExplosive&amp;quot;,&lt;br /&gt;
    label = &amp;quot;high-explosive shell&amp;quot;,&lt;br /&gt;
    description = [[A shell filled with high explosives. Can be fired from mortars or installed as a trap. Explodes when damaged.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 2.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        explosiveExpandPerStackcount = 0.4,&lt;br /&gt;
        startWickHitPointsPercent = 0.7,&lt;br /&gt;
        wickTicks = { [&amp;quot;&amp;lt;&amp;quot;]=30, [&amp;quot;&amp;gt;&amp;quot;]=60 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 25,&lt;br /&gt;
      Chemfuel = 15,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;Mortars&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Shell_HighExplosive&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Shell_HighExplosive&amp;quot;,&lt;br /&gt;
    label = &amp;quot;high-explosive shell&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
      speed = 41,&lt;br /&gt;
      explosionRadius = 2.9,&lt;br /&gt;
      flyOverhead = true,&lt;br /&gt;
      soundHitThickRoof = &amp;quot;Artillery_HitThickRoof&amp;quot;,&lt;br /&gt;
      soundExplode = &amp;quot;MortarBomb_Explode&amp;quot;,&lt;br /&gt;
      soundImpactAnticipate = &amp;quot;MortarRound_PreImpact&amp;quot;,&lt;br /&gt;
      soundAmbient = &amp;quot;MortarRound_Ambient&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Shell_Incendiary&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableShellBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Shell_Incendiary&amp;quot;,&lt;br /&gt;
    label = &amp;quot;incendiary shell&amp;quot;,&lt;br /&gt;
    description = [[A shell filled with flammable gel and a small explosive charge. Starts fires when detonated. Can be fired from mortars or installed as a trap. Explodes when damaged.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 2.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        explosiveExpandPerStackcount = 0.4,&lt;br /&gt;
        startWickHitPointsPercent = 0.7,&lt;br /&gt;
        wickTicks = { [&amp;quot;&amp;lt;&amp;quot;]=30, [&amp;quot;&amp;gt;&amp;quot;]=60 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
      Chemfuel = 20,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;Mortars&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Shell_Incendiary&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Shell_Incendiary&amp;quot;,&lt;br /&gt;
    label = &amp;quot;incendiary shell&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      speed = 41,&lt;br /&gt;
      explosionRadius = 2.9,&lt;br /&gt;
      preExplosionSpawnThingDef = &amp;quot;Filth_Fuel&amp;quot;,&lt;br /&gt;
      preExplosionSpawnChance = 0.25,&lt;br /&gt;
      flyOverhead = true,&lt;br /&gt;
      soundHitThickRoof = &amp;quot;Artillery_HitThickRoof&amp;quot;,&lt;br /&gt;
      soundExplode = &amp;quot;MortarIncendiary_Explode&amp;quot;,&lt;br /&gt;
      soundImpactAnticipate = &amp;quot;MortarRound_PreImpact&amp;quot;,&lt;br /&gt;
      soundAmbient = &amp;quot;MortarRound_Ambient&amp;quot;,&lt;br /&gt;
      ai_IsIncendiary = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Shell_EMP&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableShellBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Shell_EMP&amp;quot;,&lt;br /&gt;
    label = &amp;quot;EMP shell&amp;quot;,&lt;br /&gt;
    description = [[A shell filled with batteries and antennas, for generating an electromagnetic pulse when detonated. Electromagnetic pulses temporarily disable electrical devices and mechanoids. Can be fired from mortars or installed as a trap. Explodes when damaged.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 11.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
        explosiveExpandPerStackcount = 0.4,&lt;br /&gt;
        startWickHitPointsPercent = 0.7,&lt;br /&gt;
        wickTicks = { [&amp;quot;&amp;lt;&amp;quot;]=30, [&amp;quot;&amp;gt;&amp;quot;]=60 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 25,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Shell_EMP&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Shell_EMP&amp;quot;,&lt;br /&gt;
    label = &amp;quot;EMP shell&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
      speed = 41,&lt;br /&gt;
      explosionRadius = 8.9,&lt;br /&gt;
      flyOverhead = true,&lt;br /&gt;
      soundHitThickRoof = &amp;quot;Artillery_HitThickRoof&amp;quot;,&lt;br /&gt;
      soundExplode = &amp;quot;Explosion_EMP&amp;quot;,&lt;br /&gt;
      soundImpactAnticipate = &amp;quot;MortarRound_PreImpact&amp;quot;,&lt;br /&gt;
      soundAmbient = &amp;quot;MortarRound_Ambient&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Shell_Smoke&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableShellBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Shell_Smoke&amp;quot;,&lt;br /&gt;
    label = &amp;quot;Smoke shell&amp;quot;,&lt;br /&gt;
    description = [[A shell that generates a cloud of smoke when detonated, obscuring incoming shots and preventing turrets from locking on. Can be fired from mortars or installed as a trap. Explodes when damaged.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveDamageType = &amp;quot;Smoke&amp;quot;,&lt;br /&gt;
        explosiveRadius = 11,&lt;br /&gt;
        postExplosionSpawnThingDef = &amp;quot;Gas_Smoke&amp;quot;,&lt;br /&gt;
        postExplosionSpawnChance = 1,&lt;br /&gt;
        postExplosionSpawnThingCount = 1,&lt;br /&gt;
        wickTicks = { [&amp;quot;&amp;lt;&amp;quot;]=30, [&amp;quot;&amp;gt;&amp;quot;]=60 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 35,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;Mortars&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Shell_Smoke&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Shell_Smoke&amp;quot;,&lt;br /&gt;
    label = &amp;quot;Smoke shell&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Smoke&amp;quot;,&lt;br /&gt;
      speed = 41,&lt;br /&gt;
      explosionRadius = 7.2,&lt;br /&gt;
      flyOverhead = true,&lt;br /&gt;
      soundHitThickRoof = &amp;quot;Artillery_HitThickRoof&amp;quot;,&lt;br /&gt;
      soundExplode = &amp;quot;Explosion_Smoke&amp;quot;,&lt;br /&gt;
      soundImpactAnticipate = &amp;quot;MortarRound_PreImpact&amp;quot;,&lt;br /&gt;
      soundAmbient = &amp;quot;MortarRound_Ambient&amp;quot;,&lt;br /&gt;
      postExplosionSpawnThingDef = &amp;quot;Gas_Smoke&amp;quot;,&lt;br /&gt;
      postExplosionSpawnChance = 1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Shell_Firefoam&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MakeableShellBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Shell_Firefoam&amp;quot;,&lt;br /&gt;
    label = &amp;quot;firefoam shell&amp;quot;,&lt;br /&gt;
    description = [[A pressurized shell filled with fire-retardant foam. Can be fired from mortars or installed as a trap. Explodes when damaged.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 9.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Extinguish&amp;quot;,&lt;br /&gt;
        explosiveExpandPerStackcount = 0.4,&lt;br /&gt;
        startWickHitPointsPercent = 0.7,&lt;br /&gt;
        postExplosionSpawnThingDef = &amp;quot;Filth_FireFoam&amp;quot;,&lt;br /&gt;
        postExplosionSpawnChance = 1,&lt;br /&gt;
        postExplosionSpawnThingCount = 3,&lt;br /&gt;
        applyDamageToExplosionCellsNeighbors = true,&lt;br /&gt;
        explosionEffect = &amp;quot;ExtinguisherExplosion&amp;quot;,&lt;br /&gt;
        wickTicks = { [&amp;quot;&amp;lt;&amp;quot;]=30, [&amp;quot;&amp;gt;&amp;quot;]=60 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 35,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;Firefoam&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Shell_Firefoam&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Shell_Firefoam&amp;quot;,&lt;br /&gt;
    label = &amp;quot;firefoam shell&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Extinguish&amp;quot;,&lt;br /&gt;
      speed = 41,&lt;br /&gt;
      explosionRadius = 5,&lt;br /&gt;
      flyOverhead = true,&lt;br /&gt;
      soundHitThickRoof = &amp;quot;Artillery_HitThickRoof&amp;quot;,&lt;br /&gt;
      soundExplode = &amp;quot;Explosion_EMP&amp;quot;,&lt;br /&gt;
      soundImpactAnticipate = &amp;quot;MortarRound_PreImpact&amp;quot;,&lt;br /&gt;
      soundAmbient = &amp;quot;MortarRound_Ambient&amp;quot;,&lt;br /&gt;
      postExplosionSpawnThingDef = &amp;quot;Filth_FireFoam&amp;quot;,&lt;br /&gt;
      postExplosionSpawnChance = 1,&lt;br /&gt;
      postExplosionSpawnThingCount = 3,&lt;br /&gt;
      applyDamageToExplosionCellsNeighbors = true,&lt;br /&gt;
      explosionEffect = &amp;quot;ExtinguisherExplosion&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Shell_AntigrainWarhead&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShellBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Shell_AntigrainWarhead&amp;quot;,&lt;br /&gt;
    label = &amp;quot;antigrain warhead&amp;quot;,&lt;br /&gt;
    description = [[An ultra-tech warhead powered by a grain of antimatter. Usually used by spacecraft or glitterworld war machines, it creates a huge explosion and starts fires around the target. Can be fired from mortars or installed as a trap. Explodes when damaged.]],&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1200,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 14.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;BombSuper&amp;quot;,&lt;br /&gt;
        explosiveExpandPerStackcount = 0.4,&lt;br /&gt;
        startWickHitPointsPercent = 0.7,&lt;br /&gt;
        chanceToStartFire = 0.22,&lt;br /&gt;
        damageFalloff = true,&lt;br /&gt;
        explosionEffect = &amp;quot;GiantExplosion&amp;quot;,&lt;br /&gt;
        explosionSound = &amp;quot;Explosion_GiantBomb&amp;quot;,&lt;br /&gt;
        wickTicks = { [&amp;quot;&amp;lt;&amp;quot;]=60, [&amp;quot;&amp;gt;&amp;quot;]=120 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Shell_AntigrainWarhead&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Shell.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Shell_AntigrainWarhead&amp;quot;,&lt;br /&gt;
    label = &amp;quot;antigrain warhead&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;BombSuper&amp;quot;,&lt;br /&gt;
      speed = 41,&lt;br /&gt;
      explosionRadius = 14.9,&lt;br /&gt;
      explosionChanceToStartFire = 0.22,&lt;br /&gt;
      explosionDamageFalloff = true,&lt;br /&gt;
      explosionEffect = &amp;quot;GiantExplosion&amp;quot;,&lt;br /&gt;
      flyOverhead = true,&lt;br /&gt;
      soundHitThickRoof = &amp;quot;Artillery_HitThickRoof&amp;quot;,&lt;br /&gt;
      soundExplode = &amp;quot;Explosion_GiantBomb&amp;quot;,&lt;br /&gt;
      soundImpactAnticipate = &amp;quot;MortarRound_PreImpact&amp;quot;,&lt;br /&gt;
      soundAmbient = &amp;quot;MortarRound_Ambient&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Silver&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Silver&amp;quot;,&lt;br /&gt;
    label = &amp;quot;silver&amp;quot;,&lt;br /&gt;
    description = [[This metal is mostly used as a commodity currency. It can also be used for making decorations.]],&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1,&lt;br /&gt;
      Mass = 0.008,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.72,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.36,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.36,&lt;br /&gt;
      StuffPower_Insulation_Cold = 3,&lt;br /&gt;
      StuffPower_Insulation_Heat = 0,&lt;br /&gt;
      SharpDamageMultiplier = 0.85,&lt;br /&gt;
      BluntDamageMultiplier = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ResourcesRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stackLimit = 500,&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statOffsets = {&lt;br /&gt;
        Beauty = 6,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 0.7,&lt;br /&gt;
        Flammability = 0.4,&lt;br /&gt;
        Beauty = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gold&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gold&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gold&amp;quot;,&lt;br /&gt;
    description = [[The most seductive metal of them all. While it is too soft to be of much practical use, it is strikingly beautiful and never tarnishes. Millions have died in attempting to feed the endless human thirst for gold.]],&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 10,&lt;br /&gt;
      RoyalFavorValue = 0.015,&lt;br /&gt;
      Mass = 0.008,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.72,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.36,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.36,&lt;br /&gt;
      StuffPower_Insulation_Cold = 3,&lt;br /&gt;
      StuffPower_Insulation_Heat = 0,&lt;br /&gt;
      SharpDamageMultiplier = 0.75,&lt;br /&gt;
      BluntDamageMultiplier = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ResourcesRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stackLimit = 500,&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statOffsets = {&lt;br /&gt;
        Beauty = 20,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 0.6,&lt;br /&gt;
        Flammability = 0.4,&lt;br /&gt;
        Beauty = 4,&lt;br /&gt;
        WorkToMake = 0.9,&lt;br /&gt;
        WorkToBuild = 0.9,&lt;br /&gt;
        MeleeWeapon_CooldownMultiplier = 1.0,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Steel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Steel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;steel&amp;quot;,&lt;br /&gt;
    description = [[An iron-carbon metal alloy used for building a huge variety of structures, weapons, and machines.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.9,&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.9,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.45,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.60,&lt;br /&gt;
      StuffPower_Insulation_Cold = 3,&lt;br /&gt;
      StuffPower_Insulation_Heat = 0,&lt;br /&gt;
      SharpDamageMultiplier = 1,&lt;br /&gt;
      BluntDamageMultiplier = 1,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ResourcesRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1,&lt;br /&gt;
        Beauty = 1,&lt;br /&gt;
        Flammability = 0.4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plasteel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plasteel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;plasteel&amp;quot;,&lt;br /&gt;
    description = [[Advanced spacer tech structural material. Plasteel is extremely strong due to its unique molecular structure.]],&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 9,&lt;br /&gt;
      Mass = 0.25,&lt;br /&gt;
      StuffPower_Armor_Sharp = 1.14,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.55,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.65,&lt;br /&gt;
      StuffPower_Insulation_Cold = 3,&lt;br /&gt;
      StuffPower_Insulation_Heat = 0,&lt;br /&gt;
      SharpDamageMultiplier = 1.1,&lt;br /&gt;
      BluntDamageMultiplier = 0.9,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ResourcesRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 2.8,&lt;br /&gt;
        Beauty = 1,&lt;br /&gt;
        Flammability = 0,&lt;br /&gt;
        WorkToMake = 2.2,&lt;br /&gt;
        WorkToBuild = 2.2,&lt;br /&gt;
        MeleeWeapon_CooldownMultiplier = 0.8,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WoodLog&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceVerbBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wood&amp;quot;,&lt;br /&gt;
    description = [[Wood from trees or other fibrous plants. Useful for building structures and weapons. It is a good fuel for campfires and generators, and can be refined into chemfuel. In a pinch, a piece of wood can be used as a weapon or a leg.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.2,&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Mass = 0.4,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      DeteriorationRate = 0.5,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.54,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.54,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.40,&lt;br /&gt;
      StuffPower_Insulation_Cold = 8,&lt;br /&gt;
      StuffPower_Insulation_Heat = 4,&lt;br /&gt;
      SharpDamageMultiplier = 0.40,&lt;br /&gt;
      BluntDamageMultiplier = 0.9,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 0.65,&lt;br /&gt;
        Beauty = 1,&lt;br /&gt;
        Flammability = 1,&lt;br /&gt;
        WorkToMake = 0.7,&lt;br /&gt;
        WorkToBuild = 0.7,&lt;br /&gt;
        DoorOpenSpeed = 1.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ResourcesRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;log&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Uranium&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
    label = &amp;quot;uranium&amp;quot;,&lt;br /&gt;
    description = [[A dark, heavy metal. While it is best known as a fuel for nuclear devices, its extreme density and hardness also make it good for making certain weapons, armor, and ammunition.]],&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 6,&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
      StuffPower_Armor_Sharp = 1.08,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.54,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.65,&lt;br /&gt;
      StuffPower_Insulation_Cold = 3,&lt;br /&gt;
      StuffPower_Insulation_Heat = 0,&lt;br /&gt;
      SharpDamageMultiplier = 1.1,&lt;br /&gt;
      BluntDamageMultiplier = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ResourcesRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 2.5,&lt;br /&gt;
        WorkToMake = 1.9,&lt;br /&gt;
        WorkToBuild = 1.9,&lt;br /&gt;
        Beauty = 0.5,&lt;br /&gt;
        Flammability = 0.0,&lt;br /&gt;
        DoorOpenSpeed = 0.75,&lt;br /&gt;
        MeleeWeapon_CooldownMultiplier = 1.10,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Jade&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Jade&amp;quot;,&lt;br /&gt;
    label = &amp;quot;jade&amp;quot;,&lt;br /&gt;
    description = [[A hard, green stone. Because of its beauty and rarity, jade is often used for ornaments and decorations. Its hardness and density also makes it a good material for blunt weapons.]],&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 5,&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.9,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.45,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.54,&lt;br /&gt;
      StuffPower_Insulation_Cold = 3,&lt;br /&gt;
      StuffPower_Insulation_Heat = 0,&lt;br /&gt;
      BluntDamageMultiplier = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ResourcesRaw&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = false,&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Stony&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statOffsets = {&lt;br /&gt;
        Beauty = 10,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 0.5,&lt;br /&gt;
        WorkToMake = 1.4,&lt;br /&gt;
        WorkToBuild = 5.0,&lt;br /&gt;
        Beauty = 2.5,&lt;br /&gt;
        Flammability = 0,&lt;br /&gt;
        MeleeWeapon_CooldownMultiplier = 1.3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Cloth&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cloth&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cloth&amp;quot;,&lt;br /&gt;
    description = [[Cloth woven from organic fibers.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.36,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.18,&lt;br /&gt;
      StuffPower_Insulation_Cold = 18,&lt;br /&gt;
      StuffPower_Insulation_Heat = 18,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      MarketValue = 1.5,&lt;br /&gt;
      Mass = 0.026,&lt;br /&gt;
      Flammability = 1.2,&lt;br /&gt;
      DeteriorationRate = 4,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Flammability = 1.2,&lt;br /&gt;
        Beauty = 1,&lt;br /&gt;
      },&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Textiles&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompColorable&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Synthread&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Synthread&amp;quot;,&lt;br /&gt;
    label = &amp;quot;synthread&amp;quot;,&lt;br /&gt;
    description = [[Spacer-tech synthetic fabric designed for making ordinary clothes. It is soft, light, strong, and insulates well.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      MarketValue = 4,&lt;br /&gt;
      Mass = 0.025,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
      DeteriorationRate = 3,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.94,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.26,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.90,&lt;br /&gt;
      StuffPower_Insulation_Cold = 22,&lt;br /&gt;
      StuffPower_Insulation_Heat = 22,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Flammability = 0.7,&lt;br /&gt;
        MaxHitPoints = 1.3,&lt;br /&gt;
        Beauty = 2.3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Textiles&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DevilstrandCloth&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DevilstrandCloth&amp;quot;,&lt;br /&gt;
    label = &amp;quot;devilstrand&amp;quot;,&lt;br /&gt;
    description = [[Fabric spun from microfibers extracted from devilstrand mushrooms. It is very tough, good at insulating, and protects exceptionally well against flame.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      MarketValue = 5.5,&lt;br /&gt;
      Mass = 0.032,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      DeteriorationRate = 3,&lt;br /&gt;
      StuffPower_Armor_Sharp = 1.40,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.36,&lt;br /&gt;
      StuffPower_Armor_Heat = 3.00,&lt;br /&gt;
      StuffPower_Insulation_Cold = 20,&lt;br /&gt;
      StuffPower_Insulation_Heat = 24,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Flammability = 0.4,&lt;br /&gt;
        MaxHitPoints = 1.3,&lt;br /&gt;
        Beauty = 3.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Textiles&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompColorable&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Hyperweave&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Hyperweave&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hyperweave&amp;quot;,&lt;br /&gt;
    description = [[Nano-fibers woven into sheets molecule-by-molecule using specialized production mechanites. While it flexes freely most of the time, it stiffens to absorb blows as they land, and is incredibly difficult to break. The secrets of its production are known only to the most advanced glitterworld cultures.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      MarketValue = 9,&lt;br /&gt;
      Mass = 0.038,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      DeteriorationRate = 1.0,&lt;br /&gt;
      StuffPower_Armor_Sharp = 2.00,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.54,&lt;br /&gt;
      StuffPower_Armor_Heat = 2.88,&lt;br /&gt;
      StuffPower_Insulation_Cold = 26,&lt;br /&gt;
      StuffPower_Insulation_Heat = 26,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Flammability = 0.4,&lt;br /&gt;
        MaxHitPoints = 2.4,&lt;br /&gt;
        Beauty = 5.5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Textiles&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WoolBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;WoolBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stackLimit = 100,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 90,&lt;br /&gt;
      MarketValue = 2.7,&lt;br /&gt;
      Mass = 0.028,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      DeteriorationRate = 3.4,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.36,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.00,&lt;br /&gt;
      StuffPower_Armor_Heat = 1.10,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Flammability = 1.7,&lt;br /&gt;
        Beauty = 1.5,&lt;br /&gt;
      },&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Textiles&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WoolMegasloth&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;WoolBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WoolMegasloth&amp;quot;,&lt;br /&gt;
    label = &amp;quot;megasloth wool&amp;quot;,&lt;br /&gt;
    description = [[While somewhat coarse, megasloth wool's long fibers make it very strong. It is exceptionally warm.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.80,&lt;br /&gt;
      StuffPower_Insulation_Cold = 34,&lt;br /&gt;
      StuffPower_Insulation_Heat = 12,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WoolMuffalo&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;WoolBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WoolMuffalo&amp;quot;,&lt;br /&gt;
    label = &amp;quot;muffalo wool&amp;quot;,&lt;br /&gt;
    description = [[Soft, light and provides very good insulation. Muffalo wool clothes can keep the body warm even in very cold conditions.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      StuffPower_Insulation_Cold = 30,&lt;br /&gt;
      StuffPower_Insulation_Heat = 12,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WoolAlpaca&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;WoolBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WoolAlpaca&amp;quot;,&lt;br /&gt;
    label = &amp;quot;alpaca wool&amp;quot;,&lt;br /&gt;
    description = [[The remarkably soft wool of an alpaca. It is very warm.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      DeteriorationRate = 2.6,&lt;br /&gt;
      StuffPower_Insulation_Cold = 28,&lt;br /&gt;
      StuffPower_Insulation_Heat = 16,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WoolBison&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;WoolBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WoolBison&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bison wool&amp;quot;,&lt;br /&gt;
    description = [[Thick and coarse wool of a bison. Quite warm.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      StuffPower_Insulation_Cold = 26,&lt;br /&gt;
      StuffPower_Insulation_Heat = 12,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WoolSheep&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;WoolBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WoolSheep&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sheep wool&amp;quot;,&lt;br /&gt;
    description = [[Sheep's wool. It provides good insulation.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      StuffPower_Insulation_Cold = 26,&lt;br /&gt;
      StuffPower_Insulation_Heat = 10,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:LeatherBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    description = [[Tanned, dried, scraped skin. A good traditional material for making clothes and bags.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 60,&lt;br /&gt;
      DeteriorationRate = 2,&lt;br /&gt;
      Mass = 0.03,&lt;br /&gt;
      Flammability = 1,&lt;br /&gt;
      MarketValue = 2.1,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.81,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.24,&lt;br /&gt;
      StuffPower_Armor_Heat = 1.5,&lt;br /&gt;
      StuffPower_Insulation_Cold = 16,&lt;br /&gt;
      StuffPower_Insulation_Heat = 16,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Leathers&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Plain&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
    label = &amp;quot;plainleather&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Dog&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Dog&amp;quot;,&lt;br /&gt;
    label = &amp;quot;dog leather&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2.0,&lt;br /&gt;
      StuffPower_Insulation_Cold = 14,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Wolf&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Wolf&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wolfskin&amp;quot;,&lt;br /&gt;
    description = [[A soft furry pelt harvested from a wolf-like creature. It is difficult to pierce and insulates well against cold.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3.0,&lt;br /&gt;
      StuffPower_Armor_Sharp = 1.02,&lt;br /&gt;
      StuffPower_Insulation_Cold = 24,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Beauty = 1.7,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Panthera&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Panthera&amp;quot;,&lt;br /&gt;
    label = &amp;quot;panthera fur&amp;quot;,&lt;br /&gt;
    description = [[A soft furry pelt harvested from a big cat. It is difficult to pierce and insulates well against heat.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3.0,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.93,&lt;br /&gt;
      StuffPower_Insulation_Heat = 24,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Beauty = 1.7,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Camel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Camel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;camelhide&amp;quot;,&lt;br /&gt;
    description = [[Tanned, dried, scraped camel skin. Good at temperature regulation in hot climates.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2.3,&lt;br /&gt;
      StuffPower_Insulation_Heat = 24,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Beauty = 1.3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Bluefur&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Bluefur&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bluefur&amp;quot;,&lt;br /&gt;
    description = [[The furry pelt of muffalo. Recognizable by its distinctive blue tint. Good at temperature regulation in cold climates.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2.3,&lt;br /&gt;
      StuffPower_Insulation_Cold = 20,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Beauty = 1.3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Bear&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Bear&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bearskin&amp;quot;,&lt;br /&gt;
    description = [[The strong furry leather of a bear. Compared to most leather, it is quite a bit tougher and a bit better at all kinds of temperature regulation.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3.4,&lt;br /&gt;
      StuffPower_Armor_Sharp = 1.12,&lt;br /&gt;
      StuffPower_Insulation_Cold = 20,&lt;br /&gt;
      StuffPower_Insulation_Heat = 20,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Beauty = 1.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_GuineaPig&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_GuineaPig&amp;quot;,&lt;br /&gt;
    label = &amp;quot;guinea pig fur&amp;quot;,&lt;br /&gt;
    description = [[Sheets of guinea pig fur. It is delicate, but luxurious.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 5,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.67,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.14,&lt;br /&gt;
      StuffPower_Insulation_Cold = 38,&lt;br /&gt;
      StuffPower_Insulation_Heat = 18,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 0.6,&lt;br /&gt;
        Beauty = 2.8,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Human&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Human&amp;quot;,&lt;br /&gt;
    label = &amp;quot;human leather&amp;quot;,&lt;br /&gt;
    description = [[Tanned, dried, scraped human skin. Most people find this material horrifying. Some find it fascinating. While a decent leather, it neither protects nor insulates particularly well.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 4.2,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.64,&lt;br /&gt;
      StuffPower_Insulation_Cold = 12,&lt;br /&gt;
      StuffPower_Insulation_Heat = 12,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Pig&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Pig&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pigskin&amp;quot;,&lt;br /&gt;
    description = [[Tanned, dried, scraped pig skin. While a decent leather, it neither protects nor insulates particularly well.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.9,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.64,&lt;br /&gt;
      StuffPower_Insulation_Cold = 12,&lt;br /&gt;
      StuffPower_Insulation_Heat = 12,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Light&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
    label = &amp;quot;lightleather&amp;quot;,&lt;br /&gt;
    description = [[Lightweight, thin leather. Probably harvested from a small animal. Not as protective as thicker leathers.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.9,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.54,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.14,&lt;br /&gt;
      StuffPower_Insulation_Cold = 12,&lt;br /&gt;
      StuffPower_Insulation_Heat = 12,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.0,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Bird&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Bird&amp;quot;,&lt;br /&gt;
    label = &amp;quot;birdskin&amp;quot;,&lt;br /&gt;
    description = [[Tanned, dried, scraped bird skin. It is quite delicate. Without its feathers, it provides little protection from heat or cold.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.8,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.67,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.14,&lt;br /&gt;
      StuffPower_Insulation_Cold = 10,&lt;br /&gt;
      StuffPower_Insulation_Heat = 10,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.0,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Chinchilla&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Chinchilla&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chinchilla fur&amp;quot;,&lt;br /&gt;
    description = [[Tanned, dried, scraped chinchilla skin. Known as an extremely luxurious and insulating fur, it is exceptionally valuable.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 6.5,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.67,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.14,&lt;br /&gt;
      StuffPower_Insulation_Cold = 30,&lt;br /&gt;
      StuffPower_Insulation_Heat = 16,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.0,&lt;br /&gt;
        Beauty = 3.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Fox&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Fox&amp;quot;,&lt;br /&gt;
    label = &amp;quot;foxfur&amp;quot;,&lt;br /&gt;
    description = [[The pelt of a fox. It protects well from the cold and is quite luxurious, fetching a high price.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3.5,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.81,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.21,&lt;br /&gt;
      StuffPower_Insulation_Cold = 20,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.0,&lt;br /&gt;
        Beauty = 2.0,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Lizard&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Lizard&amp;quot;,&lt;br /&gt;
    label = &amp;quot;lizardskin&amp;quot;,&lt;br /&gt;
    description = [[The tanned skin of a cold-blooded reptile. Lizardskin is reasonably tough, but does not insulate well at all.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2.1,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.81,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.27,&lt;br /&gt;
      StuffPower_Insulation_Cold = 12,&lt;br /&gt;
      StuffPower_Insulation_Heat = 12,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.0,&lt;br /&gt;
        Beauty = 1.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Elephant&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Elephant&amp;quot;,&lt;br /&gt;
    label = &amp;quot;elephant leather&amp;quot;,&lt;br /&gt;
    description = [[Tanned, dried, scraped elephant skin. While quite tough, it is a poor insulator.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3.0,&lt;br /&gt;
      StuffPower_Armor_Sharp = 1.12,&lt;br /&gt;
      StuffPower_Insulation_Cold = 14,&lt;br /&gt;
      StuffPower_Insulation_Heat = 12,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.5,&lt;br /&gt;
        Beauty = 1.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Heavy&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Heavy&amp;quot;,&lt;br /&gt;
    label = &amp;quot;heavy fur&amp;quot;,&lt;br /&gt;
    description = [[Thick leather covered in a long, rugged mat of fur. Harvested from a large, hardy animal. This thick skin insulates and protects very well.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3.3,&lt;br /&gt;
      StuffPower_Armor_Sharp = 1.24,&lt;br /&gt;
      StuffPower_Insulation_Cold = 30,&lt;br /&gt;
      StuffPower_Insulation_Heat = 14,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.5,&lt;br /&gt;
        Beauty = 1.85,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Rhinoceros&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Rhinoceros&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rhinoceros leather&amp;quot;,&lt;br /&gt;
    description = [[Tanned, dried, scraped rhinocerous skin. It is exceptionally durable in combat, but provides little protection from weather.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 4.2,&lt;br /&gt;
      StuffPower_Armor_Sharp = 1.29,&lt;br /&gt;
      StuffPower_Insulation_Cold = 14,&lt;br /&gt;
      StuffPower_Insulation_Heat = 14,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.5,&lt;br /&gt;
        Beauty = 2.4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Thrumbo&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Thrumbo&amp;quot;,&lt;br /&gt;
    label = &amp;quot;thrumbofur&amp;quot;,&lt;br /&gt;
    description = [[Furry pelt of a thrumbo. Luxurious and extraordinarily durable. Used for the highest-quality crafts for its insulation and strength.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 14.0,&lt;br /&gt;
      StuffPower_Armor_Sharp = 2.08,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.36,&lt;br /&gt;
      StuffPower_Insulation_Cold = 34,&lt;br /&gt;
      StuffPower_Insulation_Heat = 22,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 2.0,&lt;br /&gt;
        Beauty = 8,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Leather_Patch&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LeatherBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Resource_Stuff_Leather.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Leather_Patch&amp;quot;,&lt;br /&gt;
    label = &amp;quot;patchleather&amp;quot;,&lt;br /&gt;
    description = [[A weak textile created by cutting up and sewing together various types of leathers. Regardless of what kind of leather is used to create it, patchleather's irregular seams make it less tough and less insulating than any intact leather.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1.5,&lt;br /&gt;
      StuffPower_Armor_Sharp = 0.45,&lt;br /&gt;
      StuffPower_Armor_Blunt = 0.19,&lt;br /&gt;
      StuffPower_Armor_Heat = 0.9,&lt;br /&gt;
      StuffPower_Insulation_Cold = 9,&lt;br /&gt;
      StuffPower_Insulation_Heat = 9,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.0,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;UnfinishedThing&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished thing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    tradeability = &amp;quot;None&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      DeteriorationRate = 2.0,&lt;br /&gt;
      Beauty = -8,&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Unfinished&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedSculpture&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedSculpture&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished sculpture&amp;quot;,&lt;br /&gt;
    description = [[An unfinished sculpture.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedGun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedGun&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished gun&amp;quot;,&lt;br /&gt;
    description = [[An unfinished gun of some kind.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedWeapon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedWeapon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished weapon&amp;quot;,&lt;br /&gt;
    description = [[An unfinished weapon.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished simple armor&amp;quot;,&lt;br /&gt;
    description = [[An unfinished piece of simple armor.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedTechArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished advanced armor&amp;quot;,&lt;br /&gt;
    description = [[An unfinished piece of high-tech armor.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedMetallicTechArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedMetallicTechArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished metal armor&amp;quot;,&lt;br /&gt;
    description = [[An unfinished piece of metal armor.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedApparel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedApparel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished apparel&amp;quot;,&lt;br /&gt;
    description = [[An unfinished piece of an apparel.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompColorable&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedBelt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedBelt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished belt&amp;quot;,&lt;br /&gt;
    description = [[An unfinished piece of a belt.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedPack&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedPack&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished pack&amp;quot;,&lt;br /&gt;
    description = [[An unfinished piece of a pack.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedComponent&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedComponent&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished component&amp;quot;,&lt;br /&gt;
    description = [[An unfinished component.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedHealthItemProsthetic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedHealthItemProsthetic&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished prosthetic&amp;quot;,&lt;br /&gt;
    description = [[An unfinished prosthetic.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedHealthItemBionic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedHealthItemBionic&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished bionic&amp;quot;,&lt;br /&gt;
    description = [[An unfinished bionic.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MinifiedThing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Unfinished.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;minified thing&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ShieldBelt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Belts.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ShieldBelt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shield belt&amp;quot;,&lt;br /&gt;
    description = [[A projectile-repulsion device. It will attempt to stop incoming projectiles or shrapnel, but does nothing against melee attacks or heat. It prevents the wearer from firing out, and shuts down instantly if hit by EMP.]],&lt;br /&gt;
    thingClass = &amp;quot;ShieldBelt&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      WorkToMake = 14000,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      EnergyShieldRechargeRate = 0.13,&lt;br /&gt;
      EnergyShieldEnergyMax = 1.1,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
      Steel = 50,&lt;br /&gt;
      Plasteel = 20,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedBelt&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;ShieldBelt&amp;quot;,&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Machining&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      useIngredientsForColor = false,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelUtility&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Waist&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Belt&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;BeltDefense&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HatBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;HatBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Headgear&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HatMakeableBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;HatMakeableBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Headgear&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArmorHelmetMakeableBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ArmorHelmetMakeableBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ArmorMachineableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ArmorHeadgear&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:NobleHatMakeableBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;NobleHatMakeableBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;HeadgearNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_CowboyHat&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;HatMakeableBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;CowboyHat&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_CowboyHat&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cowboy hat&amp;quot;,&lt;br /&gt;
    description = [[Stylish yet rugged, this hat keeps the sun and rain off - and it gives anyone who wears it a bit of extra charm. It is the most important part of traditional western attire.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 25,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToMake = 1800,&lt;br /&gt;
      Mass = 0.14,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.10,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.50,&lt;br /&gt;
      EquipDelay = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialBasic&amp;quot;,&lt;br /&gt;
        &amp;quot;Western&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_BowlerHat&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;CowboyHat&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_BowlerHat&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bowler hat&amp;quot;,&lt;br /&gt;
    description = [[A good-looking hat which projects a slightly urban, money-loving style. Improves social impact.]],&lt;br /&gt;
    costStuffCount = 20,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 1800,&lt;br /&gt;
      Mass = 0.14,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.10,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.40,&lt;br /&gt;
      EquipDelay = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_TribalHeaddress&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;HatMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_TribalHeaddress&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tribal headdress&amp;quot;,&lt;br /&gt;
    description = [[Elegant traditional garb, often with religious significance. Improves social impact.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = {},&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricTailoringBench&amp;quot;,&lt;br /&gt;
        &amp;quot;HandTailoringBench&amp;quot;,&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
      factionPrerequisiteTags = {&lt;br /&gt;
        &amp;quot;Tribal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 6000,&lt;br /&gt;
      Mass = 0.11,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.1,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.15,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Tuque&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;HatMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Tuque&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tuque&amp;quot;,&lt;br /&gt;
    description = [[A soft, thick cap. Great for keeping warm in winter.]],&lt;br /&gt;
    costStuffCount = 20,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToMake = 1200,&lt;br /&gt;
      Mass = 0.07,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.50,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0,&lt;br /&gt;
      EquipDelay = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialBasic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_WarMask&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;HatMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_WarMask&amp;quot;,&lt;br /&gt;
    label = &amp;quot;war mask&amp;quot;,&lt;br /&gt;
    description = [[An artistically terrifying war mask. It hides the wearer's face and makes them more confident.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 25,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 3000,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      Mass = 1.4,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.3,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.05,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.05,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;FullHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Sculpt&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Sculpt&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedSculpture&amp;quot;,&lt;br /&gt;
      factionPrerequisiteTags = {&lt;br /&gt;
        &amp;quot;Tribal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_WarVeil&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;HatMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_WarVeil&amp;quot;,&lt;br /&gt;
    label = &amp;quot;war veil&amp;quot;,&lt;br /&gt;
    description = [[A war veil, made out of reinforced cloth torn to appear damaged in combat. Some believe this functions as a talisman of courage.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 20,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 1400,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      Mass = 0.08,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.05,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.05,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;FullHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      factionPrerequisiteTags = {&lt;br /&gt;
        &amp;quot;Tribal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_SimpleHelmet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArmorHelmetMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_SimpleHelmet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;simple helmet&amp;quot;,&lt;br /&gt;
    description = [[A simple helmet which gives moderate protection against sharp attacks. Not effective against blunt weapons.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 40,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 3200,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.5,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.15,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialMilitaryBasic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_AdvancedHelmet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArmorHelmetMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_AdvancedHelmet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flak helmet&amp;quot;,&lt;br /&gt;
    description = [[A lightweight combat helmet with a complex design, reinforced with plasteel. Not effective against blunt weapons.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;FlakArmor&amp;quot;,&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedMetallicTechArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 8000,&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      Mass = 1.2,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.7,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.15,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 40,&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialMilitaryAdvanced&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelArmorHelmetPowerBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelArmorHelmetPowerBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ArmorHelmetMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;PoweredArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 7,&lt;br /&gt;
      },&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;HiTechArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 21000,&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Mass = 1.5,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      ArmorRating_Sharp = 1.06,&lt;br /&gt;
      ArmorRating_Blunt = 0.45,&lt;br /&gt;
      ArmorRating_Heat = 0.54,&lt;br /&gt;
      Insulation_Cold = 4,&lt;br /&gt;
      Insulation_Heat = 2,&lt;br /&gt;
      EquipDelay = 4,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentSpacer = 1,&lt;br /&gt;
      Plasteel = 40,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;FullHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableApparel&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PowerArmorHelmet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorHelmetPowerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PowerArmorHelmet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;marine helmet&amp;quot;,&lt;br /&gt;
    description = [[A marine armor helmet, with a built-in status computer and layered plasteel-weave plates.\n\nArmor like this is often used by imperial janissaries and rapid-incursion space marines.]],&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;SpacerMilitary&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelArmorHelmetReconBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelArmorHelmetReconBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ArmorHelmetMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;ReconArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 6,&lt;br /&gt;
      },&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;HiTechArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 15750,&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      ArmorRating_Sharp = 0.92,&lt;br /&gt;
      ArmorRating_Blunt = 0.4,&lt;br /&gt;
      ArmorRating_Heat = 0.46,&lt;br /&gt;
      Insulation_Cold = 4,&lt;br /&gt;
      Insulation_Heat = 2,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentSpacer = 1,&lt;br /&gt;
      Plasteel = 30,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;FullHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableApparel&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorHelmetRecon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorHelmetReconBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorHelmetRecon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;recon helmet&amp;quot;,&lt;br /&gt;
    description = [[A high-tech armored helmet with a built-in status computer and a protective plasteel-weave plate.\n\nArmor like this is often used by imperial scout troops or glitterworld police forces.]],&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;SpacerMilitary&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PsychicFoilHelmet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;HatBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Headgear.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PsychicFoilHelmet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic foil helmet&amp;quot;,&lt;br /&gt;
    description = [[A thin helmet containing finely-tuned sheets of psychically-absorptive foil. Reduces the impact of psychic waves.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
      Mass = 1.0,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      ArmorRating_Sharp = 0.09,&lt;br /&gt;
      ArmorRating_Blunt = 0.09,&lt;br /&gt;
      ArmorRating_Heat = 0.27,&lt;br /&gt;
      Insulation_Cold = 2,&lt;br /&gt;
      Insulation_Heat = 1,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialMilitaryBasic&amp;quot;,&lt;br /&gt;
        &amp;quot;IndustrialMilitaryAdvanced&amp;quot;,&lt;br /&gt;
        &amp;quot;SpacerMilitary&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_SmokepopBelt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Packs.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;SmokepopBelt&amp;quot;,&lt;br /&gt;
    defName = &amp;quot;Apparel_SmokepopBelt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smokepop pack&amp;quot;,&lt;br /&gt;
    description = [[A defensive smokescreen. When activated, it will release a cloud of smoke, obscuring incoming shots and preventing turrets from locking on.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 3,&lt;br /&gt;
        ammoDef = &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
        ammoCountToRefill = 10,&lt;br /&gt;
        baseReloadTicks = 60,&lt;br /&gt;
        soundReload = &amp;quot;Standard_Reload&amp;quot;,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;smokepop&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Smokepop&amp;quot;,&lt;br /&gt;
        label = &amp;quot;pop smoke&amp;quot;,&lt;br /&gt;
        violent = false,&lt;br /&gt;
        targetable = false,&lt;br /&gt;
        nonInterruptingSelfCast = true,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedPack&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;SmokepopBelt&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      useIngredientsForColor = false,&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
      Chemfuel = 40,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 1200,&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      SmokepopBeltRadius = 4.9,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelUtility&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Waist&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Belt&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;BeltDefensePop&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PsychicShockLance&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelNoQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Utility.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PsychicShockLance&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic shock lance&amp;quot;,&lt;br /&gt;
    description = [[A limited-use psychic effector. It shocks the target's mind with chaotic images, blocking coherent perception and dropping him into a state of psychic shock. There is a risk of brain damage. It has a long range, but requires line of sight.]],&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Artifact&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
      MarketValue = 550,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelUtility&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Waist&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Belt&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = false,&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_CastTargetEffect&amp;quot;,&lt;br /&gt;
        label = &amp;quot;psychic shock lance&amp;quot;,&lt;br /&gt;
        targetable = true,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        range = 34.9,&lt;br /&gt;
        warmupTime = 0.5,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetBuildings = false,&lt;br /&gt;
          onlyTargetPsychicSensitive = true,&lt;br /&gt;
          neverTargetIncapacitated = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 2,&lt;br /&gt;
        destroyOnEmpty = true,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;charge&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompTargetEffect_PsychicShock&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_BrainDamageChance&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        brainDamageChance = 0.3,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_GoodwillImpact&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        goodwillImpact = -200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_MoteOnTarget&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        moteDef = &amp;quot;Mote_PsycastPsychicEffect&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_MoteConnecting&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        moteDef = &amp;quot;Mote_PsycastPsychicLine&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PsychicInsanityLance&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelNoQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Utility.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PsychicInsanityLance&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic insanity lance&amp;quot;,&lt;br /&gt;
    description = [[A limited-use psychic effector. It overwhelms the target's mind with terrifying perceptual distortions, driving him into a berserk state. There is a risk of brain damage. It has a long range, but requires line of sight.]],&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;Artifact&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
      MarketValue = 650,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelUtility&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Waist&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Belt&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = false,&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_CastTargetEffect&amp;quot;,&lt;br /&gt;
        label = &amp;quot;psychic insanity lance&amp;quot;,&lt;br /&gt;
        targetable = true,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        range = 34.9,&lt;br /&gt;
        warmupTime = 0.5,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetBuildings = false,&lt;br /&gt;
          onlyTargetPsychicSensitive = true,&lt;br /&gt;
          neverTargetIncapacitated = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 2,&lt;br /&gt;
        destroyOnEmpty = true,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;charge&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompTargetEffect_Berserk&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_BrainDamageChance&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        brainDamageChance = 0.3,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_GoodwillImpact&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        goodwillImpact = -200,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_MoteOnTarget&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        moteDef = &amp;quot;Mote_PsycastPsychicEffect&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_TargetEffect_MoteConnecting&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        moteDef = &amp;quot;Mote_PsycastPsychicLine&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelNoQualityBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelNoQualityBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      DeteriorationRate = 2,&lt;br /&gt;
      Beauty = -3,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompColorable&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelNoQualityBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelMakeableBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Tailor&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Tailor&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricTailoringBench&amp;quot;,&lt;br /&gt;
        &amp;quot;HandTailoringBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedApparel&amp;quot;,&lt;br /&gt;
      defaultIngredientFilter = {&lt;br /&gt;
        categories = {&lt;br /&gt;
          &amp;quot;Root&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        disallowedThingDefs = {&lt;br /&gt;
          &amp;quot;Gold&amp;quot;,&lt;br /&gt;
          &amp;quot;Silver&amp;quot;,&lt;br /&gt;
          &amp;quot;Plasteel&amp;quot;,&lt;br /&gt;
          &amp;quot;Jade&amp;quot;,&lt;br /&gt;
          &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArmorSmithableBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ArmorSmithableBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultIngredientFilter = {&lt;br /&gt;
        categories = {&lt;br /&gt;
          &amp;quot;Root&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        disallowedThingDefs = {&lt;br /&gt;
          &amp;quot;Gold&amp;quot;,&lt;br /&gt;
          &amp;quot;Silver&amp;quot;,&lt;br /&gt;
          &amp;quot;Plasteel&amp;quot;,&lt;br /&gt;
          &amp;quot;Jade&amp;quot;,&lt;br /&gt;
          &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArmorMachineableBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ArmorMachineableBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Machining&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedArmor&amp;quot;,&lt;br /&gt;
      defaultIngredientFilter = {&lt;br /&gt;
        categories = {&lt;br /&gt;
          &amp;quot;Root&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        disallowedThingDefs = {&lt;br /&gt;
          &amp;quot;Gold&amp;quot;,&lt;br /&gt;
          &amp;quot;Silver&amp;quot;,&lt;br /&gt;
          &amp;quot;Plasteel&amp;quot;,&lt;br /&gt;
          &amp;quot;Jade&amp;quot;,&lt;br /&gt;
          &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_TribalA&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_TribalA&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tribalwear&amp;quot;,&lt;br /&gt;
    description = [[A full-body garment crafted using neolithic tools. While it may look primitive, it is effective at insulating the wearer.]],&lt;br /&gt;
    costStuffCount = 60,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToMake = 1800,&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.55,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.55,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;OnSkin&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricTailoringBench&amp;quot;,&lt;br /&gt;
        &amp;quot;HandTailoringBench&amp;quot;,&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Parka&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Parka&amp;quot;,&lt;br /&gt;
    label = &amp;quot;parka&amp;quot;,&lt;br /&gt;
    description = [[A parka for staying warm in even the coldest of temperatures.]],&lt;br /&gt;
    costStuffCount = 80,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      WorkToMake = 8000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 2.00,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.00,&lt;br /&gt;
      EquipDelay = 3,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialBasic&amp;quot;,&lt;br /&gt;
        &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Pants&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Pants&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pants&amp;quot;,&lt;br /&gt;
    description = [[A simple set of pants.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 40,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToMake = 1600,&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.20,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.08,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;OnSkin&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialBasic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_BasicShirt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_BasicShirt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;T-shirt&amp;quot;,&lt;br /&gt;
    description = [[A simple T-shirt.]],&lt;br /&gt;
    costStuffCount = 40,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToMake = 1600,&lt;br /&gt;
      Mass = 0.25,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.22,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.10,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;OnSkin&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialBasic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_CollarShirt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_CollarShirt&amp;quot;,&lt;br /&gt;
    description = [[A nice-looking collared shirt with buttons.]],&lt;br /&gt;
    label = &amp;quot;button-down shirt&amp;quot;,&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 45,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToMake = 2700,&lt;br /&gt;
      Mass = 0.3,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.26,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.10,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;OnSkin&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialBasic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Duster&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Duster&amp;quot;,&lt;br /&gt;
    description = [[A long duster coat for blocking the sun and grit of the outdoors.]],&lt;br /&gt;
    label = &amp;quot;duster&amp;quot;,&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 80,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      WorkToMake = 10000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.3,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.60,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.85,&lt;br /&gt;
      EquipDelay = 3,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialAdvanced&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Jacket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Jacket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;jacket&amp;quot;,&lt;br /&gt;
    description = [[A tough jacket to stop scrapes and bruises, and to keep one warm in chilly weather.]],&lt;br /&gt;
    costStuffCount = 70,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 160,&lt;br /&gt;
      WorkToMake = 7000,&lt;br /&gt;
      Mass = 1.7,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.3,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.80,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.30,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialAdvanced&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Worker&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PlateArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArmorSmithableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PlateArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;plate armor&amp;quot;,&lt;br /&gt;
    description = [[Overlapping solid plates of armor covering the entire body from neck to feet.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedMetallicTechArmor&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;PlateArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 7,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 170,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 38000,&lt;br /&gt;
      MaxHitPoints = 290,&lt;br /&gt;
      Mass = 15,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.73,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 1.0,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0,&lt;br /&gt;
      EquipDelay = 15,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Middle&amp;quot;,&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;MedievalMilitary&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_FlakVest&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArmorMachineableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_FlakVest&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flak vest&amp;quot;,&lt;br /&gt;
    description = [[A vest with armor plates inserted on the chest and back. While quite effective at deflecting gunshots and stabbing attacks against the chest, it does nothing to protect the limbs.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;FlakArmor&amp;quot;,&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 9000,&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
      Flammability = 0.6,&lt;br /&gt;
      ArmorRating_Sharp = 1.00,&lt;br /&gt;
      ArmorRating_Blunt = 0.36,&lt;br /&gt;
      ArmorRating_Heat = 0.27,&lt;br /&gt;
      Insulation_Cold = 1,&lt;br /&gt;
      EquipDelay = 5,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Cloth = 30,&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Middle&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialMilitaryBasic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_FlakPants&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArmorMachineableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_FlakPants&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flak pants&amp;quot;,&lt;br /&gt;
    description = [[A pair of pants with armor plates sewn in. While it's not as good as solid armor, it offers effective protection against all manner of attacks while remaining quite comfortable.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;FlakArmor&amp;quot;,&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 9000,&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
      Flammability = 0.6,&lt;br /&gt;
      ArmorRating_Sharp = 0.40,&lt;br /&gt;
      ArmorRating_Blunt = 0.08,&lt;br /&gt;
      ArmorRating_Heat = 0.10,&lt;br /&gt;
      Insulation_Cold = 3.5,&lt;br /&gt;
      Insulation_Heat = 1,&lt;br /&gt;
      EquipDelay = 5,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Cloth = 30,&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;OnSkin&amp;quot;,&lt;br /&gt;
        &amp;quot;Middle&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialMilitaryBasic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_FlakJacket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ArmorMachineableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_FlakJacket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flak jacket&amp;quot;,&lt;br /&gt;
    description = [[A tough fabric jacket with armor plates sewn in. While it's not as good as solid armor, it offers effective protection against all manner of attacks while remaining quite comfortable.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;FlakArmor&amp;quot;,&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Cloth = 50,&lt;br /&gt;
      Steel = 70,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      WorkToMake = 14000,&lt;br /&gt;
      Mass = 7,&lt;br /&gt;
      Flammability = 0.6,&lt;br /&gt;
      ArmorRating_Sharp = 0.40,&lt;br /&gt;
      ArmorRating_Blunt = 0.08,&lt;br /&gt;
      ArmorRating_Heat = 0.10,&lt;br /&gt;
      Insulation_Cold = 14.4,&lt;br /&gt;
      Insulation_Heat = 3,&lt;br /&gt;
      EquipDelay = 3,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;IndustrialAdvanced&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelArmorPowerBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelArmorPowerBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ArmorMachineableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;PoweredArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 7,&lt;br /&gt;
      },&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 60000,&lt;br /&gt;
      MaxHitPoints = 340,&lt;br /&gt;
      Mass = 12,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      ArmorRating_Sharp = 1.06,&lt;br /&gt;
      ArmorRating_Blunt = 0.45,&lt;br /&gt;
      ArmorRating_Heat = 0.54,&lt;br /&gt;
      Insulation_Cold = 34,&lt;br /&gt;
      Insulation_Heat = 10,&lt;br /&gt;
      EquipDelay = 14,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;HiTechArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
      Plasteel = 100,&lt;br /&gt;
      Uranium = 20,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Middle&amp;quot;,&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableApparel&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PowerArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorPowerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PowerArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;marine armor&amp;quot;,&lt;br /&gt;
    description = [[A suit of powered armor. Layered plasteel-weave plates are very effective at stopping attacks, with few vulnerable joint sections. Neuro-memetic assistors allow a human to wear the armor and still move easily.\n\nArmor like this is often used by imperial janissaries and rapid-incursion space marines.]],&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;SpacerMilitary&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelArmorReconBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelArmorReconBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ArmorMachineableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;ReconArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 6,&lt;br /&gt;
      },&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;HiTechArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 45000,&lt;br /&gt;
      MaxHitPoints = 280,&lt;br /&gt;
      Mass = 9,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      ArmorRating_Sharp = 0.92,&lt;br /&gt;
      ArmorRating_Blunt = 0.4,&lt;br /&gt;
      ArmorRating_Heat = 0.46,&lt;br /&gt;
      Insulation_Cold = 32,&lt;br /&gt;
      Insulation_Heat = 9,&lt;br /&gt;
      EquipDelay = 11,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentSpacer = 3,&lt;br /&gt;
      Plasteel = 80,&lt;br /&gt;
      Uranium = 10,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Middle&amp;quot;,&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableApparel&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorRecon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorReconBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorRecon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;recon armor&amp;quot;,&lt;br /&gt;
    description = [[A suit of light partially-powered armor, designed to permit quick movement. Lightweight plasteel-weave plates block attacks without compromising mobility, and neuro-memetic assistors in the lower body allow a human to wear the armor and still move easily.\n\nArmor like this is often used by imperial scout troops and glitterworld police forces.]],&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;SpacerMilitary&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:OrbitalStrikeBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;OrbitalStrikeBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_OrbitalStrikes.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;OrbitalStrike&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bombardment&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrbitalStrikeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_OrbitalStrikes.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bombardment&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bombardment&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Bombardment&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_OrbitalBeam&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        width = 0.2,&lt;br /&gt;
        color = &amp;quot;(255, 20, 20, 242)&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Mote_Bombardment_PreImpact&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MoteBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_OrbitalStrikes.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mote_Bombardment_PreImpact&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;MoteOverhead&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PowerBeam&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrbitalStrikeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_OrbitalStrikes.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PowerBeam&amp;quot;,&lt;br /&gt;
    label = &amp;quot;power beam&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;PowerBeam&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_OrbitalBeam&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        width = 8,&lt;br /&gt;
        color = &amp;quot;(255, 245, 214, 242)&amp;quot;,&lt;br /&gt;
        sound = &amp;quot;OrbitalBeam&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CameraShaker&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mag = 0.03,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AffectsSky&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        skyColors = {&lt;br /&gt;
          sky = &amp;quot;(255, 230, 200)&amp;quot;,&lt;br /&gt;
          shadow = &amp;quot;(225, 220, 185)&amp;quot;,&lt;br /&gt;
          overlay = &amp;quot;(255, 255, 255)&amp;quot;,&lt;br /&gt;
          saturation = 1.3,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SignalAction_Letter&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SignalActionBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_SignalActions.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SignalAction_Letter&amp;quot;,&lt;br /&gt;
    label = &amp;quot;signal action - letter&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;SignalAction_Letter&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SignalAction_Ambush&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SignalActionBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_SignalActions.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SignalAction_Ambush&amp;quot;,&lt;br /&gt;
    label = &amp;quot;signal action - ambush&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;SignalAction_Ambush&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SkyfallerBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;SkyfallerBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Skyfaller&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    altitudeLayer = &amp;quot;Skyfaller&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DropPodIncoming&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SkyfallerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DropPodIncoming&amp;quot;,&lt;br /&gt;
    label = &amp;quot;drop pod (incoming)&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;DropPodIncoming&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DropPodLeaving&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SkyfallerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DropPodLeaving&amp;quot;,&lt;br /&gt;
    label = &amp;quot;drop pod (leaving)&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;DropPodLeaving&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShipChunkIncoming&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SkyfallerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipChunkIncoming&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship chunk (incoming)&amp;quot;,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CrashedShipPartIncoming&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SkyfallerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CrashedShipPartIncoming&amp;quot;,&lt;br /&gt;
    label = &amp;quot;crashed ship part (incoming)&amp;quot;,&lt;br /&gt;
    size = {6, 3},&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeteoriteIncoming&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SkyfallerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeteoriteIncoming&amp;quot;,&lt;br /&gt;
    label = &amp;quot;meteorite (incoming)&amp;quot;,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EtherealThingBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    category = &amp;quot;Ethereal&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:RectTrigger&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RectTrigger&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rect trigger&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;RectTrigger&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TriggerUnfogged&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TriggerUnfogged&amp;quot;,&lt;br /&gt;
    label = &amp;quot;trigger unfogged&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;TriggerUnfogged&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Explosion&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Explosion&amp;quot;,&lt;br /&gt;
    label = &amp;quot;explosion&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Explosion&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Blight&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Blight&amp;quot;,&lt;br /&gt;
    label = &amp;quot;blight&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Blight&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Tornado&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Tornado&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tornado&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Tornado&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WindSource&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TunnelHiveSpawner&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TunnelHiveSpawner&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tunnel&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;TunnelHiveSpawner&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PawnFlyerBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;PawnFlyerBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    label = &amp;quot;flying&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;PawnFlyer&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    altitudeLayer = &amp;quot;Skyfaller&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseFilth&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Filth&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Filth&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Filth&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -15,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Dirt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Dirt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;dirt&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_AnimalFilth&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_AnimalFilth&amp;quot;,&lt;br /&gt;
    label = &amp;quot;animal filth&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Trash&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Trash&amp;quot;,&lt;br /&gt;
    label = &amp;quot;trash&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Sand&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Sand&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sand&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_RubbleRock&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_RubbleRock&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rock rubble&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_RubbleBuilding&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_RubbleBuilding&amp;quot;,&lt;br /&gt;
    label = &amp;quot;building rubble&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SlagRubble&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SlagRubble&amp;quot;,&lt;br /&gt;
    label = &amp;quot;scattered slag&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SandbagRubble&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SandbagRubble&amp;quot;,&lt;br /&gt;
    label = &amp;quot;scattered sandbags&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Blood&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Blood&amp;quot;,&lt;br /&gt;
    label = &amp;quot;blood&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -30,&lt;br /&gt;
      Cleanliness = -10,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_BloodInsect&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_BloodInsect&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bugblood&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -40,&lt;br /&gt;
      Cleanliness = -15,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_MachineBits&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_MachineBits&amp;quot;,&lt;br /&gt;
    label = &amp;quot;machine bits&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -10,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_AmnioticFluid&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_AmnioticFluid&amp;quot;,&lt;br /&gt;
    label = &amp;quot;amniotic fluid&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -30,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Slime&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Slime&amp;quot;,&lt;br /&gt;
    label = &amp;quot;slime&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -25,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Vomit&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Vomit&amp;quot;,&lt;br /&gt;
    label = &amp;quot;vomit&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -40,&lt;br /&gt;
      Cleanliness = -15,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_FireFoam&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_FireFoam&amp;quot;,&lt;br /&gt;
    label = &amp;quot;firefoam&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -25,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Fuel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Fuel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chemfuel puddle&amp;quot;,&lt;br /&gt;
    description = [[A puddle of flammable chemfuel.]],&lt;br /&gt;
    thingClass = &amp;quot;LiquidFuel&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -10,&lt;br /&gt;
      Cleanliness = -15,&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Flammability = 2.0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_CorpseBile&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_CorpseBile&amp;quot;,&lt;br /&gt;
    label = &amp;quot;corpse bile&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -50,&lt;br /&gt;
      Cleanliness = -20,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Ash&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Ash&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ash&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -12,&lt;br /&gt;
      Cleanliness = -15,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Filth_Water&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFilth&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Filth_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Filth_Water&amp;quot;,&lt;br /&gt;
    label = &amp;quot;water puddle&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -10,&lt;br /&gt;
      Cleanliness = -5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseGas&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseGas&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Gas_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Gas&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gas&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Gas&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Gas&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gas_Smoke&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseGas&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Gas_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gas_Smoke&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoke&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ActiveDropPod&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Things_Special.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ActiveDropPod&amp;quot;,&lt;br /&gt;
    label = &amp;quot;drop pod&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;ActiveDropPod&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 500,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Fire&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Things_Special.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Fire&amp;quot;,&lt;br /&gt;
    label = &amp;quot;fire&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Fire&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Attachment&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;PawnState&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Spark&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Things_Special.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Spark&amp;quot;,&lt;br /&gt;
    label = &amp;quot;spark&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Projectile&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Spark&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Projectile&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      alwaysFreeIntercept = true,&lt;br /&gt;
      speed = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChunkBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ChunkBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Thing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Beauty = -8,&lt;br /&gt;
      Cleanliness = -2,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    pathCostIgnoreRepeat = true,&lt;br /&gt;
    stackLimit = 1,&lt;br /&gt;
    tradeability = &amp;quot;None&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChunkRockBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ChunkBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;ChunkRockBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    description = [[A chunk of rock. Can be cut into usable stone blocks.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;StoneChunks&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:StoneBlocksBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;StoneBlocksBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    description = [[Blocks of stone. Mostly useful for building long-lasting, simple structures.]],&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    tradeability = &amp;quot;Buyable&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      MarketValue = 0.9,&lt;br /&gt;
      SharpDamageMultiplier = 0.6,&lt;br /&gt;
      BluntDamageMultiplier = 1.0,&lt;br /&gt;
      Beauty = -12,&lt;br /&gt;
      ConstructionSpeedFactor = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;StoneBlocks&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      categories = {&lt;br /&gt;
        &amp;quot;Stony&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      statOffsets = {&lt;br /&gt;
        WorkToBuild = 140,&lt;br /&gt;
      },&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MarketValue = 0.4,&lt;br /&gt;
        MaxHitPoints = 1.8,&lt;br /&gt;
        Flammability = 0,&lt;br /&gt;
        WorkToBuild = 6.0,&lt;br /&gt;
        WorkToMake = 1.3,&lt;br /&gt;
        DoorOpenSpeed = 0.45,&lt;br /&gt;
        BedRestEffectiveness = 0.9,&lt;br /&gt;
        MeleeWeapon_CooldownMultiplier = 1.30,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UglyRockBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;UglyRockBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;RockBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Beauty = -2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChunkSlagSteel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ChunkBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChunkSlagSteel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;steel slag chunk&amp;quot;,&lt;br /&gt;
    description = [[A chunk of steel slag. While it's useless in its current form, it can be smelted to recover steel.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Chunks&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    smeltProducts = {&lt;br /&gt;
      Steel = 15,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Sandstone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UglyRockBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;SandstoneBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Sandstone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sandstone&amp;quot;,&lt;br /&gt;
    description = [[A sedimentary rock composed of sand particles compressed together.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 400,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      mineableThing = &amp;quot;ChunkSandstone&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SmoothedSandstone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SandstoneBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmoothedSandstone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoothed sandstone&amp;quot;,&lt;br /&gt;
    description = [[A sedimentary rock composed of sand particles compressed together. The sand layers have been polished to a flat, smooth surface.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      MarketValue = 18,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isNaturalRock = false,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChunkSandstone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ChunkRockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChunkSandstone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sandstone chunk&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 20,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BlocksSandstone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StoneBlocksBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BlocksSandstone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sandstone blocks&amp;quot;,&lt;br /&gt;
    description = [[Blocks of solid sandstone. Sandstone is a relatively soft rock and chips easily.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
      SharpDamageMultiplier = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Beauty = 1.1,&lt;br /&gt;
        MaxHitPoints = 1.4,&lt;br /&gt;
        WorkToBuild = 5.0,&lt;br /&gt;
        WorkToMake = 1.1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Granite&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UglyRockBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;GraniteBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Granite&amp;quot;,&lt;br /&gt;
    label = &amp;quot;granite&amp;quot;,&lt;br /&gt;
    description = [[A very hard igneous rock.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 900,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      mineableThing = &amp;quot;ChunkGranite&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SmoothedGranite&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;GraniteBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmoothedGranite&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoothed granite&amp;quot;,&lt;br /&gt;
    description = [[A very hard igneous rock. The shining surface is filled with a mosaic of black, white, and pink speckles.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      MarketValue = 20,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isNaturalRock = false,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChunkGranite&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ChunkRockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChunkGranite&amp;quot;,&lt;br /&gt;
    label = &amp;quot;granite chunk&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 25,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BlocksGranite&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StoneBlocksBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BlocksGranite&amp;quot;,&lt;br /&gt;
    label = &amp;quot;granite blocks&amp;quot;,&lt;br /&gt;
    description = [[Blocks of solid granite. Granite is a very hard stone.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 1.25,&lt;br /&gt;
      SharpDamageMultiplier = 0.65,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.7,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Limestone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UglyRockBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;LimestoneBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Limestone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;limestone&amp;quot;,&lt;br /&gt;
    description = [[A sedimentary rock formed from the compacted remains of ancient seashells.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 700,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      mineableThing = &amp;quot;ChunkLimestone&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SmoothedLimestone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;LimestoneBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmoothedLimestone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoothed limestone&amp;quot;,&lt;br /&gt;
    description = [[A sedimentary rock formed from the compacted remains of ancient seashells. It glows a smooth white, with light patterns of impurities suspended within.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      MarketValue = 20,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isNaturalRock = false,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChunkLimestone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ChunkRockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChunkLimestone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;limestone chunk&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 22,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BlocksLimestone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StoneBlocksBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BlocksLimestone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;limestone blocks&amp;quot;,&lt;br /&gt;
    description = [[Blocks of solid limestone.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 1.1,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        MaxHitPoints = 1.55,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Slate&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UglyRockBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;SlateBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Slate&amp;quot;,&lt;br /&gt;
    label = &amp;quot;slate&amp;quot;,&lt;br /&gt;
    description = [[A dark-colored metamorphic rock. Its fine layers are emblematic of slaty cleavage.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 500,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      mineableThing = &amp;quot;ChunkSlate&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SmoothedSlate&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;SlateBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmoothedSlate&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoothed slate&amp;quot;,&lt;br /&gt;
    description = [[A dark-colored metamorphic rock. Its fine layers are emblematic of slaty cleavage. Interior strata are clearly visible through the polished surface.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      MarketValue = 20,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isNaturalRock = false,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChunkSlate&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ChunkRockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChunkSlate&amp;quot;,&lt;br /&gt;
    label = &amp;quot;slate chunk&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 18,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BlocksSlate&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StoneBlocksBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BlocksSlate&amp;quot;,&lt;br /&gt;
    label = &amp;quot;slate blocks&amp;quot;,&lt;br /&gt;
    description = [[Blocks of solid slate. A dull-looking rock that chips easily.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 0.9,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Beauty = 1.1,&lt;br /&gt;
        MaxHitPoints = 1.3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Marble&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UglyRockBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;MarbleBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Marble&amp;quot;,&lt;br /&gt;
    label = &amp;quot;marble&amp;quot;,&lt;br /&gt;
    description = [[A soft metamorphic rock.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 450,&lt;br /&gt;
      Beauty = -1,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      mineableThing = &amp;quot;ChunkMarble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SmoothedMarble&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MarbleBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmoothedMarble&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoothed marble&amp;quot;,&lt;br /&gt;
    description = [[A soft metamorphic rock. This semi-transparent rock almost appears to glow with its own inner light.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
      MarketValue = 25,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      isNaturalRock = false,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ChunkMarble&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ChunkRockBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ChunkMarble&amp;quot;,&lt;br /&gt;
    label = &amp;quot;marble chunk&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 25,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BlocksMarble&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;StoneBlocksBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Various_Stone.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BlocksMarble&amp;quot;,&lt;br /&gt;
    label = &amp;quot;marble blocks&amp;quot;,&lt;br /&gt;
    description = [[Blocks of solid marble. Marble is a soft, beautiful stone, known for being easy to sculpt.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 1.25,&lt;br /&gt;
    },&lt;br /&gt;
    stuffProps = {&lt;br /&gt;
      statFactors = {&lt;br /&gt;
        Beauty = 1.35,&lt;br /&gt;
        MaxHitPoints = 1.2,&lt;br /&gt;
        WorkToBuild = 5.5,&lt;br /&gt;
        WorkToMake = 1.15,&lt;br /&gt;
      },&lt;br /&gt;
      statOffsets = {&lt;br /&gt;
        Beauty = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseWeapon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      DeteriorationRate = 2,&lt;br /&gt;
      Beauty = -3,&lt;br /&gt;
      SellPriceFactor = 0.20,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompEquippable&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseGun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseGun&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;WeaponsRanged&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtWeaponGun&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_WeaponGun&amp;quot;,&lt;br /&gt;
        minQualityForArtistic = &amp;quot;Excellent&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseGunWithQuality&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseGunWithQuality&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMakeableGun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseMakeableGun&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseGunWithQuality&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedGun&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;Gunsmithing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseHumanMakeableGun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseMakeableGun&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;Gun&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableWeapon&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseBullet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    category = &amp;quot;Projectile&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Projectile&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bullet&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMeleeWeapon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseMeleeWeapon&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;WeaponsMelee&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedWeapon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMeleeWeapon_Sharp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseMeleeWeapon_Sharp&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      defaultIngredientFilter = {&lt;br /&gt;
        categories = {&lt;br /&gt;
          &amp;quot;Root&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        disallowedThingDefs = {&lt;br /&gt;
          &amp;quot;Silver&amp;quot;,&lt;br /&gt;
          &amp;quot;Gold&amp;quot;,&lt;br /&gt;
          &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMeleeWeapon_Blunt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseMeleeWeapon_Blunt&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      defaultIngredientFilter = {&lt;br /&gt;
        categories = {&lt;br /&gt;
          &amp;quot;Root&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        disallowedThingDefs = {&lt;br /&gt;
          &amp;quot;Silver&amp;quot;,&lt;br /&gt;
          &amp;quot;Gold&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMeleeWeapon_Sharp_Quality&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseMeleeWeapon_Sharp_Quality&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Sharp&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtWeaponMelee&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_WeaponMelee&amp;quot;,&lt;br /&gt;
        minQualityForArtistic = &amp;quot;Excellent&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMeleeWeapon_Blunt_Quality&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseMeleeWeapon_Blunt_Quality&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Sharp&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;BaseWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtWeaponMelee&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_WeaponMelee&amp;quot;,&lt;br /&gt;
        minQualityForArtistic = &amp;quot;Excellent&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Mace&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Blunt_Quality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeMedieval.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Mace&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mace&amp;quot;,&lt;br /&gt;
    description = [[A refined club, engineered for efficient swinging and deadly impacts.]],&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 6000,&lt;br /&gt;
      Mass = 1.25,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MedievalMeleeDecent&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15.7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Gladius&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Sharp_Quality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeMedieval.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Gladius&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gladius&amp;quot;,&lt;br /&gt;
    description = [[A short sword of ancient design. Good for stabbing or slashing. It's light and nimble, which sometimes lets it beat bigger, heavier weapons.]],&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MedievalMeleeDecent&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 12000,&lt;br /&gt;
      Mass = 0.85,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 16,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;edge&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 16,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_LongSword&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Sharp_Quality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeMedieval.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_LongSword&amp;quot;,&lt;br /&gt;
    label = &amp;quot;longsword&amp;quot;,&lt;br /&gt;
    description = [[The ancient weapon of kings, the longsword can be used for slashing or stabbing.]],&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MedievalMeleeAdvanced&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 100,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 18000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 23,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;edge&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 23,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;LongBlades&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Club&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Blunt&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Club&amp;quot;,&lt;br /&gt;
    label = &amp;quot;club&amp;quot;,&lt;br /&gt;
    description = [[A shaped stick, heavy at one end, for bashing enemies to death. This weapon is so old it's part of human biology. Evolutionary biologists say that a major reason humans can tilt our wrists side-to-side (instead of just forward-and-back like other primates) is to be able to better swing a club.]],&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;NeolithicMeleeBasic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 40,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 1200,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 14,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Knife&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Sharp_Quality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Knife&amp;quot;,&lt;br /&gt;
    label = &amp;quot;knife&amp;quot;,&lt;br /&gt;
    description = [[One of mankind's oldest manufactured objects. The knife has taken many forms, but the concept has always remained the same: A handle for holding and a sharp edge for cutting.]],&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MedievalMeleeBasic&amp;quot;,&lt;br /&gt;
      &amp;quot;NeolithicMeleeBasic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 30,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 1800,&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;blade&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 13,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Ikwa&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Sharp_Quality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Ikwa&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ikwa&amp;quot;,&lt;br /&gt;
    description = [[A short spearhandle attached to a long bladed point, designed to be driven into vital organs with a quick thrust.]],&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;NeolithicMeleeDecent&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 5000,&lt;br /&gt;
      Mass = 1.1,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;edge&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Spear&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Sharp_Quality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Spear&amp;quot;,&lt;br /&gt;
    label = &amp;quot;spear&amp;quot;,&lt;br /&gt;
    description = [[A polearm tipped with a sharp point for stabbing opponents.]],&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;NeolithicMeleeAdvanced&amp;quot;,&lt;br /&gt;
      &amp;quot;MedievalMeleeAdvanced&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 12000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;shaft&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 13,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 23,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;LongBlades&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Revolver&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Revolver&amp;quot;,&lt;br /&gt;
    label = &amp;quot;revolver bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 12,&lt;br /&gt;
      stoppingPower = 1,&lt;br /&gt;
      speed = 55,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_Revolver&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_Revolver&amp;quot;,&lt;br /&gt;
    label = &amp;quot;revolver&amp;quot;,&lt;br /&gt;
    description = [[An ancient pattern double-action revolver. It's not very powerful, but has a decent range for a pistol and is quick on the draw.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 4000,&lt;br /&gt;
      Mass = 1.4,&lt;br /&gt;
      AccuracyTouch = 0.80,&lt;br /&gt;
      AccuracyShort = 0.75,&lt;br /&gt;
      AccuracyMedium = 0.45,&lt;br /&gt;
      AccuracyLong = 0.35,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.6,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;SimpleGun&amp;quot;,&lt;br /&gt;
      &amp;quot;Revolver&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 30,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_Revolver&amp;quot;,&lt;br /&gt;
        warmupTime = 0.3,&lt;br /&gt;
        range = 25.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;grip&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_Autopistol&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_Autopistol&amp;quot;,&lt;br /&gt;
    label = &amp;quot;autopistol&amp;quot;,&lt;br /&gt;
    description = [[An ancient pattern blowback-operated self-loading pistol. It lacks stopping power and range, but is quick to fire.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;BlowbackOperation&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;SimpleGun&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 5000,&lt;br /&gt;
      Mass = 1.2,&lt;br /&gt;
      AccuracyTouch = 0.80,&lt;br /&gt;
      AccuracyShort = 0.70,&lt;br /&gt;
      AccuracyMedium = 0.40,&lt;br /&gt;
      AccuracyLong = 0.30,&lt;br /&gt;
      RangedWeapon_Cooldown = 1,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 30,&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_Autopistol&amp;quot;,&lt;br /&gt;
        warmupTime = 0.3,&lt;br /&gt;
        range = 25.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;grip&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Autopistol&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Autopistol&amp;quot;,&lt;br /&gt;
    label = &amp;quot;autopistol bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 10,&lt;br /&gt;
      speed = 55,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_MachinePistol&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_MachinePistol&amp;quot;,&lt;br /&gt;
    label = &amp;quot;machine pistol&amp;quot;,&lt;br /&gt;
    description = [[A micro-submachine gun. It is short-ranged, but very light in the hands. Its rate of fire tends to make up for its weakness.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;BlowbackOperation&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 11000,&lt;br /&gt;
      Mass = 2.5,&lt;br /&gt;
      AccuracyTouch = 0.90,&lt;br /&gt;
      AccuracyShort = 0.65,&lt;br /&gt;
      AccuracyMedium = 0.35,&lt;br /&gt;
      AccuracyLong = 0.15,&lt;br /&gt;
      RangedWeapon_Cooldown = 0.9,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 45,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_MachinePistol&amp;quot;,&lt;br /&gt;
        warmupTime = 0.5,&lt;br /&gt;
        range = 19.9,&lt;br /&gt;
        burstShotCount = 3,&lt;br /&gt;
        ticksBetweenBurstShots = 7,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;grip&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_MachinePistol&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_MachinePistol&amp;quot;,&lt;br /&gt;
    label = &amp;quot;machine pistol bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 6,&lt;br /&gt;
      speed = 55,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_IncendiaryLauncher&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_IncendiaryLauncher&amp;quot;,&lt;br /&gt;
    label = &amp;quot;incendiary launcher&amp;quot;,&lt;br /&gt;
    description = [[A wide-barreled incendiary bolt launcher. The bolts create small incendiary explosions on impact, starting fires.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 20000,&lt;br /&gt;
      Mass = 3.4,&lt;br /&gt;
      RangedWeapon_Cooldown = 3.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_IncendiaryLauncher&amp;quot;,&lt;br /&gt;
        warmupTime = 3.5,&lt;br /&gt;
        range = 23.9,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_IncendiaryLauncher&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_IncendiaryLauncher&amp;quot;,&lt;br /&gt;
    label = &amp;quot;incendiary bolt&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      speed = 40,&lt;br /&gt;
      damageDef = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      explosionRadius = 1.1,&lt;br /&gt;
      preExplosionSpawnThingDef = &amp;quot;Filth_Fuel&amp;quot;,&lt;br /&gt;
      preExplosionSpawnChance = 0.6,&lt;br /&gt;
      ai_IsIncendiary = true,&lt;br /&gt;
      arcHeightFactor = 0.2,&lt;br /&gt;
      shadowSize = 0.6,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_SmokeLauncher&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_SmokeLauncher&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoke launcher&amp;quot;,&lt;br /&gt;
    description = [[A wide-barreled smoke shell launcher. The shell will upon impact release a cloud of smoke, obscuring incoming shots and preventing turrets from locking on.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 30000,&lt;br /&gt;
      Mass = 3.4,&lt;br /&gt;
      RangedWeapon_Cooldown = 4.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;GrenadeSmoke&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_SmokeLauncher&amp;quot;,&lt;br /&gt;
        warmupTime = 3.5,&lt;br /&gt;
        range = 23.9,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_SmokeLauncher&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_SmokeLauncher&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoke launcher shell&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      speed = 40,&lt;br /&gt;
      damageDef = &amp;quot;Smoke&amp;quot;,&lt;br /&gt;
      explosionRadius = 2.4,&lt;br /&gt;
      postExplosionSpawnThingDef = &amp;quot;Gas_Smoke&amp;quot;,&lt;br /&gt;
      postExplosionSpawnChance = 1,&lt;br /&gt;
      ai_IsIncendiary = true,&lt;br /&gt;
      arcHeightFactor = 0.2,&lt;br /&gt;
      shadowSize = 0.6,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_EmpLauncher&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_EmpLauncher&amp;quot;,&lt;br /&gt;
    label = &amp;quot;EMP launcher&amp;quot;,&lt;br /&gt;
    description = [[A wide-barreled EMP shell launcher. The shell will upon impact release a burst of electromagnetic energy, stunning mechanical targets (mechanoids, turrets, mortars) and depleting shields in the area of effect.]],&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;GrenadeEMP&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 30000,&lt;br /&gt;
      Mass = 3.4,&lt;br /&gt;
      RangedWeapon_Cooldown = 3.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 8,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_EMPLauncher&amp;quot;,&lt;br /&gt;
        warmupTime = 3.5,&lt;br /&gt;
        range = 23.9,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_EMPLauncher&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_EMPLauncher&amp;quot;,&lt;br /&gt;
    label = &amp;quot;EMP launcher shell&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      speed = 40,&lt;br /&gt;
      damageDef = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
      explosionRadius = 1.1,&lt;br /&gt;
      ai_IsIncendiary = true,&lt;br /&gt;
      arcHeightFactor = 0.2,&lt;br /&gt;
      shadowSize = 0.6,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_BoltActionRifle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_BoltActionRifle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bolt-action rifle&amp;quot;,&lt;br /&gt;
    description = [[An ancient pattern bolt-action rifle. With its long range, and low fire rate, it is unlikely to drive animals to revenge, which makes it a favorite weapon for hunting.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 12000,&lt;br /&gt;
      Mass = 3.5,&lt;br /&gt;
      AccuracyTouch = 0.65,&lt;br /&gt;
      AccuracyShort = 0.80,&lt;br /&gt;
      AccuracyMedium = 0.90,&lt;br /&gt;
      AccuracyLong = 0.80,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_BoltActionRifle&amp;quot;,&lt;br /&gt;
        warmupTime = 1.7,&lt;br /&gt;
        range = 36.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_BoltActionRifle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_BoltActionRifle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bolt-action rifle bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 18,&lt;br /&gt;
      stoppingPower = 1.5,&lt;br /&gt;
      speed = 70,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_PumpShotgun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_PumpShotgun&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pump shotgun&amp;quot;,&lt;br /&gt;
    description = [[An ancient design of shotgun that emits a tight-packed spray of pellets. Deadly, but short range.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 12000,&lt;br /&gt;
      Mass = 3.4,&lt;br /&gt;
      AccuracyTouch = 0.80,&lt;br /&gt;
      AccuracyShort = 0.87,&lt;br /&gt;
      AccuracyMedium = 0.77,&lt;br /&gt;
      AccuracyLong = 0.64,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.25,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_Shotgun&amp;quot;,&lt;br /&gt;
        warmupTime = 0.9,&lt;br /&gt;
        range = 15.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Shotgun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Shotgun&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shotgun blast&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 18,&lt;br /&gt;
      stoppingPower = 3,&lt;br /&gt;
      armorPenetrationBase = 0.14,&lt;br /&gt;
      speed = 55,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_ChainShotgun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_ChainShotgun&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chain shotgun&amp;quot;,&lt;br /&gt;
    description = [[A magazine-fed fully automatic shotgun. It is even shorter-ranged than a typical shotgun, but is extraordinarily dangerous due to burst fire.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;GasOperation&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 31000,&lt;br /&gt;
      Mass = 4.5,&lt;br /&gt;
      AccuracyTouch = 0.57,&lt;br /&gt;
      AccuracyShort = 0.64,&lt;br /&gt;
      AccuracyMedium = 0.55,&lt;br /&gt;
      AccuracyLong = 0.45,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.35,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 70,&lt;br /&gt;
      ComponentIndustrial = 5,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_Shotgun&amp;quot;,&lt;br /&gt;
        warmupTime = 1.2,&lt;br /&gt;
        range = 12.9,&lt;br /&gt;
        burstShotCount = 3,&lt;br /&gt;
        ticksBetweenBurstShots = 10,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;IndustrialGunAdvanced&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_HeavySMG&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_HeavySMG&amp;quot;,&lt;br /&gt;
    label = &amp;quot;heavy SMG&amp;quot;,&lt;br /&gt;
    description = [[A compact, wide-caliber slug-thrower. It's got a very short range, but it packs a punch and handles quite well.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;GasOperation&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 24000,&lt;br /&gt;
      Mass = 3.5,&lt;br /&gt;
      AccuracyTouch = 0.85,&lt;br /&gt;
      AccuracyShort = 0.65,&lt;br /&gt;
      AccuracyMedium = 0.35,&lt;br /&gt;
      AccuracyLong = 0.20,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.65,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_HeavySMG&amp;quot;,&lt;br /&gt;
        warmupTime = 0.9,&lt;br /&gt;
        range = 22.9,&lt;br /&gt;
        burstShotCount = 3,&lt;br /&gt;
        ticksBetweenBurstShots = 11,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;IndustrialGunAdvanced&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;grip&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_HeavySMG&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_HeavySMG&amp;quot;,&lt;br /&gt;
    label = &amp;quot;heavy SMG bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 12,&lt;br /&gt;
      speed = 48,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_LMG&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_LMG&amp;quot;,&lt;br /&gt;
    label = &amp;quot;LMG&amp;quot;,&lt;br /&gt;
    description = [[A gas-operated light machine gun. While it is somewhat unwieldy and inaccurate, its long bursts of fire are effective against groups of enemies.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;GasOperation&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 34000,&lt;br /&gt;
      Mass = 8.5,&lt;br /&gt;
      AccuracyTouch = 0.40,&lt;br /&gt;
      AccuracyShort = 0.48,&lt;br /&gt;
      AccuracyMedium = 0.35,&lt;br /&gt;
      AccuracyLong = 0.26,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.8,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 5,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_LMG&amp;quot;,&lt;br /&gt;
        warmupTime = 1.8,&lt;br /&gt;
        range = 25.9,&lt;br /&gt;
        ticksBetweenBurstShots = 7,&lt;br /&gt;
        burstShotCount = 6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;IndustrialGunAdvanced&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_LMG&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_LMG&amp;quot;,&lt;br /&gt;
    label = &amp;quot;LMG bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 11,&lt;br /&gt;
      stoppingPower = 1,&lt;br /&gt;
      speed = 46,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_AssaultRifle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_AssaultRifle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;assault rifle&amp;quot;,&lt;br /&gt;
    description = [[A general-purpose gas-operated assault rifle for field or urban combat. It has good range, decent power, and good accuracy.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;PrecisionRifling&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 40000,&lt;br /&gt;
      Mass = 3.5,&lt;br /&gt;
      AccuracyTouch = 0.60,&lt;br /&gt;
      AccuracyShort = 0.70,&lt;br /&gt;
      AccuracyMedium = 0.65,&lt;br /&gt;
      AccuracyLong = 0.55,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.70,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 7,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_AssaultRifle&amp;quot;,&lt;br /&gt;
        warmupTime = 1.0,&lt;br /&gt;
        range = 30.9,&lt;br /&gt;
        burstShotCount = 3,&lt;br /&gt;
        ticksBetweenBurstShots = 10,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;IndustrialGunAdvanced&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_AssaultRifle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_AssaultRifle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;assault rifle bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 11,&lt;br /&gt;
      speed = 70,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_SniperRifle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_SniperRifle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sniper rifle&amp;quot;,&lt;br /&gt;
    description = [[An ancient design of precision sniper rifle. Bolt action. It has an exceptionally long range, great accuracy and good power. Because it's so unwieldy, other weapons outclass it at close range.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;PrecisionRifling&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 7,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 45000,&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
      AccuracyTouch = 0.50,&lt;br /&gt;
      AccuracyShort = 0.70,&lt;br /&gt;
      AccuracyMedium = 0.86,&lt;br /&gt;
      AccuracyLong = 0.88,&lt;br /&gt;
      RangedWeapon_Cooldown = 2.3,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 8,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_SniperRifle&amp;quot;,&lt;br /&gt;
        warmupTime = 3.5,&lt;br /&gt;
        range = 44.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;SniperRifle&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_SniperRifle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_SniperRifle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sniper rifle bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 25,&lt;br /&gt;
      stoppingPower = 1.5,&lt;br /&gt;
      speed = 100,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_Minigun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_Minigun&amp;quot;,&lt;br /&gt;
    label = &amp;quot;minigun&amp;quot;,&lt;br /&gt;
    description = [[A multi-barrel machine gun. It's unwieldy, but once it starts firing it fires very fast. Where most self-loading guns are powered by the energy from the gunpowder, the minigun uses an electric motor to rapidly cycle cartridges through the weapon.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 60000,&lt;br /&gt;
      Mass = 10,&lt;br /&gt;
      AccuracyTouch = 0.15,&lt;br /&gt;
      AccuracyShort = 0.25,&lt;br /&gt;
      AccuracyMedium = 0.25,&lt;br /&gt;
      AccuracyLong = 0.18,&lt;br /&gt;
      RangedWeapon_Cooldown = 2.3,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 160,&lt;br /&gt;
      ComponentIndustrial = 20,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;MultibarrelWeapons&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 7,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;GunHeavy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_Minigun&amp;quot;,&lt;br /&gt;
        warmupTime = 2.5,&lt;br /&gt;
        range = 30.9,&lt;br /&gt;
        burstShotCount = 25,&lt;br /&gt;
        ticksBetweenBurstShots = 5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrels&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11.7,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Minigun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Minigun&amp;quot;,&lt;br /&gt;
    label = &amp;quot;minigun bullet&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 10,&lt;br /&gt;
      speed = 70,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_TripleRocket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialConsumable.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_TripleRocket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;triple rocket launcher&amp;quot;,&lt;br /&gt;
    description = [[A single-use rocket launcher that fires three large-bore explosive rockets. Good against small groups of tough targets.\n\nBecause of its unwieldiness, single-use limitation, and the massive destruction it causes, it's said that one must be slightly crazy to use this weapon.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1000,&lt;br /&gt;
      Mass = 7,&lt;br /&gt;
      RangedWeapon_Cooldown = 4.5,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;Gun&amp;quot;,&lt;br /&gt;
      &amp;quot;GunSingleUse&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_ShootOneUse&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_Rocket&amp;quot;,&lt;br /&gt;
        forcedMissRadius = 2.9,&lt;br /&gt;
        warmupTime = 4.5,&lt;br /&gt;
        range = 35.9,&lt;br /&gt;
        ticksBetweenBurstShots = 20,&lt;br /&gt;
        burstShotCount = 3,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        stopBurstWithoutLos = false,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11.7,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 3.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        requiredDamageTypeToExplode = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableWeapon&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_Rocket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialConsumable.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_Rocket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rocket&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
      explosionRadius = 3.9,&lt;br /&gt;
      speed = 50,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_DoomsdayRocket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialConsumable.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_DoomsdayRocket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;doomsday rocket launcher&amp;quot;,&lt;br /&gt;
    description = [[A single-use rocket launcher that fires a massive explosive projectile. Good against large groups of soft targets. Starts fires.\n\nBecause of its unwieldiness, single-use limitation, and the massive destruction it causes, it's said that one must be slightly crazy to use this weapon.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1000,&lt;br /&gt;
      Mass = 8,&lt;br /&gt;
      RangedWeapon_Cooldown = 4.5,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;Gun&amp;quot;,&lt;br /&gt;
      &amp;quot;GunSingleUse&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_ShootOneUse&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_DoomsdayRocket&amp;quot;,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        warmupTime = 4.5,&lt;br /&gt;
        range = 35.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11.7,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 7.8,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        requiredDamageTypeToExplode = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableWeapon&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_DoomsdayRocket&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialConsumable.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_DoomsdayRocket&amp;quot;,&lt;br /&gt;
    label = &amp;quot;doomsday rocket&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_DoomsdayRocket&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
      explosionRadius = 7.8,&lt;br /&gt;
      speed = 50,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseGrenadeProjectile&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseGrenadeProjectile&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    category = &amp;quot;Projectile&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Projectile&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    label = &amp;quot;projectile&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      speed = 12,&lt;br /&gt;
      arcHeightFactor = 2,&lt;br /&gt;
      shadowSize = 0.4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMakeableGrenade&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseMakeableGrenade&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedGun&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Weapon_GrenadeFrag&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMakeableGrenade&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Weapon_GrenadeFrag&amp;quot;,&lt;br /&gt;
    label = &amp;quot;frag grenades&amp;quot;,&lt;br /&gt;
    description = [[Old-school fragmentation grenades. They can be thrown a short distance, where they'll explode, damaging anything and anyone nearby.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
      RangedWeapon_Cooldown = 2.66,&lt;br /&gt;
      WorkToMake = 12000,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
      Chemfuel = 80,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;GrenadeDestructive&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Grenades&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;throw frag grenade&amp;quot;,&lt;br /&gt;
        verbClass = &amp;quot;Verb_LaunchProjectile&amp;quot;,&lt;br /&gt;
        range = 12.9,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        warmupTime = 1.5,&lt;br /&gt;
        noiseRadius = 4,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
        defaultProjectile = &amp;quot;Proj_GrenadeFrag&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 2.66,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        requiredDamageTypeToExplode = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseFragGrenadeProjectile&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseFragGrenadeProjectile&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseGrenadeProjectile&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      explosionRadius = 1.9,&lt;br /&gt;
      damageDef = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
      explosionDelay = 100,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Proj_GrenadeFrag&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFragGrenadeProjectile&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Proj_GrenadeFrag&amp;quot;,&lt;br /&gt;
    label = &amp;quot;frag grenade&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Weapon_GrenadeMolotov&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMakeableGrenade&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Weapon_GrenadeMolotov&amp;quot;,&lt;br /&gt;
    label = &amp;quot;molotov cocktails&amp;quot;,&lt;br /&gt;
    description = [[Glass bottles filled with flammable liquid, with a burning cloth in the neck. A favorite weapon of hooligans and desperate warriors from rim to rim.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
      RangedWeapon_Cooldown = 2.66,&lt;br /&gt;
      WorkToMake = 6000,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Cloth = 25,&lt;br /&gt;
      Chemfuel = 80,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;GrenadeDestructive&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Grenades&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;throw molotov&amp;quot;,&lt;br /&gt;
        verbClass = &amp;quot;Verb_LaunchProjectile&amp;quot;,&lt;br /&gt;
        range = 12.9,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        warmupTime = 1.5,&lt;br /&gt;
        noiseRadius = 4,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
        defaultProjectile = &amp;quot;Proj_GrenadeMolotov&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 2.66,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        requiredDamageTypeToExplode = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseIncendiaryProjectile&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseIncendiaryProjectile&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseGrenadeProjectile&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    projectile = {&lt;br /&gt;
      explosionRadius = 1.1,&lt;br /&gt;
      damageDef = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      preExplosionSpawnThingDef = &amp;quot;Filth_Fuel&amp;quot;,&lt;br /&gt;
      ai_IsIncendiary = true,&lt;br /&gt;
      shadowSize = 0.6,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Proj_GrenadeMolotov&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseIncendiaryProjectile&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Proj_GrenadeMolotov&amp;quot;,&lt;br /&gt;
    label = &amp;quot;molotov cocktail&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Weapon_GrenadeEMP&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMakeableGrenade&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Weapon_GrenadeEMP&amp;quot;,&lt;br /&gt;
    label = &amp;quot;EMP grenades&amp;quot;,&lt;br /&gt;
    description = [[Electromagnetic pulse grenades damaging to electronic equipment.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
      RangedWeapon_Cooldown = 2.66,&lt;br /&gt;
      WorkToMake = 24000,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 20,&lt;br /&gt;
      ComponentIndustrial = 6,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;GrenadeEMP&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Grenades&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;throw EMP grenade&amp;quot;,&lt;br /&gt;
        verbClass = &amp;quot;Verb_LaunchProjectile&amp;quot;,&lt;br /&gt;
        range = 12.9,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        warmupTime = 1.5,&lt;br /&gt;
        noiseRadius = 4,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
        defaultProjectile = &amp;quot;Proj_GrenadeEMP&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 2.66,&lt;br /&gt;
        explosiveDamageType = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
        requiredDamageTypeToExplode = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    smeltProducts = {&lt;br /&gt;
      Steel = 10,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Proj_GrenadeEMP&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseGrenadeProjectile&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedIndustrialGrenades.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Proj_GrenadeEMP&amp;quot;,&lt;br /&gt;
    label = &amp;quot;EMP grenade&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      explosionRadius = 3.5,&lt;br /&gt;
      damageDef = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
      explosionDelay = 100,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_ChargeBlasterHeavy&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedMechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_ChargeBlasterHeavy&amp;quot;,&lt;br /&gt;
    label = &amp;quot;charge blaster shot&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 15,&lt;br /&gt;
      speed = 90,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_ChargeBlasterHeavyBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseGunWithQuality&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;Gun_ChargeBlasterHeavyBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedMechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    label = &amp;quot;heavy charge blaster&amp;quot;,&lt;br /&gt;
    description = [[A pulse-charged rapid-fire blaster for area suppressive fire. Heavy cooling allows long, deadly bursts.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1400,&lt;br /&gt;
      Mass = 22,&lt;br /&gt;
      AccuracyTouch = 0.18,&lt;br /&gt;
      AccuracyShort = 0.26,&lt;br /&gt;
      AccuracyMedium = 0.26,&lt;br /&gt;
      AccuracyLong = 0.18,&lt;br /&gt;
      RangedWeapon_Cooldown = 7.4,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;None&amp;quot;,&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11.7,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_ChargeBlasterHeavy&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Gun_ChargeBlasterHeavyBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedMechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_ChargeBlasterHeavy&amp;quot;,&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_ChargeBlasterHeavy&amp;quot;,&lt;br /&gt;
        warmupTime = 1.25,&lt;br /&gt;
        range = 26.9,&lt;br /&gt;
        ticksBetweenBurstShots = 5,&lt;br /&gt;
        burstShotCount = 24,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MechanoidGunHeavy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_InfernoCannon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedMechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_InfernoCannon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;inferno cannon shell&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Projectile_Explosive&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
      speed = 45,&lt;br /&gt;
      explosionRadius = 2.4,&lt;br /&gt;
      preExplosionSpawnThingDef = &amp;quot;Filth_Fuel&amp;quot;,&lt;br /&gt;
      preExplosionSpawnChance = 0.27,&lt;br /&gt;
      ai_IsIncendiary = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_InfernoCannonBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseGunWithQuality&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;Gun_InfernoCannonBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedMechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    label = &amp;quot;inferno cannon&amp;quot;,&lt;br /&gt;
    description = [[An incendiary-shot mini-artillery device. It fires a large incendiary warhead.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1400,&lt;br /&gt;
      Mass = 18,&lt;br /&gt;
      RangedWeapon_Cooldown = 8.4,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;None&amp;quot;,&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11.7,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_InfernoCannon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Gun_InfernoCannonBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedMechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_InfernoCannon&amp;quot;,&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MechanoidGunHeavy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_InfernoCannon&amp;quot;,&lt;br /&gt;
        forcedMissRadius = 3.5,&lt;br /&gt;
        warmupTime = 1.25,&lt;br /&gt;
        range = 26.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_Needle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseGunWithQuality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedMechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_Needle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;needle gun&amp;quot;,&lt;br /&gt;
    description = [[A long-range weapon used by mechanoids. Named after its needle-like projectiles, it fires single shots with great accuracy. While it does less damage than charge weapons, it can reach over very long distances.]],&lt;br /&gt;
    tradeability = &amp;quot;None&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1400,&lt;br /&gt;
      Mass = 2.6,&lt;br /&gt;
      AccuracyTouch = 0.60,&lt;br /&gt;
      AccuracyShort = 0.80,&lt;br /&gt;
      AccuracyMedium = 0.90,&lt;br /&gt;
      AccuracyLong = 0.85,&lt;br /&gt;
      RangedWeapon_Cooldown = 2.1,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MechanoidGunLongRange&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_NeedleGun&amp;quot;,&lt;br /&gt;
        warmupTime = 2.5,&lt;br /&gt;
        range = 44.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_NeedleGun&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedMechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_NeedleGun&amp;quot;,&lt;br /&gt;
    label = &amp;quot;needle shot&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 15,&lt;br /&gt;
      armorPenetrationBase = 0.35,&lt;br /&gt;
      stoppingPower = 1.5,&lt;br /&gt;
      speed = 90,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseWeaponNeolithic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseWeaponNeolithic&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;Neolithic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;WeaponsRanged&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      effectWorking = &amp;quot;Smelt&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_MakeBow&amp;quot;,&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedWeapon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseProjectileNeolithic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseProjectileNeolithic&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    category = &amp;quot;Projectile&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Projectile&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;arrow&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bow_Short&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponNeolithic&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bow_Short&amp;quot;,&lt;br /&gt;
    label = &amp;quot;short bow&amp;quot;,&lt;br /&gt;
    description = [[A simple short selfbow made from a single piece of wood.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 30,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 2400,&lt;br /&gt;
      Mass = 0.8,&lt;br /&gt;
      AccuracyTouch = 0.75,&lt;br /&gt;
      AccuracyShort = 0.65,&lt;br /&gt;
      AccuracyMedium = 0.45,&lt;br /&gt;
      AccuracyLong = 0.25,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.65,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;NeolithicRangedBasic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Arrow_Short&amp;quot;,&lt;br /&gt;
        warmupTime = 1.35,&lt;br /&gt;
        range = 22.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;limb&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Arrow_Short&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseProjectileNeolithic&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Arrow_Short&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shortbow arrow&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
      damageAmountBase = 11,&lt;br /&gt;
      speed = 44,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Pila&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponNeolithic&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Pila&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pila&amp;quot;,&lt;br /&gt;
    description = [[Pila are spears for throwing. They take a long time to throw, but one hit can do heavy damage. This weapon represents a bundle of pila and can be thrown over and over. The singular of pila is pilum.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 70,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 7000,&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
      AccuracyTouch = 0.50,&lt;br /&gt;
      AccuracyShort = 0.71,&lt;br /&gt;
      AccuracyMedium = 0.50,&lt;br /&gt;
      AccuracyLong = 0.32,&lt;br /&gt;
      RangedWeapon_Cooldown = 4,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;NeolithicRangedHeavy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Pilum_Thrown&amp;quot;,&lt;br /&gt;
        warmupTime = 4,&lt;br /&gt;
        range = 18.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;shaft&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Pilum_Thrown&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseProjectileNeolithic&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Pilum_Thrown&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pilum&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;RangedStab&amp;quot;,&lt;br /&gt;
      damageAmountBase = 25,&lt;br /&gt;
      stoppingPower = 2.5,&lt;br /&gt;
      armorPenetrationBase = 0.10,&lt;br /&gt;
      speed = 26,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bow_Recurve&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponNeolithic&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bow_Recurve&amp;quot;,&lt;br /&gt;
    label = &amp;quot;recurve bow&amp;quot;,&lt;br /&gt;
    description = [[A recurve bow. Its construction behaves like a tuned spring, storing energy more efficiently and delivering a faster shot.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 40,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 5000,&lt;br /&gt;
      Mass = 1.3,&lt;br /&gt;
      AccuracyTouch = 0.70,&lt;br /&gt;
      AccuracyShort = 0.78,&lt;br /&gt;
      AccuracyMedium = 0.65,&lt;br /&gt;
      AccuracyLong = 0.35,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.65,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;NeolithicRangedDecent&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;RecurveBow&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Arrow_Recurve&amp;quot;,&lt;br /&gt;
        warmupTime = 1.45,&lt;br /&gt;
        range = 25.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;limb&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Arrow_Recurve&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseProjectileNeolithic&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Arrow_Recurve&amp;quot;,&lt;br /&gt;
    label = &amp;quot;recurve bow arrow&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;ArrowHighVelocity&amp;quot;,&lt;br /&gt;
      damageAmountBase = 14,&lt;br /&gt;
      stoppingPower = 1,&lt;br /&gt;
      speed = 56,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bow_Great&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponNeolithic&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bow_Great&amp;quot;,&lt;br /&gt;
    label = &amp;quot;greatbow&amp;quot;,&lt;br /&gt;
    description = [[A powerful greatbow. Fires a heavy arrow long distances.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 60,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 9000,&lt;br /&gt;
      Mass = 3.0,&lt;br /&gt;
      AccuracyTouch = 0.65,&lt;br /&gt;
      AccuracyShort = 0.85,&lt;br /&gt;
      AccuracyMedium = 0.75,&lt;br /&gt;
      AccuracyLong = 0.50,&lt;br /&gt;
      RangedWeapon_Cooldown = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;NeolithicRangedHeavy&amp;quot;,&lt;br /&gt;
      &amp;quot;NeolithicRangedChief&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Arrow_Great&amp;quot;,&lt;br /&gt;
        warmupTime = 2.0,&lt;br /&gt;
        range = 29.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;limb&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;Greatbow&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Arrow_Great&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseProjectileNeolithic&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedNeolithic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Arrow_Great&amp;quot;,&lt;br /&gt;
    label = &amp;quot;greatbow arrow&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Arrow&amp;quot;,&lt;br /&gt;
      damageAmountBase = 17,&lt;br /&gt;
      stoppingPower = 1.5,&lt;br /&gt;
      armorPenetrationBase = 0.15,&lt;br /&gt;
      speed = 49,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_ChargeRifle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpacer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_ChargeRifle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;charge rifle&amp;quot;,&lt;br /&gt;
    description = [[A charged-shot assault rifle. Pulse-charge technology charges each shot with unstable energy as it leaves the barrel. Released on impact, the charged energy greatly increases the damage done.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 45000,&lt;br /&gt;
      Mass = 4.6,&lt;br /&gt;
      AccuracyTouch = 0.55,&lt;br /&gt;
      AccuracyShort = 0.64,&lt;br /&gt;
      AccuracyMedium = 0.55,&lt;br /&gt;
      AccuracyLong = 0.45,&lt;br /&gt;
      RangedWeapon_Cooldown = 2.00,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ChargedShot&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 7,&lt;br /&gt;
      },&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 50,&lt;br /&gt;
      ComponentSpacer = 2,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;SpacerGun&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_ChargeRifle&amp;quot;,&lt;br /&gt;
        warmupTime = 1.0,&lt;br /&gt;
        range = 25.9,&lt;br /&gt;
        ticksBetweenBurstShots = 12,&lt;br /&gt;
        burstShotCount = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;stock&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_ChargeRifle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpacer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_ChargeRifle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;charge shot&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 15,&lt;br /&gt;
      armorPenetrationBase = 0.35,&lt;br /&gt;
      speed = 70,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_ChargeLance&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHumanMakeableGun&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpacer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_ChargeLance&amp;quot;,&lt;br /&gt;
    label = &amp;quot;charge lance&amp;quot;,&lt;br /&gt;
    description = [[A pulse-charged rail-assisted lance weapon. It fires a single shot at high velocity, charging it with unstable energy as it leaves the acceleration rail.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 8,&lt;br /&gt;
      AccuracyTouch = 0.65,&lt;br /&gt;
      AccuracyShort = 0.85,&lt;br /&gt;
      AccuracyMedium = 0.85,&lt;br /&gt;
      AccuracyLong = 0.75,&lt;br /&gt;
      RangedWeapon_Cooldown = 2.7,&lt;br /&gt;
      WorkToMake = 60000,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ChargedShot&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 9,&lt;br /&gt;
      },&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 60,&lt;br /&gt;
      ComponentSpacer = 3,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MechanoidGunMedium&amp;quot;,&lt;br /&gt;
      &amp;quot;SpacerGun&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_ChargeLance&amp;quot;,&lt;br /&gt;
        warmupTime = 1.7,&lt;br /&gt;
        range = 29.9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;barrel&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_ChargeLance&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpacer.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_ChargeLance&amp;quot;,&lt;br /&gt;
    label = &amp;quot;charge lance shot&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 30,&lt;br /&gt;
      stoppingPower = 1.5,&lt;br /&gt;
      speed = 120,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:OrbitalWeaponBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;OrbitalWeaponBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpecial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;WeaponsRanged&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1200,&lt;br /&gt;
      Mass = 0.2,&lt;br /&gt;
      Beauty = -3,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:OrbitalUtilityBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelNoQualityBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;OrbitalUtilityBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpecial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelUtility&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1200,&lt;br /&gt;
      Mass = 0.2,&lt;br /&gt;
      Beauty = -3,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    tradeability = &amp;quot;Sellable&amp;quot;,&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Waist&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Belt&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:OrbitalTargeterBombardment&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrbitalUtilityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpecial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;OrbitalTargeterBombardment&amp;quot;,&lt;br /&gt;
    label = &amp;quot;orbital bombardment targeter&amp;quot;,&lt;br /&gt;
    description = [[An ancient targeting apparatus for an orbital bombardment system. This unit designates a target and transmits the coordinates to a network of satellites, which then bombard the target area with kinetic impactors. This unit has been reprogrammed to accept unauthorized users, but once it is used, the network will detect the incursion and cut off the link permanently.]],&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Bombardment&amp;quot;,&lt;br /&gt;
        warmupTime = 3,&lt;br /&gt;
        range = 44.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 1,&lt;br /&gt;
        destroyOnEmpty = true,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;charge&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:OrbitalTargeterPowerBeam&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrbitalUtilityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpecial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;OrbitalTargeterPowerBeam&amp;quot;,&lt;br /&gt;
    label = &amp;quot;orbital power beam targeter&amp;quot;,&lt;br /&gt;
    description = [[An ancient targeting unit for a network of power-collection satellites. Once aimed at a target, it directs ancient satellites to begin beaming power down in a massive column of electromagnetic energy. This power can safely be collected in a giant absorption dish. Since you have no absorption dish, you'll be aiming it at enemies, at which point the power column will turn the area into a thousand-degree inferno. This will last until the satellites detect the unsafe targeting, shut themselves down, and permanently deactivate the targeter.]],&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_PowerBeam&amp;quot;,&lt;br /&gt;
        warmupTime = 3,&lt;br /&gt;
        range = 44.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 1,&lt;br /&gt;
        destroyOnEmpty = true,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;charge&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TornadoGenerator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrbitalUtilityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;RangedSpecial.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;TornadoGenerator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tornado generator&amp;quot;,&lt;br /&gt;
    description = [[An ancient control unit for a network of weather-control satellites. This device has had certain failsafes bypassed; it is capable of causing a massive air current disturbance, which will generate a tornado at a chosen location. The weather network will detect this unauthorized intrusion and lock out the device after use, but the tornado will be left to spend its energy normally.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 800,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Spawn&amp;quot;,&lt;br /&gt;
        warmupTime = 3,&lt;br /&gt;
        spawnDef = &amp;quot;Tornado&amp;quot;,&lt;br /&gt;
        colonyWideTaleDef = &amp;quot;TornadoFromItem&amp;quot;,&lt;br /&gt;
        range = 44.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 1,&lt;br /&gt;
        destroyOnEmpty = true,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;charge&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PlantBaseNonEdible&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;PlantBaseNonEdible&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Bases.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    category = &amp;quot;Plant&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Plant&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;LowPlant&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 1,&lt;br /&gt;
    },&lt;br /&gt;
    pathCostIgnoreRepeat = false,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.7,&lt;br /&gt;
      fertilitySensitivity = 1.0,&lt;br /&gt;
      sowWork = 170,&lt;br /&gt;
      harvestWork = 200,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PlantBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBaseNonEdible&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Bases.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Plant&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      preferability = &amp;quot;RawBad&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BushBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BushBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Bases.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      Nutrition = 0.3,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.5,&lt;br /&gt;
      growDays = 3,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:TreeBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Bases.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 0.8,&lt;br /&gt;
      Nutrition = 1.7,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.25,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;Tree&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      preferability = &amp;quot;RawBad&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      lifespanDaysPerGrowDays = 9,&lt;br /&gt;
      fertilitySensitivity = 0.5,&lt;br /&gt;
      sowWork = 4000,&lt;br /&gt;
      sowMinSkill = 6,&lt;br /&gt;
      sowResearchPrerequisites = {&lt;br /&gt;
        &amp;quot;TreeSowing&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      harvestWork = 800,&lt;br /&gt;
      harvestedThingDef = &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
      harvestYield = 25,&lt;br /&gt;
      harvestTag = &amp;quot;Wood&amp;quot;,&lt;br /&gt;
      harvestMinGrowth = 0.40,&lt;br /&gt;
      harvestFailable = false,&lt;br /&gt;
      blockAdjacentSow = true,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      interferesWithRoof = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CavePlantBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;CavePlantBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cave.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growMinGlow = 0,&lt;br /&gt;
      growOptimalGlow = 0,&lt;br /&gt;
      cavePlant = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Glowstool&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;CavePlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cave.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Glowstool&amp;quot;,&lt;br /&gt;
    label = &amp;quot;glowstool&amp;quot;,&lt;br /&gt;
    description = [[A small brown mushroom typically found in caves. It smells like an old, dirty rag pulled from the stomach of a rotting muffalo - but it tastes surprisingly good when cooked. Dies when exposed to light.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
      Nutrition = 0.35,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.01,&lt;br /&gt;
      fertilitySensitivity = 0.15,&lt;br /&gt;
      growDays = 40,&lt;br /&gt;
      harvestYield = 20,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawFungus&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 10,&lt;br /&gt;
        glowColor = {5, 25, 32, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Agarilux&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;CavePlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cave.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Agarilux&amp;quot;,&lt;br /&gt;
    label = &amp;quot;agarilux&amp;quot;,&lt;br /&gt;
    description = [[An enormous purple mushroom. Its size and glowing protrusions make this fungus beautiful to look at. It dies when exposed to light.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Beauty = 4,&lt;br /&gt;
      Nutrition = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.01,&lt;br /&gt;
      fertilitySensitivity = 0.15,&lt;br /&gt;
      growDays = 60,&lt;br /&gt;
      harvestYield = 35,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawFungus&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 10,&lt;br /&gt;
        glowColor = {23, 15, 30, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bryolux&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;CavePlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cave.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bryolux&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bryolux&amp;quot;,&lt;br /&gt;
    description = [[A blue moss typically found in deep, dark caves. It is sticky, with tangled fibers, which slows anyone walking over it. Dies when exposed to light.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      Nutrition = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.01,&lt;br /&gt;
      fertilitySensitivity = 0.15,&lt;br /&gt;
      growDays = 60,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 10,&lt;br /&gt;
        glowColor = {5, 5, 25, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Rose&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Decorative.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Rose&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rose&amp;quot;,&lt;br /&gt;
    description = [[A beautiful cultivated flower, the rose has been a symbol of love since Earth's ancient era.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Beauty = 14,&lt;br /&gt;
      Nutrition = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      canAutoSelectAsFoodForCaravan = false,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      sowWork = 750,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Decorative&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      growMinGlow = 0.3,&lt;br /&gt;
      growDays = 1.5,&lt;br /&gt;
      lifespanDaysPerGrowDays = 5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Daylily&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Decorative.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Daylily&amp;quot;,&lt;br /&gt;
    label = &amp;quot;daylily&amp;quot;,&lt;br /&gt;
    description = [[A cultivated flower with wide petals and a short lifespan. Daylilies are very beautiful, but must be replanted often.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Beauty = 18,&lt;br /&gt;
      Nutrition = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    ingestible = {&lt;br /&gt;
      canAutoSelectAsFoodForCaravan = false,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      sowWork = 540,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Decorative&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      growMinGlow = 0.3,&lt;br /&gt;
      growDays = 1.5,&lt;br /&gt;
      lifespanDaysPerGrowDays = 3,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Rice&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Rice&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rice plant&amp;quot;,&lt;br /&gt;
    description = [[A short, fast-growing crop that yields small edible grains. Its great nutritional ouput and ease of cultivation has made it the economic core of many great civilizations. While rice grows quickly, it is sensitive to soil fertility and will not fare well in poor soil.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Nutrition = 0.18,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawRice&amp;quot;,&lt;br /&gt;
      harvestYield = 6,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      growDays = 3,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Potato&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Potato&amp;quot;,&lt;br /&gt;
    label = &amp;quot;potato plant&amp;quot;,&lt;br /&gt;
    description = [[A highly nutritious tuber. Potatoes grow well even in somewhat poor soil, and form a delicious crispy outer coating when fried in oil.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.4,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawPotatoes&amp;quot;,&lt;br /&gt;
      harvestYield = 11,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      growDays = 5.8,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Corn&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Corn&amp;quot;,&lt;br /&gt;
    label = &amp;quot;corn plant&amp;quot;,&lt;br /&gt;
    description = [[A tall grain plant which produces ears of soft, edible seeds. While corn takes a long time to grow, it yields lots of food compared to other crops. Harvested corn takes a long time to spoil.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Nutrition = 0.3,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.70,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawCorn&amp;quot;,&lt;br /&gt;
      harvestYield = 22,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      growDays = 11.3,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Strawberry&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Strawberry&amp;quot;,&lt;br /&gt;
    label = &amp;quot;strawberry plant&amp;quot;,&lt;br /&gt;
    description = [[A low bush-like plant that yields fragile but delicious strawberries. While it isn't quite as productive calorie-for-calorie as other crops, strawberries are delicious even when raw.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 4.6,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
      harvestYield = 8,&lt;br /&gt;
      sowMinSkill = 5,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Haygrass&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Haygrass&amp;quot;,&lt;br /&gt;
    label = &amp;quot;haygrass&amp;quot;,&lt;br /&gt;
    description = [[A mixture of nutrient-rich grasses which yield large amounts of hay. Hay is edible for animals, but not humans.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Flammability = 1.3,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.6,&lt;br /&gt;
      growDays = 7,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;Hay&amp;quot;,&lt;br /&gt;
      harvestYield = 18,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Cotton&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Cotton&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cotton plant&amp;quot;,&lt;br /&gt;
    description = [[A mid-size crop that yields fine white cotton fibers. These are used to make cloth.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 8,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;Cloth&amp;quot;,&lt;br /&gt;
      harvestYield = 10,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Devilstrand&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Devilstrand&amp;quot;,&lt;br /&gt;
    label = &amp;quot;devilstrand&amp;quot;,&lt;br /&gt;
    description = [[This fragile mushroom was genetically engineered to produce a silk net that is both difficult to tear and soft to the touch. While the mushroom takes a very long time to grow, only exotic ultra-tech fabrics outperform its devilstrand fibers.\n\nSome say it's called devilstrand because of its red color. Others think it owes its name to the greed it inspires in people.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Nutrition = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 22.5,&lt;br /&gt;
      sowWork = 400,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;DevilstrandCloth&amp;quot;,&lt;br /&gt;
      harvestYield = 6,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      sowMinSkill = 10,&lt;br /&gt;
      sowResearchPrerequisites = {&lt;br /&gt;
        &amp;quot;Devilstrand&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HealrootBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;HealrootBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 60,&lt;br /&gt;
      Nutrition = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 10,&lt;br /&gt;
      harvestWork = 400,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;MedicineHerbal&amp;quot;,&lt;br /&gt;
      harvestYield = 1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Healroot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;HealrootBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Healroot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;healroot&amp;quot;,&lt;br /&gt;
    description = [[A slow-growing plant which yields herbal medicine when harvested. Sowing and harvesting healroot are both very labor-intensive tasks because of its delicate shoots.\n\nHealroot was selectively bred for centuries by settlers. It is sometimes also called &amp;quot;healer's hand&amp;quot; by tribespeople - a nickname it owes to its five major medicinal virtues.]],&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 7,&lt;br /&gt;
      sowWork = 800,&lt;br /&gt;
      sowMinSkill = 8,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Hops&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Hops&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hop plant&amp;quot;,&lt;br /&gt;
    description = [[A flowering crop that yields hops, an essential ingredient in beer.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.7,&lt;br /&gt;
      growDays = 5,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawHops&amp;quot;,&lt;br /&gt;
      harvestYield = 8,&lt;br /&gt;
      sowMinSkill = 3,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Smokeleaf&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Smokeleaf&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smokeleaf plant&amp;quot;,&lt;br /&gt;
    description = [[A leafy crop grown for the psychological effects of chemicals in its leaves. Smokeleaf leaves can be prepared into joints at the crafting spot. Smokeleaf makes a user feel relaxed, but reduces motivation, and can be addictive.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Nutrition = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 7.50,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;SmokeleafLeaves&amp;quot;,&lt;br /&gt;
      harvestYield = 9,&lt;br /&gt;
      sowMinSkill = 4,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Psychoid&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Psychoid&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychoid plant&amp;quot;,&lt;br /&gt;
    description = [[A leafy plant which generates the chemical compound psychite. Originally evolved as a defense mechanism to ward off plant-eating animals by overstimulating and sickening them, the psychite drug can be extracted and refined into various forms for recreational use. It is addictive.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Nutrition = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 9.00,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;PsychoidLeaves&amp;quot;,&lt;br /&gt;
      harvestYield = 8,&lt;br /&gt;
      sowMinSkill = 6,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
        &amp;quot;Hydroponic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeCocoa&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Cultivated_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeCocoa&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cocoa tree&amp;quot;,&lt;br /&gt;
    description = [[A tropical tree that produces chocolate, genetically engineered to sweeten its own product, and survive in slightly less-warm climates.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
      Nutrition = 1.25,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 16,&lt;br /&gt;
      sowMinSkill = 8,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      sowResearchPrerequisites = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;Cocoa&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      harvestWork = 400,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestYield = 20,&lt;br /&gt;
      harvestedThingDef = &amp;quot;Chocolate&amp;quot;,&lt;br /&gt;
      harvestFailable = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BurnedTree&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Special.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BurnedTree&amp;quot;,&lt;br /&gt;
    label = &amp;quot;burned tree&amp;quot;,&lt;br /&gt;
    description = [[A burned tree stump. It's ugly and yields no usable wood.]],&lt;br /&gt;
    category = &amp;quot;Plant&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;DeadPlant&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      DeteriorationRate = 4,&lt;br /&gt;
      Beauty = -8,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    pathCostIgnoreRepeat = false,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      harvestWork = 180,&lt;br /&gt;
      harvestYield = 0,&lt;br /&gt;
      fertilityMin = 0.01,&lt;br /&gt;
      fertilitySensitivity = 0,&lt;br /&gt;
      blockAdjacentSow = true,&lt;br /&gt;
      harvestedThingDef = &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
      harvestFailable = false,&lt;br /&gt;
      harvestTag = &amp;quot;Wood&amp;quot;,&lt;br /&gt;
      growDays = 30,&lt;br /&gt;
      growMinGlow = 0,&lt;br /&gt;
      lifespanDaysPerGrowDays = 0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Ambrosia&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Special.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Ambrosia&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ambrosia bush&amp;quot;,&lt;br /&gt;
    description = [[A rare wild bush which yields the ambrosia fruit. Ambrosia fruit is delicious and produces a drug-like mood boost. Ambrosia cannot be farmed, which makes wild ambrosia groves very valuable.\n\nIts rarity, beauty, and desirability are why ambrosia was named after the food of the ancient Greek gods.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Nutrition = 0.35,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.15,&lt;br /&gt;
      growDays = 6,&lt;br /&gt;
      harvestYield = 4,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;Ambrosia&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Agave&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Arid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Agave&amp;quot;,&lt;br /&gt;
    label = &amp;quot;agave&amp;quot;,&lt;br /&gt;
    description = [[A large-leafed desert plant with edible flowers and stalks.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.5,&lt;br /&gt;
      growDays = 6,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawAgave&amp;quot;,&lt;br /&gt;
      harvestYield = 10,&lt;br /&gt;
      harvestWork = 300,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_PincushionCactus&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Arid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_PincushionCactus&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pincushion cactus&amp;quot;,&lt;br /&gt;
    description = [[A short cactus. It is so named because it resembles a pincushion.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      Nutrition = 0.25,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.05,&lt;br /&gt;
      fertilitySensitivity = 0,&lt;br /&gt;
      growDays = 2.5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_SaguaroCactus&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Arid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_SaguaroCactus&amp;quot;,&lt;br /&gt;
    label = &amp;quot;saguaro cactus&amp;quot;,&lt;br /&gt;
    description = [[A large cactus native to arid Earth environments. Though it is not a tree, it yields a small amount of fibrous material that can be used like wood.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 130,&lt;br /&gt;
      Nutrition = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    plant = {&lt;br /&gt;
      lifespanDaysPerGrowDays = 40,&lt;br /&gt;
      fertilityMin = 0.05,&lt;br /&gt;
      fertilitySensitivity = 0,&lt;br /&gt;
      growDays = 5,&lt;br /&gt;
      harvestWork = 300,&lt;br /&gt;
      harvestYield = 15,&lt;br /&gt;
      harvestMinGrowth = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeDrago&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Arid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeDrago&amp;quot;,&lt;br /&gt;
    label = &amp;quot;drago tree&amp;quot;,&lt;br /&gt;
    description = [[A hardy desert tree topped with thick, pointed leaves.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      Nutrition = 1,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 15,&lt;br /&gt;
      harvestWork = 750,&lt;br /&gt;
      harvestYield = 25,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Grass&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_General.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Grass&amp;quot;,&lt;br /&gt;
    label = &amp;quot;grass&amp;quot;,&lt;br /&gt;
    description = [[Wild grass. Grows anywhere there is a little light and minimally fertile ground.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Flammability = 1.3,&lt;br /&gt;
      Nutrition = 0.25,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.05,&lt;br /&gt;
      fertilitySensitivity = 0.3,&lt;br /&gt;
      growDays = 2.5,&lt;br /&gt;
      harvestWork = 40,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TallGrass&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_General.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TallGrass&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tall grass&amp;quot;,&lt;br /&gt;
    description = [[Wild tall grass. Slows down anyone moving over it.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 90,&lt;br /&gt;
      Flammability = 1.3,&lt;br /&gt;
      Nutrition = 0.30,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.7,&lt;br /&gt;
      growDays = 3,&lt;br /&gt;
      harvestWork = 60,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Bush&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BushBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_General.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Bush&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bush&amp;quot;,&lt;br /&gt;
    description = [[A short shrub. Does not typically talk.]],&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 3,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Brambles&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_General.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Brambles&amp;quot;,&lt;br /&gt;
    label = &amp;quot;brambles&amp;quot;,&lt;br /&gt;
    description = [[Tangled, thorny, woody shoots covered with leaves. Brambles grow in clusters, and slow down anyone moving over them.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.7,&lt;br /&gt;
      growDays = 3,&lt;br /&gt;
      harvestWork = 60,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_HealrootWild&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;HealrootBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_General.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_HealrootWild&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wild healroot&amp;quot;,&lt;br /&gt;
    description = [[A slow-growing plant which yields herbal medicine when harvested.\n\nThis wild breed of healroot is hardier than domesticated healroot, but too difficult to cultivate. It is prized by tribespeople in colder climates.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeWillow&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DeciduousTreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Swamp.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeWillow&amp;quot;,&lt;br /&gt;
    label = &amp;quot;willow tree&amp;quot;,&lt;br /&gt;
    description = [[One of the fastest growing shade trees, willows provide a beautiful, leafy canopy. It doesn't yield much usable wood.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 13,&lt;br /&gt;
      harvestWork = 800,&lt;br /&gt;
      harvestYield = 27,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeCypress&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DeciduousTreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Swamp.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeCypress&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cypress tree&amp;quot;,&lt;br /&gt;
    description = [[A tall coniferous tree often found in swamps. Despite its slow growth, planting these trees can be profitable as a low-effort, long-term investment because they yield so much usable wood.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 35,&lt;br /&gt;
      harvestWork = 1800,&lt;br /&gt;
      harvestYield = 60,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeMaple&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DeciduousTreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Swamp.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeMaple&amp;quot;,&lt;br /&gt;
    label = &amp;quot;maple tree&amp;quot;,&lt;br /&gt;
    description = [[A common medium-sized tree, easily identifiable by its distinct three-pointed leaf.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 27,&lt;br /&gt;
      harvestWork = 800,&lt;br /&gt;
      harvestYield = 27,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Chokevine&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Swamp.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Chokevine&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chokevine&amp;quot;,&lt;br /&gt;
    description = [[Tangled masses of cord-like, spiky vines which coil in great masses along the ground. Chokevine greatky slows down anyone who moves over it. Multiple tribes have independently generated stories of chokevine strangling children to death in the night, as a way to scare kids into coming home before dark.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Nutrition = 0.25,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.7,&lt;br /&gt;
      growDays = 5,&lt;br /&gt;
      harvestWork = 150,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Dandelion&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Dandelion&amp;quot;,&lt;br /&gt;
    label = &amp;quot;dandelions&amp;quot;,&lt;br /&gt;
    description = [[A tiny yellow flower which grows in large clusters. Though it is often considered a weed, dandelions in bloom are quite beautiful.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Beauty = 4,&lt;br /&gt;
      Nutrition = 0.18,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.0,&lt;br /&gt;
      growDays = 2.5,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        &amp;quot;Ground&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      fertilityMin = 0.05,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Astragalus&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Astragalus&amp;quot;,&lt;br /&gt;
    label = &amp;quot;astragalus&amp;quot;,&lt;br /&gt;
    description = [[A small perennial wildflower that grows in alpine climates.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Beauty = 4,&lt;br /&gt;
      Nutrition = 0.18,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.05,&lt;br /&gt;
      fertilitySensitivity = 0,&lt;br /&gt;
      growDays = 2.5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Moss&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Moss&amp;quot;,&lt;br /&gt;
    label = &amp;quot;moss&amp;quot;,&lt;br /&gt;
    description = [[Wild moss that grows in clumps in areas of low light and cool temperatures. Moss takes a long time to grow, but is very frost-resistant.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      Flammability = 0.6,&lt;br /&gt;
      Nutrition = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.05,&lt;br /&gt;
      fertilitySensitivity = 0,&lt;br /&gt;
      growDays = 15,&lt;br /&gt;
      harvestWork = 60,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Berry&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Berry&amp;quot;,&lt;br /&gt;
    label = &amp;quot;berry bush&amp;quot;,&lt;br /&gt;
    description = [[A bushy wild plant which yields delicious berries. Berries can be cooked, but they're also good to eat even when raw.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 120,&lt;br /&gt;
      Nutrition = 0.35,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.20,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.5,&lt;br /&gt;
      fertilitySensitivity = 0.5,&lt;br /&gt;
      growDays = 6,&lt;br /&gt;
      harvestYield = 10,&lt;br /&gt;
      harvestWork = 250,&lt;br /&gt;
      harvestTag = &amp;quot;Standard&amp;quot;,&lt;br /&gt;
      harvestedThingDef = &amp;quot;RawBerries&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeOak&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DeciduousTreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeOak&amp;quot;,&lt;br /&gt;
    label = &amp;quot;oak tree&amp;quot;,&lt;br /&gt;
    description = [[A hardwood tree. Oaks take a long time to grow, but their wood is so strong that 'oak' is used as a metaphor for strength across many cultures.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 30,&lt;br /&gt;
      harvestWork = 1400,&lt;br /&gt;
      harvestYield = 46,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreePoplar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DeciduousTreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreePoplar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;poplar tree&amp;quot;,&lt;br /&gt;
    description = [[A softwood tree that grows very fast. Unfortunately, its wood is weak and so it yields less useful material than hardwood trees.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      Nutrition = 1,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 15.05,&lt;br /&gt;
      harvestWork = 800,&lt;br /&gt;
      harvestYield = 27,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreePine&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreePine&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pine tree&amp;quot;,&lt;br /&gt;
    description = [[A large conifer covered with prickly pine cones. It grows in a distinctive conical shape.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
      Nutrition = 1.25,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 20,&lt;br /&gt;
      harvestWork = 800,&lt;br /&gt;
      harvestYield = 27,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeBirch&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DeciduousTreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeBirch&amp;quot;,&lt;br /&gt;
    label = &amp;quot;birch tree&amp;quot;,&lt;br /&gt;
    description = [[A temperate-biome tree known for its thin, white, paper-like bark.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
      Nutrition = 1.25,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 20,&lt;br /&gt;
      harvestWork = 800,&lt;br /&gt;
      harvestYield = 27,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_ShrubLow&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_ShrubLow&amp;quot;,&lt;br /&gt;
    label = &amp;quot;low shrubs&amp;quot;,&lt;br /&gt;
    description = [[Various low broadleaf shrubs. These grow in clusters and slow down movement.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 90,&lt;br /&gt;
      Nutrition = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilitySensitivity = 0.7,&lt;br /&gt;
      growDays = 3,&lt;br /&gt;
      harvestWork = 60,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Alocasia&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BushBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Alocasia&amp;quot;,&lt;br /&gt;
    label = &amp;quot;alocasia&amp;quot;,&lt;br /&gt;
    description = [[A tropical plant. Its extremely broad leaves are a commonly-recognized signifier of tropical forests.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Clivia&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BushBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Clivia&amp;quot;,&lt;br /&gt;
    label = &amp;quot;clivia&amp;quot;,&lt;br /&gt;
    description = [[An unusual plant with tall, pretty flowers. Some call it the 'bush lily'.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_Rafflesia&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BushBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_Rafflesia&amp;quot;,&lt;br /&gt;
    label = &amp;quot;giant rafflesia&amp;quot;,&lt;br /&gt;
    description = [[A rare, giant flower which can be found deep in steaming jungles. You would think a giant flower would be beautiful, but this one looks and smells like rotting flesh.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = -6,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeTeak&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;DeciduousTreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeTeak&amp;quot;,&lt;br /&gt;
    label = &amp;quot;teak tree&amp;quot;,&lt;br /&gt;
    description = [[An exceptionally strong hardwood tree that grows in warm climates. Because teak wood is so durable and water-resistant, it was used to form the keel of wooden sailing ships in ancient times.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 2,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 32.5,&lt;br /&gt;
      harvestWork = 1800,&lt;br /&gt;
      harvestYield = 60,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeCecropia&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeCecropia&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cecropia tree&amp;quot;,&lt;br /&gt;
    description = [[One of the most common rainforest trees. Cecropia grows very fast, but yields little usable wood.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      Nutrition = 1.2,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 14,&lt;br /&gt;
      harvestWork = 600,&lt;br /&gt;
      harvestYield = 18,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreePalm&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreePalm&amp;quot;,&lt;br /&gt;
    label = &amp;quot;palm tree&amp;quot;,&lt;br /&gt;
    description = [[A tropical tree with a tall, naked trunk topped by a cluster of very broad leaves. Unfortunately, this variety doesn't produce any edible coconuts.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 1,&lt;br /&gt;
      Nutrition = 1.2,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 14,&lt;br /&gt;
      harvestWork = 600,&lt;br /&gt;
      harvestYield = 18,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeBamboo&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeBamboo&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bamboo tree&amp;quot;,&lt;br /&gt;
    description = [[A fast-growing tree-like plant that grows in dense groves. Bamboo can be harvested for a wood-like material. The plant itself is not beautiful.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Nutrition = 1.2,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 12,&lt;br /&gt;
      harvestWork = 550,&lt;br /&gt;
      harvestYield = 10,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Muffalo&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Arid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Muffalo&amp;quot;,&lt;br /&gt;
    label = &amp;quot;muffalo&amp;quot;,&lt;br /&gt;
    description = [[A large herding herbivore descended from buffalo and adapted for both cold and warm environments. While enraged muffalo are deadly, tamed muffalo are quite docile and can be used as pack animals.\n\nNobody is quite sure why they're blue - it might even be some early genetic modification test that just never got changed.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.5,&lt;br /&gt;
      MarketValue = 300,&lt;br /&gt;
      ComfyTemperatureMin = -55,&lt;br /&gt;
      ComfyTemperatureMax = 45,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 13,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Shearable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        woolDef = &amp;quot;WoolMuffalo&amp;quot;,&lt;br /&gt;
        shearIntervalDays = 25,&lt;br /&gt;
        woolAmount = 100,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 2.1,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Bluefur&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 28,&lt;br /&gt;
      wildness = 0.6,&lt;br /&gt;
      trainability = &amp;quot;Simple&amp;quot;,&lt;br /&gt;
      lifeExpectancy = 15,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gazelle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Arid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gazelle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gazelle&amp;quot;,&lt;br /&gt;
    description = [[A small, extremely quick antelope known for its amazingly long leap.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 6.0,&lt;br /&gt;
      ComfyTemperatureMin = -10,&lt;br /&gt;
      MarketValue = 150,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5.5,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5.5,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 0.7,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      gestationPeriodDays = 22,&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.20,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Iguana&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Arid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Iguana&amp;quot;,&lt;br /&gt;
    label = &amp;quot;iguana&amp;quot;,&lt;br /&gt;
    description = [[These large lizards normally feed on plant matter. However, when angered, their tough hide and sharp claws make them quite dangerous.\n\nResting iguanas hold their heads high, giving them an amusing 'proud' look. But they're not proud; they're just trying to see predators so they don't get eaten.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.0,&lt;br /&gt;
      MarketValue = 100,&lt;br /&gt;
      ComfyTemperatureMin = 0,&lt;br /&gt;
      ComfyTemperatureMax = 60,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftClaws&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightClaws&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggIguanaFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 15,&lt;br /&gt;
        eggProgressUnfertilizedMax = 0.5,&lt;br /&gt;
        eggCountRange = { [&amp;quot;&amp;lt;&amp;quot;]=1, [&amp;quot;&amp;gt;&amp;quot;]=2 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.20,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Lizard&amp;quot;,&lt;br /&gt;
      wildness = 0.5,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      petness = 0.15,&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.09,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Dromedary&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Arid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Dromedary&amp;quot;,&lt;br /&gt;
    label = &amp;quot;dromedary&amp;quot;,&lt;br /&gt;
    description = [[A large land mammal adapted to arid environments. Domesticated since ancient times, its wool and leather are both exceptionally good at insulating against the desert heat, and its milk is quite nourishing. It can be used as a pack animal, but its bouncing gait makes it too uncomfortable to ride for any distance.\n\nBy storing water in its large humps and reclaiming moisture from its breath as it exhales, it can go weeks without drinking.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.3,&lt;br /&gt;
      MarketValue = 300,&lt;br /&gt;
      ComfyTemperatureMin = -22,&lt;br /&gt;
      ComfyTemperatureMax = 60,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Milkable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        milkDef = &amp;quot;Milk&amp;quot;,&lt;br /&gt;
        milkIntervalDays = 2,&lt;br /&gt;
        milkAmount = 12,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 2.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Camel&amp;quot;,&lt;br /&gt;
      wildness = 0.25,&lt;br /&gt;
      trainability = &amp;quot;Simple&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 28,&lt;br /&gt;
      lifeExpectancy = 45,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BasePawn&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BasePawn&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Base.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Pawn&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Pawn&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Pawn&amp;quot;,&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 60,&lt;br /&gt;
      Flammability = 0.7,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompAttachBase&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AnimalThingBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BasePawn&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Base.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      LeatherAmount = 30,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      manhunterOnDamageChance = 0.02,&lt;br /&gt;
      manhunterOnTameFailChance = 0.013,&lt;br /&gt;
      trainability = &amp;quot;Intermediate&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseBear&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BaseBear&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Bears.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.6,&lt;br /&gt;
      ComfyTemperatureMin = -40,&lt;br /&gt;
      MarketValue = 700,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 17,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 17,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 23.6,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = false,&lt;br /&gt;
      baseBodySize = 2.15,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;OvivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Bear&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 30,&lt;br /&gt;
      wildness = 0.80,&lt;br /&gt;
      lifeExpectancy = 22,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.8,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bear_Grizzly&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBear&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Bears.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bear_Grizzly&amp;quot;,&lt;br /&gt;
    label = &amp;quot;grizzly bear&amp;quot;,&lt;br /&gt;
    description = [[A huge omnivorous mammal adapted for cold climates. Bears' thick blubber and fur keeps them warm in winter.\n\nWhile their usual diet consists of fish, berries, honey, and scavenged meat, the grizzly is capable of using its massive strength and deadly claws to kill live prey. They are startlingly quick for such lumbering creatures.]],&lt;br /&gt;
    race = {&lt;br /&gt;
      wildness = 0.80,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bear_Polar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBear&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Bears.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bear_Polar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;polar bear&amp;quot;,&lt;br /&gt;
    description = [[A great white bear adapted for frozen climates. Their thick blubber and fur keep them warm in winter.\n\nWhile their usual diet consists of fish and scavenged meat, the polar bear can also use its massive strength and deadly claws to kill live prey. They are startlingly quick for such lumbering creatures.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ComfyTemperatureMin = -55,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      wildness = 0.85,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BigCatThingBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BigCatThingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_BigCats.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      MarketValue = 400,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 16,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = false,&lt;br /&gt;
      baseBodySize = 1.4,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;CarnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;OvivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Panthera&amp;quot;,&lt;br /&gt;
      wildness = 0.80,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      gestationPeriodDays = 26,&lt;br /&gt;
      lifeExpectancy = 13,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Cougar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BigCatThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_BigCats.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cougar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cougar&amp;quot;,&lt;br /&gt;
    description = [[One of the most dangerous big cats, cougars are solitary hunters with long, sharp teeth and claws. They stalk prey from hidden positions before pouncing.\n\nWhile humans are not their normal diet, they won't turn down a meal of vulnerable human meat.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ComfyTemperatureMin = -25,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Panther&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BigCatThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_BigCats.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Panther&amp;quot;,&lt;br /&gt;
    label = &amp;quot;panther&amp;quot;,&lt;br /&gt;
    description = [[An agile and powerful big cat native to the jungles of old Earth. As solitary ambush predators, panthers are masters of taking down both large and small prey. Onlookers tend to focus on their graceful movements, while those in closer contact usually notice their skull-crushing strength.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ComfyTemperatureMin = -8,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Lynx&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_BigCats.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Lynx&amp;quot;,&lt;br /&gt;
    label = &amp;quot;lynx&amp;quot;,&lt;br /&gt;
    description = [[A wildcat larger than a housecat, but smaller than a cougar. Lynxes survive on a diet of small birds and animals. Their very warm fur keeps them safe from the brutally cold temperatures of their frozen territories.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      ComfyTemperatureMin = -50,&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = false,&lt;br /&gt;
      baseBodySize = 0.8,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;CarnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;OvivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Panthera&amp;quot;,&lt;br /&gt;
      wildness = 0.80,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      gestationPeriodDays = 26,&lt;br /&gt;
      lifeExpectancy = 9,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BigBirdThingBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BigBirdThingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Birds.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Bird&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 24,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBabyTiny&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.22,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.45,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Cassowary&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BigBirdThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Birds.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cassowary&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cassowary&amp;quot;,&lt;br /&gt;
    description = [[A large flightless bird with brightly-colored feathers. While it looks beautiful, its kick is vicious. It's known for being quick to aggression when harmed by violence or confronted by incompetent animal tamers.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.6,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
      ComfyTemperatureMin = -8,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = false,&lt;br /&gt;
      baseBodySize = 0.8,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      wildness = 0.80,&lt;br /&gt;
      lifeExpectancy = 45,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggCassowaryFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 17,&lt;br /&gt;
        eggProgressUnfertilizedMax = 0.5,&lt;br /&gt;
        eggCountRange = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;claws&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Feet&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;beak&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Beak&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Emu&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BigBirdThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Birds.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Emu&amp;quot;,&lt;br /&gt;
    label = &amp;quot;emu&amp;quot;,&lt;br /&gt;
    description = [[A large flightless bird with beady eyes on its ugly face. With its bad attitude, it is the jerk of the natural world. Bother it, and it is guaranteed to seek revenge.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.5,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
      ComfyTemperatureMin = -8,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = false,&lt;br /&gt;
      baseBodySize = 0.8,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      wildness = 0.95,&lt;br /&gt;
      lifeExpectancy = 45,&lt;br /&gt;
      manhunterOnTameFailChance = 1.00,&lt;br /&gt;
      manhunterOnDamageChance = 1.00,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggEmuFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 17,&lt;br /&gt;
        eggProgressUnfertilizedMax = 0.5,&lt;br /&gt;
        eggCountRange = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;claws&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Feet&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;beak&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Beak&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ostrich&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BigBirdThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Birds.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ostrich&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ostrich&amp;quot;,&lt;br /&gt;
    description = [[The largest unmodified bird species, ostriches are known for their fast run, huge eggs, and powerful kick. It is easily angered.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 6.0,&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
      ComfyTemperatureMin = -8,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = false,&lt;br /&gt;
      baseBodySize = 1.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      wildness = 0.95,&lt;br /&gt;
      lifeExpectancy = 45,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggOstrichFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 19,&lt;br /&gt;
        eggProgressUnfertilizedMax = 0.5,&lt;br /&gt;
        eggCountRange = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;claws&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Feet&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;beak&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Beak&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turkey&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BigBirdThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Birds.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turkey&amp;quot;,&lt;br /&gt;
    label = &amp;quot;turkey&amp;quot;,&lt;br /&gt;
    description = [[A short, fat, flightless bird known for its hilarious 'gobbling' call. It has been long domesticated, but also lives in the wild.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.6,&lt;br /&gt;
      MarketValue = 100,&lt;br /&gt;
      ComfyTemperatureMin = -8,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = false,&lt;br /&gt;
      baseBodySize = 0.6,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      wildness = 0.45,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      lifeExpectancy = 9,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggTurkeyFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 11,&lt;br /&gt;
        eggProgressUnfertilizedMax = 0.5,&lt;br /&gt;
        eggCountRange = { [&amp;quot;&amp;lt;&amp;quot;]=1, [&amp;quot;&amp;gt;&amp;quot;]=1 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;claws&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Feet&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;beak&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Beak&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Chicken&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Chicken&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chicken&amp;quot;,&lt;br /&gt;
    description = [[The most traditional farm bird, the chicken is raised for its eggs and meat. It grows very quickly and lays eggs very often.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 2.1,&lt;br /&gt;
      MarketValue = 50,&lt;br /&gt;
      LeatherAmount = 0,&lt;br /&gt;
      ComfyTemperatureMin = -10,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;claws&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Feet&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;beak&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Beak&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 1,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggUnfertilizedDef = &amp;quot;EggChickenUnfertilized&amp;quot;,&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggChickenFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 2,&lt;br /&gt;
        eggCountRange = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.18,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      wildness = 0,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      lifeExpectancy = 6,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBabyTiny&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.12,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.3,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Pig&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Pig&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pig&amp;quot;,&lt;br /&gt;
    description = [[The pig was one of the first animals domesticated by humans. It is commonly raised for meat, and is easy to feed because of its omnivorous diet. Though pigs are self-serving by disposition, they can be trained in complex tasks.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.9,&lt;br /&gt;
      ComfyTemperatureMin = -5,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7.3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.75,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Pig&amp;quot;,&lt;br /&gt;
      wildness = 0.07,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      gestationPeriodDays = 17,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {1.7, 1},&lt;br /&gt;
          {2.0, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.1,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Cow&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cow&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cow&amp;quot;,&lt;br /&gt;
    description = [[A large domesticated ungulate, cows have been bred for millennia to produce huge amounts of milk, meat, and leather. They are exceptionally gentle creatures and will never seek revenge, no matter how many times they are harmed. Most of them are so adapted to farm life that they cannot survive in the wild.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.2,&lt;br /&gt;
      ComfyTemperatureMin = -10,&lt;br /&gt;
      MarketValue = 300,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Milkable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        milkDef = &amp;quot;Milk&amp;quot;,&lt;br /&gt;
        milkIntervalDays = 1,&lt;br /&gt;
        milkAmount = 18,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.8,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 2.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.05,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 20,&lt;br /&gt;
      lifeExpectancy = 22,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.45,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Alpaca&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Alpaca&amp;quot;,&lt;br /&gt;
    label = &amp;quot;alpaca&amp;quot;,&lt;br /&gt;
    description = [[A medium-sized ungulate closely related to the llama, the alpaca is usually raised for its remarkably soft and insulating wool. Alpacas have also been used as pack animals since they hauled cargo on the rugged mountain trails of ancient South America]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.1,&lt;br /&gt;
      ComfyTemperatureMin = -18,&lt;br /&gt;
      MarketValue = 350,&lt;br /&gt;
      ComfyTemperatureMax = 45,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7.3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7.3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Shearable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        woolDef = &amp;quot;WoolAlpaca&amp;quot;,&lt;br /&gt;
        shearIntervalDays = 15,&lt;br /&gt;
        woolAmount = 100,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 1.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Camel&amp;quot;,&lt;br /&gt;
      wildness = 0.25,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      gestationPeriodDays = 25,&lt;br /&gt;
      lifeExpectancy = 15,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.45,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Duck&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Duck&amp;quot;,&lt;br /&gt;
    label = &amp;quot;duck&amp;quot;,&lt;br /&gt;
    description = [[A very common type of farm bird, also appearing in the wild, the duck is raised for its delicious meat. It grows quick but lays eggs quite rarely.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 2.1,&lt;br /&gt;
      MarketValue = 60,&lt;br /&gt;
      LeatherAmount = 0,&lt;br /&gt;
      ComfyTemperatureMin = -10,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;claws&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Feet&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;beak&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Beak&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggUnfertilizedDef = &amp;quot;EggDuckUnfertilized&amp;quot;,&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggDuckFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 3.5,&lt;br /&gt;
        eggCountRange = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.18,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      wildness = 0,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      lifeExpectancy = 6,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBabyTiny&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.12,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.3,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bison&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bison&amp;quot;,&lt;br /&gt;
    label = &amp;quot;bison&amp;quot;,&lt;br /&gt;
    description = [[A large plant eating mammal appearing in the savannah wilderness. Tamed are quite docile, but enraged are fast and dangerous.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.7,&lt;br /&gt;
      MarketValue = 350,&lt;br /&gt;
      ComfyTemperatureMin = -55,&lt;br /&gt;
      ComfyTemperatureMax = 45,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 2.9,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Shearable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        woolDef = &amp;quot;WoolBison&amp;quot;,&lt;br /&gt;
        shearIntervalDays = 25,&lt;br /&gt;
        woolAmount = 100,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 2.1,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 28,&lt;br /&gt;
      wildness = 0.6,&lt;br /&gt;
      trainability = &amp;quot;Simple&amp;quot;,&lt;br /&gt;
      manhunterOnDamageChance = 0.1,&lt;br /&gt;
      lifeExpectancy = 15,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Goat&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Goat&amp;quot;,&lt;br /&gt;
    label = &amp;quot;goat&amp;quot;,&lt;br /&gt;
    description = [[Naturally curious about the world, goats are among the friendliest domesticated creature bred by mankind.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.9,&lt;br /&gt;
      ComfyTemperatureMin = -20,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Milkable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        milkDef = &amp;quot;Milk&amp;quot;,&lt;br /&gt;
        milkIntervalDays = 2,&lt;br /&gt;
        milkAmount = 12,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7.3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.75,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.07,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      gestationPeriodDays = 17,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {1.7, 1},&lt;br /&gt;
          {2.0, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.1,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Goose&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Goose&amp;quot;,&lt;br /&gt;
    label = &amp;quot;goose&amp;quot;,&lt;br /&gt;
    description = [[A domesticated bird kept by humans as poultry for it's eggs and meat. Lays eggs very often, however they take a long time to hatch.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 2.3,&lt;br /&gt;
      MarketValue = 90,&lt;br /&gt;
      LeatherAmount = 36,&lt;br /&gt;
      ComfyTemperatureMin = -10,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;claws&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Feet&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;beak&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5.6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Beak&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggUnfertilizedDef = &amp;quot;EggGooseUnfertilized&amp;quot;,&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggGooseFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 1.6,&lt;br /&gt;
        eggCountRange = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.40,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Bird&amp;quot;,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      wildness = 0.6,&lt;br /&gt;
      manhunterOnTameFailChance = 0.2,&lt;br /&gt;
      manhunterOnDamageChance = 0.25,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      lifeExpectancy = 8,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBabyTiny&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.12,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.3,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Sheep&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Sheep&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sheep&amp;quot;,&lt;br /&gt;
    description = [[Sheep husbandry is practised throughout the majority of the inhabited worlds, however only recently it has been introduced to the rimworlds. Domestic sheep are relatively small herbivores, usually with yellowish wool and medium sized horns.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.8,&lt;br /&gt;
      MarketValue = 210,&lt;br /&gt;
      ComfyTemperatureMin = -55,&lt;br /&gt;
      ComfyTemperatureMax = 45,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 14,&lt;br /&gt;
        cooldownTime = 2.9,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Shearable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        woolDef = &amp;quot;WoolSheep&amp;quot;,&lt;br /&gt;
        shearIntervalDays = 10,&lt;br /&gt;
        woolAmount = 45,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 0.75,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 17,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {1.7, 1},&lt;br /&gt;
          {2.0, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      wildness = 0,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      manhunterOnDamageChance = 0.0,&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Horse&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Horse&amp;quot;,&lt;br /&gt;
    label = &amp;quot;horse&amp;quot;,&lt;br /&gt;
    description = [[A large hoofed mammal with a short coat, a long mane, and a long tail. Horses have been domesticated since ancient times.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.8,&lt;br /&gt;
      MarketValue = 550,&lt;br /&gt;
      ComfyTemperatureMin = -35,&lt;br /&gt;
      ComfyTemperatureMax = 45,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2.9,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 2.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 28,&lt;br /&gt;
      wildness = 0.5,&lt;br /&gt;
      petness = 0.6,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      manhunterOnDamageChance = 0.1,&lt;br /&gt;
      lifeExpectancy = 30,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Yak&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Yak&amp;quot;,&lt;br /&gt;
    label = &amp;quot;yak&amp;quot;,&lt;br /&gt;
    description = [[Yaks are robust cattle with a bulky frame, short but thick legs, and rounded cloven hooves that are splayed to help them walk in snow.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.2,&lt;br /&gt;
      ComfyTemperatureMin = -45,&lt;br /&gt;
      MarketValue = 320,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Milkable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        milkDef = &amp;quot;Milk&amp;quot;,&lt;br /&gt;
        milkIntervalDays = 2,&lt;br /&gt;
        milkAmount = 12,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.8,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 1.9,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.11,&lt;br /&gt;
      petness = 0.3,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 20,&lt;br /&gt;
      lifeExpectancy = 22,&lt;br /&gt;
      manhunterOnDamageChance = 0.05,&lt;br /&gt;
      manhunterOnTameFailChance = 0.02,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.45,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:GuineaPig&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GuineaPig&amp;quot;,&lt;br /&gt;
    label = &amp;quot;guinea pig&amp;quot;,&lt;br /&gt;
    description = [[Neither a pig or a creature from Guinea, these little rodents are bred to be a household pet and a delicious dinner.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      MarketValue = 150,&lt;br /&gt;
      ComfyTemperatureMin = -15,&lt;br /&gt;
      ComfyTemperatureMax = 55,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5.8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.28,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_GuineaPig&amp;quot;,&lt;br /&gt;
      wildness = 0.60,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      petness = 0.30,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      nuzzleMtbHours = 24,&lt;br /&gt;
      gestationPeriodDays = 14,&lt;br /&gt;
      manhunterOnTameFailChance = 0.02,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2.5, 1},&lt;br /&gt;
          {3, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 4,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.30,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalPet&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Donkey&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Farm.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Donkey&amp;quot;,&lt;br /&gt;
    label = &amp;quot;donkey&amp;quot;,&lt;br /&gt;
    description = [[A small relative of the horse, domesticated in ancient times for farm work. Its goofy call is simultaneously annoying and endearing.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.3,&lt;br /&gt;
      MarketValue = 320,&lt;br /&gt;
      ComfyTemperatureMin = -25,&lt;br /&gt;
      ComfyTemperatureMax = 45,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 2.9,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 1.5,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 28,&lt;br /&gt;
      wildness = 0.03,&lt;br /&gt;
      petness = 0.60,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      manhunterOnDamageChance = 0.05,&lt;br /&gt;
      lifeExpectancy = 24,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Rhinoceros&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Giant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Rhinoceros&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rhinoceros&amp;quot;,&lt;br /&gt;
    description = [[Despite being herbivorous, this large mammal is very easy to enrage. Once angered, its massive strength and sharp horn make it a brutal opponent. It has more muscle in one leg than most humans do in their whole body.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      MarketValue = 700,&lt;br /&gt;
      ComfyTemperatureMin = -8,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;horn&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 19,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HornAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;horn&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 19,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HornAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 19,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 3.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Rhinoceros&amp;quot;,&lt;br /&gt;
      wildness = 0.90,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      gestationPeriodDays = 43,&lt;br /&gt;
      lifeExpectancy = 45,&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.3,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 1.0,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Elephant&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Giant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Elephant&amp;quot;,&lt;br /&gt;
    label = &amp;quot;elephant&amp;quot;,&lt;br /&gt;
    description = [[The largest unmodified land animal. Elephants has a long trunk they use to manipulate objects, and sharp tusks they use to gore attackers. A dead elephant's valuable tusks can be recovered by butchering it.\n\nIntelligent creatures with complex social relationships, elephants can be used as pack animals or trained to carry out the most complex of tasks. They live a long time, and are known to remember events and relationships from many decades before.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.8,&lt;br /&gt;
      MarketValue = 600,&lt;br /&gt;
      ComfyTemperatureMin = -12,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;tusk&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 25,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;TuskAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left foot&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 16.9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right foot&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 16.9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 14,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 4.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Elephant&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 48,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      nuzzleMtbHours = 24,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      lifeExpectancy = 50,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.8,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 2.0,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Megasloth&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Giant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Megasloth&amp;quot;,&lt;br /&gt;
    label = &amp;quot;megasloth&amp;quot;,&lt;br /&gt;
    description = [[A giant, solitary herbivore with two giant claws for warding off threats. Long extinct after being wiped out by the natives of Earth's American continent, the megasloth was later brought back using advanced cloning and artificial gestators. Its thick hide is exceptionally strong and insulating, and makes a great leather for cold-weather clothing. It is peaceful if left alone, but will shred anyone who disturbs it with its giant claws.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.8,&lt;br /&gt;
      MarketValue = 700,&lt;br /&gt;
      ComfyTemperatureMin = -55,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 21,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 21,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 22,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 4.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Heavy&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 55,&lt;br /&gt;
      wildness = 0.97,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      nuzzleMtbHours = 60,&lt;br /&gt;
      lifeExpectancy = 20,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 1.0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 3.0,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Shearable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        woolDef = &amp;quot;WoolMegasloth&amp;quot;,&lt;br /&gt;
        shearIntervalDays = 50,&lt;br /&gt;
        woolAmount = 400,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Thrumbo&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Giant.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Thrumbo&amp;quot;,&lt;br /&gt;
    label = &amp;quot;thrumbo&amp;quot;,&lt;br /&gt;
    description = [[A gigantic, graceful creature of unknown origin. The thrumbo is gentle by nature, but extremely dangerous when enraged. While its long fur is exceptionally beautiful, its hide is also incredibly resistant to damage. Its razor-sharp horn fetches a huge price.\n\nLegends say that an old thrumbo is the wisest creature in the universe - it simply chooses not to speak.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.5,&lt;br /&gt;
      MarketValue = 4000,&lt;br /&gt;
      ComfyTemperatureMin = -65,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
      ArmorRating_Sharp = 0.60,&lt;br /&gt;
      ArmorRating_Blunt = 0.40,&lt;br /&gt;
      ArmorRating_Heat = 0.30,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;horn&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 23,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HornAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 28,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left foot&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 19,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right foot&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 19,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 17,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 4,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;DendrovoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Thrumbo&amp;quot;,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 60,&lt;br /&gt;
      manhunterOnDamageChance = 1.00,&lt;br /&gt;
      wildness = 0.985,&lt;br /&gt;
      lifeExpectancy = 220,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 2.0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 4.0,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalExotic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseHare&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BaseHare&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Hares.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 6.0,&lt;br /&gt;
      MarketValue = 50,&lt;br /&gt;
      ComfyTemperatureMin = -30,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 1.5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.2,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      petness = 0.08,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      nuzzleMtbHours = 36,&lt;br /&gt;
      gestationPeriodDays = 13,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {1.0, 0},&lt;br /&gt;
          {1.5, 1},&lt;br /&gt;
          {2.0, 1},&lt;br /&gt;
          {2.5, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 8,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.1,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.3,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Hare&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHare&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Hares.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Hare&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hare&amp;quot;,&lt;br /&gt;
    description = [[This small, solitary herbivore can swiftly hop away from danger.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Snowhare&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseHare&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Hares.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Snowhare&amp;quot;,&lt;br /&gt;
    label = &amp;quot;snowhare&amp;quot;,&lt;br /&gt;
    description = [[This hardy animal survives the brutal winters of its homelands by burrowing through snow to find edible plants.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ComfyTemperatureMin = -55,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseInsect&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BaseInsect&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Insect.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ToxicSensitivity = 0,&lt;br /&gt;
      ComfyTemperatureMax = 60,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;AnimalProduct&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      manhunterOnDamageChance = 0.35,&lt;br /&gt;
      manhunterOnTameFailChance = 0.20,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Megascarab&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseInsect&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Insect.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Megascarab&amp;quot;,&lt;br /&gt;
    label = &amp;quot;megascarab&amp;quot;,&lt;br /&gt;
    description = [[A large, genetically-engineered beetle. Once the worker caste of an artifical ecosystem of insectoids designed to fight mechanoid invasions, it is now often seen without its deadlier insectoid cousins. Still, its size and hard shell make it dangerous when it attacks. A eusocial creature, it cannot reproduce individually.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.75,&lt;br /&gt;
      ArmorRating_Blunt = 0.18,&lt;br /&gt;
      ArmorRating_Sharp = 0.72,&lt;br /&gt;
      ComfyTemperatureMin = 0,&lt;br /&gt;
      MarketValue = 100,&lt;br /&gt;
      LeatherAmount = 0,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;mandibles&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Mouth&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.2,&lt;br /&gt;
      wildness = 0.95,&lt;br /&gt;
      lifeExpectancy = 10,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectLarva&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.03,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalInsect&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Spelopede&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseInsect&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Insect.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Spelopede&amp;quot;,&lt;br /&gt;
    label = &amp;quot;spelopede&amp;quot;,&lt;br /&gt;
    description = [[A medium-sized bioengineered insectoid the size of a sheep. The spelopede is the middle caste of a hive, taking care of most work tasks as well as fighting with its digging claws. It's dangerous in combat, but slow on open ground.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.65,&lt;br /&gt;
      ComfyTemperatureMin = -25,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
      LeatherAmount = 0,&lt;br /&gt;
      ArmorRating_Blunt = 0.18,&lt;br /&gt;
      ArmorRating_Sharp = 0.18,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadClaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.8,&lt;br /&gt;
      gestationPeriodDays = 12,&lt;br /&gt;
      wildness = 0.95,&lt;br /&gt;
      lifeExpectancy = 6,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectLarva&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.03,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalInsect&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Megaspider&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseInsect&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Insect.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Megaspider&amp;quot;,&lt;br /&gt;
    label = &amp;quot;megaspider&amp;quot;,&lt;br /&gt;
    description = [[Not actually a spider, the megaspider is a genetically-engineered giant insectoid the size of a bear. Designed for heavy work and combat, its thick chitinous armor makes it hard to kill, while its long ripper-blades make it deadly at close quarters. It is, however, quite slow in open terrain.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.60,&lt;br /&gt;
      ComfyTemperatureMin = -40,&lt;br /&gt;
      MarketValue = 500,&lt;br /&gt;
      LeatherAmount = 0,&lt;br /&gt;
      ArmorRating_Blunt = 0.18,&lt;br /&gt;
      ArmorRating_Sharp = 0.27,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadClaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 1.2,&lt;br /&gt;
      gestationPeriodDays = 12,&lt;br /&gt;
      wildness = 0.95,&lt;br /&gt;
      lifeExpectancy = 6,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectLarva&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.03,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;EusocialInsectAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalInsect&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:YorkshireTerrier&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Pet.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;YorkshireTerrier&amp;quot;,&lt;br /&gt;
    label = &amp;quot;yorkshire terrier&amp;quot;,&lt;br /&gt;
    description = [[A small, even-tempered dog. Originally bred to hunt rats, it later became a show and companionship animal. Some consider it useless, but the mood boost it gives by nuzzling can outweight the cost of feeding it.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.1,&lt;br /&gt;
      MarketValue = 100,&lt;br /&gt;
      ComfyTemperatureMin = -15,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;cute little teeth&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4.8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      petness = 1,&lt;br /&gt;
      baseBodySize = 0.3,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;OvivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Dog&amp;quot;,&lt;br /&gt;
      trainability = &amp;quot;Intermediate&amp;quot;,&lt;br /&gt;
      wildness = 0,&lt;br /&gt;
      nuzzleMtbHours = 12,&lt;br /&gt;
      gestationPeriodDays = 24,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2, 1.7},&lt;br /&gt;
          {3, 0.7},&lt;br /&gt;
          {3.5, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 15,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.1,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.3,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalPet&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Husky&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Pet.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Husky&amp;quot;,&lt;br /&gt;
    label = &amp;quot;husky&amp;quot;,&lt;br /&gt;
    description = [[A large, energetic dog with a thick fur coat for remaining comfortable in arctic environments.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
      ComfyTemperatureMin = -50,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9.7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9.7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 14.2,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      petness = 1,&lt;br /&gt;
      baseBodySize = 0.86,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;OvivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Dog&amp;quot;,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      wildness = 0,&lt;br /&gt;
      nuzzleMtbHours = 12,&lt;br /&gt;
      gestationPeriodDays = 25,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2, 1.7},&lt;br /&gt;
          {2.5, 0.7},&lt;br /&gt;
          {3, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalPet&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:LabradorRetriever&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Pet.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;LabradorRetriever&amp;quot;,&lt;br /&gt;
    label = &amp;quot;labrador retriever&amp;quot;,&lt;br /&gt;
    description = [[A very versatile, medium-sized dog. Originally bred to retrieve birds shot on the hunt, the lab is also an excellent guard dog, play pal, and family friend.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
      ComfyTemperatureMin = -30,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 14.2,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      petness = 1,&lt;br /&gt;
      baseBodySize = 0.75,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;OvivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Dog&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 26,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      wildness = 0,&lt;br /&gt;
      nuzzleMtbHours = 12,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2, 1.7},&lt;br /&gt;
          {3, 0.7},&lt;br /&gt;
          {3.5, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.25,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalPet&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Cat&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Pet.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cat&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cat&amp;quot;,&lt;br /&gt;
    description = [[One of mankind's first pets, the cat is a small mammal which hunts vermin. Known for their aloofness, cats are nevertheless popular companions because of their independence, calm disposition, and fine, pettable fur.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.4,&lt;br /&gt;
      MarketValue = 100,&lt;br /&gt;
      ComfyTemperatureMin = -25,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.255,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;CarnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;OvivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      wildness = 0.2,&lt;br /&gt;
      petness = 1,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      nuzzleMtbHours = 12,&lt;br /&gt;
      gestationPeriodDays = 24,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2, 1.7},&lt;br /&gt;
          {3, 0.7},&lt;br /&gt;
          {3.5, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 10,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalPet&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Squirrel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Rodentlike.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Squirrel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;squirrel&amp;quot;,&lt;br /&gt;
    description = [[One of the many hardy rodent species that follows humankind everywhere it spreads. Squirrels are distinguished by their bushy tails, which they use as umbrellas in bad weather.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.1,&lt;br /&gt;
      MarketValue = 35,&lt;br /&gt;
      ComfyTemperatureMin = -35,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.15,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 13,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {1.8, 1},&lt;br /&gt;
          {2.4, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 8,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.11,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.26,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Alphabeaver&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Rodentlike.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Alphabeaver&amp;quot;,&lt;br /&gt;
    label = &amp;quot;alphabeaver&amp;quot;,&lt;br /&gt;
    description = [[A large beaver-like creature genetically engineered to harvest wood with machine-like efficiency. In the absence of specialized feed, these animals will enter a manic state that compels them to eat trees whole, and are likely to attack if disturbed.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.7,&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
      ComfyTemperatureMin = -40,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7.2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7.2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 0.45,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;DendrovoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      gestationPeriodDays = 17,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {3, 1},&lt;br /&gt;
          {3.5, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.35,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Capybara&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Rodentlike.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Capybara&amp;quot;,&lt;br /&gt;
    label = &amp;quot;capybara&amp;quot;,&lt;br /&gt;
    description = [[The largest natural rodent, the capybara is well-adapted for steaming jungle environments.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.9,&lt;br /&gt;
      MarketValue = 150,&lt;br /&gt;
      ComfyTemperatureMin = -10,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 0.50,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      petness = 0.08,&lt;br /&gt;
      nuzzleMtbHours = 60,&lt;br /&gt;
      gestationPeriodDays = 20,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {1.5, 1},&lt;br /&gt;
          {2, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Chinchilla&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Rodentlike.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Chinchilla&amp;quot;,&lt;br /&gt;
    label = &amp;quot;chinchilla&amp;quot;,&lt;br /&gt;
    description = [[A small, nimble rodent. Its fur is softer than just about anything in the universe, making it very valuable as a trade good.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      MarketValue = 150,&lt;br /&gt;
      ComfyTemperatureMin = -15,&lt;br /&gt;
      ComfyTemperatureMax = 55,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5.8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.21,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Chinchilla&amp;quot;,&lt;br /&gt;
      wildness = 0.60,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      petness = 0.20,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      nuzzleMtbHours = 24,&lt;br /&gt;
      gestationPeriodDays = 14,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2.5, 1},&lt;br /&gt;
          {3, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 9,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.30,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Boomrat&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Rodentlike.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Boomrat&amp;quot;,&lt;br /&gt;
    label = &amp;quot;boomrat&amp;quot;,&lt;br /&gt;
    description = [[Either by deliberate genetic weaponization, or as an unusual defense mechanism, these rodent-like creatures create a powerful fire-starting explosion when killed.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.6,&lt;br /&gt;
      MarketValue = 100,&lt;br /&gt;
      ComfyTemperatureMin = -15,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5.4,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5.4,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4.9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.2,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      petness = 0.20,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      nuzzleMtbHours = 60,&lt;br /&gt;
      gestationPeriodDays = 14,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2.5, 1},&lt;br /&gt;
          {3, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 8,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.1,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.35,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Raccoon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Rodentlike.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Raccoon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;raccoon&amp;quot;,&lt;br /&gt;
    description = [[A small, hardy animal that ranges wide across forests and shrubland. It is happy to break into your garbage container, or your kitchen, to eat almost anything.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.1,&lt;br /&gt;
      MarketValue = 100,&lt;br /&gt;
      ComfyTemperatureMin = -30,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.3,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      gestationPeriodDays = 14,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2, 1},&lt;br /&gt;
          {2.5, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 8,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Rat&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Rodentlike.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Rat&amp;quot;,&lt;br /&gt;
    label = &amp;quot;rat&amp;quot;,&lt;br /&gt;
    description = [[A widely-hated rodent known for soiling kitchens and spreading disease, rats have a way of following humans everywhere they go. It eats almost anything and lives almost anywhere.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.0,&lt;br /&gt;
      MarketValue = 35,&lt;br /&gt;
      ComfyTemperatureMin = -30,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.15,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      wildness = 0.50,&lt;br /&gt;
      trainability = &amp;quot;None&amp;quot;,&lt;br /&gt;
      petness = 0.15,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      mateMtbHours = 8,&lt;br /&gt;
      gestationPeriodDays = 12,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2.2, 1},&lt;br /&gt;
          {2.8, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 8,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.07,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.3,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Deer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Deer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;deer&amp;quot;,&lt;br /&gt;
    description = [[A medium-sized herding herbivore which prefers to live in mixed forests and plains. Deer are very quick.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.5,&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
      ComfyTemperatureMin = -30,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;teeth&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 0.9,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      nuzzleMtbHours = 60,&lt;br /&gt;
      gestationPeriodDays = 24,&lt;br /&gt;
      lifeExpectancy = 15,&lt;br /&gt;
      manhunterOnDamageChance = 0,&lt;br /&gt;
      manhunterOnTameFailChance = 0,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Ibex&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Ibex&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ibex&amp;quot;,&lt;br /&gt;
    description = [[The wild ancestor of the domesticated goat. Ibexes live on marginal territory where most antelopes couldn't survive, eating lichens and sparse mountain plants. They're famous for dextrously hopping across bare cliff faces - and for their violent ramming attack.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.6,&lt;br /&gt;
      MarketValue = 250,&lt;br /&gt;
      ComfyTemperatureMin = -30,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 0.85,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.55,&lt;br /&gt;
      gestationPeriodDays = 24,&lt;br /&gt;
      lifeExpectancy = 15,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Elk&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Elk&amp;quot;,&lt;br /&gt;
    label = &amp;quot;elk&amp;quot;,&lt;br /&gt;
    description = [[A large member of the deer family, well-adapted to life in cold climates. Domesticated elk can be milked, but refuse to carry packs.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5,&lt;br /&gt;
      MarketValue = 300,&lt;br /&gt;
      ComfyTemperatureMin = -50,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Milkable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        milkDef = &amp;quot;Milk&amp;quot;,&lt;br /&gt;
        milkIntervalDays = 2,&lt;br /&gt;
        milkAmount = 12,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 13,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 2.1,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      gestationPeriodDays = 25,&lt;br /&gt;
      lifeExpectancy = 18,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.6,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Caribou&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Caribou&amp;quot;,&lt;br /&gt;
    label = &amp;quot;caribou&amp;quot;,&lt;br /&gt;
    description = [[A large member of the deer family, well-adapted to life in cold climates. Caribou can be milked, but refuse to carry packs.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5,&lt;br /&gt;
      MarketValue = 300,&lt;br /&gt;
      ComfyTemperatureMin = -50,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Milkable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        milkDef = &amp;quot;Milk&amp;quot;,&lt;br /&gt;
        milkIntervalDays = 2,&lt;br /&gt;
        milkAmount = 12,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 13,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 2.1,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      gestationPeriodDays = 25,&lt;br /&gt;
      lifeExpectancy = 18,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.45,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFarm&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WildBoar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WildBoar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;wild boar&amp;quot;,&lt;br /&gt;
    description = [[This hairy omnivore is descended from escaped pigs and evolved for living in the wild.\n\nIts tusks make it a better fighter than its domesticated pig cousins. Unfortunately, it is too unruly to be trained in the most complex tasks.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.6,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
      ComfyTemperatureMin = -23,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;tusk&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9.7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;TuskAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 0.8,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      wildness = 0.50,&lt;br /&gt;
      trainability = &amp;quot;Intermediate&amp;quot;,&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Pig&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 18,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {1.5, 1},&lt;br /&gt;
          {2.0, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.1,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Tortoise&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Temperate.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Tortoise&amp;quot;,&lt;br /&gt;
    label = &amp;quot;tortoise&amp;quot;,&lt;br /&gt;
    description = [[This heavily armored land-dwelling reptile is known for its slow moving speed and surprisingly vicious bite. Because of its natural armor, it is tough to kill and can do serious damage during drawn-out melee fights.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 1.0,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
      ArmorRating_Blunt = 0.35,&lt;br /&gt;
      ArmorRating_Sharp = 0.50,&lt;br /&gt;
      ComfyTemperatureMin = 0,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;beak&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;TurtleBeakAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggTortoiseFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 20,&lt;br /&gt;
        eggProgressUnfertilizedMax = 0.5,&lt;br /&gt;
        eggCountRange = { [&amp;quot;&amp;lt;&amp;quot;]=1, [&amp;quot;&amp;gt;&amp;quot;]=3 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.5,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Lizard&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      lifeExpectancy = 180,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Cobra&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Cobra&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cobra&amp;quot;,&lt;br /&gt;
    description = [[A large predatory snake. Cobras can be highly aggressive if provoked, and their bite injects toxic venom into the victim.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.5,&lt;br /&gt;
      MarketValue = 150,&lt;br /&gt;
      ComfyTemperatureMin = 0,&lt;br /&gt;
      ComfyTemperatureMax = 60,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;venom-fangs&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;ToxicBite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Mouth&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EggLayer&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        eggFertilizedDef = &amp;quot;EggCobraFertilized&amp;quot;,&lt;br /&gt;
        eggFertilizationCountMax = 1,&lt;br /&gt;
        eggLayIntervalDays = 20.0,&lt;br /&gt;
        eggProgressUnfertilizedMax = 0.5,&lt;br /&gt;
        eggCountRange = { [&amp;quot;&amp;lt;&amp;quot;]=1, [&amp;quot;&amp;gt;&amp;quot;]=2 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 0.25,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;CarnivoreAnimal&amp;quot;,&lt;br /&gt;
        &amp;quot;OvivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Lizard&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      petness = 0.05,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      lifeExpectancy = 20,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Monkey&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Monkey&amp;quot;,&lt;br /&gt;
    label = &amp;quot;monkey&amp;quot;,&lt;br /&gt;
    description = [[A small primate, the monkey can use its curly tail to grab on to branches, leaving its hands free to do other things. Monkeys are selfish but clever, and can be trained to carry out fairly complex tasks.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.3,&lt;br /&gt;
      MarketValue = 100,&lt;br /&gt;
      ComfyTemperatureMin = -5,&lt;br /&gt;
      ComfyTemperatureMax = 50,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left fist&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;LeftHand&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right fist&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 3.6,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;RightHand&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.7,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      petness = 0.50,&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 0.35,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Light&amp;quot;,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      wildness = 0.60,&lt;br /&gt;
      nuzzleMtbHours = 24,&lt;br /&gt;
      gestationPeriodDays = 16,&lt;br /&gt;
      lifeExpectancy = 30,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.4,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Boomalope&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_Tropical.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Boomalope&amp;quot;,&lt;br /&gt;
    label = &amp;quot;boomalope&amp;quot;,&lt;br /&gt;
    description = [[Engineered for chemicals production, the boomalope grows a large sac of volatile chemicals on its back. Though it is weak and fragile for its size, other animals have learned to avoid it because of the huge explosion it produces when it dies. It can be milked to produce chemfuel - very carefully.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 3.4,&lt;br /&gt;
      MarketValue = 350,&lt;br /&gt;
      ComfyTemperatureMin = -15,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Milkable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        milkDef = &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
        milkIntervalDays = 2,&lt;br /&gt;
        milkAmount = 12,&lt;br /&gt;
        milkFemaleOnly = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 7,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right hoof&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      herdAnimal = true,&lt;br /&gt;
      baseBodySize = 1.5,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;VegetarianRoughAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Plain&amp;quot;,&lt;br /&gt;
      wildness = 0.6,&lt;br /&gt;
      gestationPeriodDays = 28,&lt;br /&gt;
      lifeExpectancy = 15,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.5,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Warg&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_WildCanines.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Warg&amp;quot;,&lt;br /&gt;
    label = &amp;quot;warg&amp;quot;,&lt;br /&gt;
    description = [[Heavily-muscled wolf-like creatures with vicious unnatural claws and an absurdly powerful bite. They will only eat meat or corpses. If disturbed in the wild, they are very likely to attack.\n\nScientists say wargs are the descendants of weaponized military animals created for population suppression. The superstitious see them as the tools of an angry god.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      MarketValue = 450,&lt;br /&gt;
      ComfyTemperatureMin = -40,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 13,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 13,&lt;br /&gt;
        cooldownTime = 1.5,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;razorfangs&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.9,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      petness = 0.5,&lt;br /&gt;
      baseBodySize = 1.0,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;CarnivoreAnimalStrict&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Wolf&amp;quot;,&lt;br /&gt;
      gestationPeriodDays = 26,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      wildness = 0.60,&lt;br /&gt;
      manhunterOnTameFailChance = 0.35,&lt;br /&gt;
      manhunterOnDamageChance = 0.35,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2, 1.7},&lt;br /&gt;
          {2.5, 0.7},&lt;br /&gt;
          {3, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 15,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.45,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ThingBaseWolf&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ThingBaseWolf&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_WildCanines.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 5.0,&lt;br /&gt;
      MarketValue = 350,&lt;br /&gt;
      ComfyTemperatureMin = -40,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10.9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 10.9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.9,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 6,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      petness = 0.1,&lt;br /&gt;
      baseBodySize = 0.85,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;CarnivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Wolf&amp;quot;,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      wildness = 0.85,&lt;br /&gt;
      nuzzleMtbHours = 120,&lt;br /&gt;
      manhunterOnTameFailChance = 0.10,&lt;br /&gt;
      manhunterOnDamageChance = 0.10,&lt;br /&gt;
      gestationPeriodDays = 26,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2, 1.7},&lt;br /&gt;
          {2.5, 0.7},&lt;br /&gt;
          {3, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 12,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.45,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalUncommon&amp;quot;,&lt;br /&gt;
      &amp;quot;AnimalFighter&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Wolf_Timber&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ThingBaseWolf&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_WildCanines.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Wolf_Timber&amp;quot;,&lt;br /&gt;
    label = &amp;quot;timber wolf&amp;quot;,&lt;br /&gt;
    description = [[A rugged predator long feared by many ancient Earth cultures. As pack hunters, wolves have complex social lives and are fiercely intelligent.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Wolf_Arctic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ThingBaseWolf&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_WildCanines.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Wolf_Arctic&amp;quot;,&lt;br /&gt;
    label = &amp;quot;arctic wolf&amp;quot;,&lt;br /&gt;
    description = [[An arctic variant of the old Earth wolf. As pack hunters, wolves have a complex social life and are fiercely intelligent.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ComfyTemperatureMin = -55,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ThingBaseFox&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ThingBaseFox&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;AnimalThingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_WildCanines.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.6,&lt;br /&gt;
      ComfyTemperatureMin = -35,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right claw&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Scratch&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightPaw&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.9,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 4,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      petness = 0.1,&lt;br /&gt;
      baseBodySize = 0.55,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;CarnivoreAnimal&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Fox&amp;quot;,&lt;br /&gt;
      trainability = &amp;quot;Advanced&amp;quot;,&lt;br /&gt;
      wildness = 0.75,&lt;br /&gt;
      nuzzleMtbHours = 60,&lt;br /&gt;
      gestationPeriodDays = 21,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {2, 1.7},&lt;br /&gt;
          {2.5, 0.7},&lt;br /&gt;
          {3, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 9,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalJuvenile&amp;quot;,&lt;br /&gt;
          minAge = 0.15,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;AnimalAdult&amp;quot;,&lt;br /&gt;
          minAge = 0.35,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;AnimalCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Fox_Fennec&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ThingBaseFox&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_WildCanines.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Fox_Fennec&amp;quot;,&lt;br /&gt;
    label = &amp;quot;fennec fox&amp;quot;,&lt;br /&gt;
    description = [[A small fox originally from the northern part of Earth's Africa continent. It hunts small creatures and has very large ears for cooling itself in the heat.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ComfyTemperatureMin = -30,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Fox_Red&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ThingBaseFox&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_WildCanines.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Fox_Red&amp;quot;,&lt;br /&gt;
    label = &amp;quot;red fox&amp;quot;,&lt;br /&gt;
    description = [[A small solitary canine evolved for hunting small prey in temperate climates. Chicken farmers hate foxes because of their ability to destroy a whole coop in minutes.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Fox_Arctic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ThingBaseFox&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Animal_WildCanines.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Fox_Arctic&amp;quot;,&lt;br /&gt;
    label = &amp;quot;arctic fox&amp;quot;,&lt;br /&gt;
    description = [[A small predator adapted for cold climates. It usually hunts small game like mice and voles, sometimes burrowing through a meter of snow to reach its prey.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ComfyTemperatureMin = -50,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Human&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BasePawn&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Humanlike.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Human&amp;quot;,&lt;br /&gt;
    label = &amp;quot;human&amp;quot;,&lt;br /&gt;
    description = [[A baseline human, mostly unmodified by gene engineering and mostly unchanged by evolutionary pressures on non-Earth planets.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1750,&lt;br /&gt;
      MoveSpeed = 4.6,&lt;br /&gt;
      ComfyTemperatureMin = 16,&lt;br /&gt;
      ComfyTemperatureMax = 26,&lt;br /&gt;
      LeatherAmount = 50,&lt;br /&gt;
      RoyalFavorValue = 3,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left fist&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;LeftHand&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right fist&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;RightHand&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;teeth&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Bite&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.2,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;Teeth&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.07,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      lifeExpectancy = 80,&lt;br /&gt;
      leatherDef = &amp;quot;Leather_Human&amp;quot;,&lt;br /&gt;
      baseBodySize = 1,&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;OmnivoreHuman&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      gestationPeriodDays = 45,&lt;br /&gt;
      manhunterOnDamageChance = 0.20,&lt;br /&gt;
      manhunterOnTameFailChance = 0.02,&lt;br /&gt;
      litterSizeCurve = {&lt;br /&gt;
        points = {&lt;br /&gt;
          {0.5, 0},&lt;br /&gt;
          {1, 1},&lt;br /&gt;
          {1.01, 0.02},&lt;br /&gt;
          {3.5, 0},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;HumanlikeBaby&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;HumanlikeToddler&amp;quot;,&lt;br /&gt;
          minAge = 1.2,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;HumanlikeChild&amp;quot;,&lt;br /&gt;
          minAge = 4,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;HumanlikeTeenager&amp;quot;,&lt;br /&gt;
          minAge = 13,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;HumanlikeAdult&amp;quot;,&lt;br /&gt;
          minAge = 18,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMechanoid&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BasePawn&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BaseMechanoid&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Mechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      PsychicSensitivity = 0.5,&lt;br /&gt;
      ToxicSensitivity = 0,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      ComfyTemperatureMin = -100,&lt;br /&gt;
      ComfyTemperatureMax = 250,&lt;br /&gt;
      MeatAmount = 0,&lt;br /&gt;
      ArmorRating_Heat = 2.00,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      foodType = {&lt;br /&gt;
        &amp;quot;None&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      lifeExpectancy = 2500,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CanBeDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpOnDamage = true,&lt;br /&gt;
        anyColonistCloseCheckRadius = 30,&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Mech_Centipede&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMechanoid&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Mechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mech_Centipede&amp;quot;,&lt;br /&gt;
    label = &amp;quot;centipede&amp;quot;,&lt;br /&gt;
    description = [[Heavy combat mechanoids that glide on dozens of tiny legs. Their thick carpace and firepower makes them very effective against bunched-up static defenders. They are somewhat vulnerable to mobile hit-and-run tactics.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 1.9,&lt;br /&gt;
      ArmorRating_Blunt = 0.22,&lt;br /&gt;
      ArmorRating_Sharp = 0.72,&lt;br /&gt;
      PsychicSensitivity = 0.75,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 17,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 1.8,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;MechanoidFullyFormed&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseMechanoidWalker&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMechanoid&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;BaseMechanoidWalker&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Mechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 4.7,&lt;br /&gt;
      ArmorRating_Blunt = 0.20,&lt;br /&gt;
      ArmorRating_Sharp = 0.40,&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      baseBodySize = 1.0,&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;MechanoidFullyFormed&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Mech_Lancer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMechanoidWalker&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Mechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mech_Lancer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;lancer&amp;quot;,&lt;br /&gt;
    description = [[Fast human-sized combat mechanoids built for medium and long-range combat. Their bodies are light, making them vulnerable targets at close range - especially in melee combat.]],&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left fist&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12.0,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;LeftHand&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right fist&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12.0,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;RightHand&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Mech_Scyther&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMechanoidWalker&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Mechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mech_Scyther&amp;quot;,&lt;br /&gt;
    label = &amp;quot;scyther&amp;quot;,&lt;br /&gt;
    description = [[Fast, spindly, human-sized combat mechanoids specializing in rapid approach and close-range combat. Their bodies are covered in points and blades, but their mostly use two arm blades to lop off limbs or gut their victims alive.]],&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;left blade&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 20,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;LeftBlade&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;right blade&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 20,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;RightBlade&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Mech_Pikeman&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMechanoidWalker&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Races_Mechanoid.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Core&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mech_Pikeman&amp;quot;,&lt;br /&gt;
    label = &amp;quot;pikeman&amp;quot;,&lt;br /&gt;
    description = [[A clunky multi-legged combat mechanoid specialized as a long-range weapons platform. While effective at distance, it is weak in close-range fights and in melee combat.\n\nVeterans of mechanoid wars know that often, the safest place to be around a pikeman is touching it.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MoveSpeed = 2.5,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;front left leg&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12.0,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontLeftLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;front right leg&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12.0,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;FrontRightLeg&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 8.5,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        linkedBodyPartsGroup = &amp;quot;HeadAttackTool&amp;quot;,&lt;br /&gt;
        chanceFactor = 0.2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    race = {&lt;br /&gt;
      lifeStageAges = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          def = &amp;quot;MechanoidFullyFormed&amp;quot;,&lt;br /&gt;
          minAge = 0,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicSensitizer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartRoyalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Archotech_EmpireRoyal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicSensitizer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic sensitizer&amp;quot;,&lt;br /&gt;
    description = [[This brain implant stimulates growth in the regions of the brain related to psychic interaction, thus increasing psychic sensitivity.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1000,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicHarmonizer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartRoyalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Archotech_EmpireRoyal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicHarmonizer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic harmonizer&amp;quot;,&lt;br /&gt;
    description = [[This brain implant projects the user's mood in a spherical psychic field, forcing others nearby to feel a blurred, simplified version of their emotions. It can be a powerful tool to keep morale high, but if the user becomes unhappy, it can lead to collective disaster.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 800,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicReader&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartRoyalBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Archotech_EmpireRoyal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicReader&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic reader&amp;quot;,&lt;br /&gt;
    description = [[Gives limited mind-reading ability, improving the user's ability to get the upper hand in negotiations and social situations. The effect is proportional to the user's psychic sensitivity.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 1000,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartProstheticImperialBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_BaseEmpire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ImplantEmpireCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartBionicImperialBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_BaseEmpire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ImplantEmpireCommon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BodyPartRoyalBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BodyPartRoyalBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BodyPartArchotechBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_BaseEmpire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ImplantEmpireRoyal&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Neurocalculator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Neurocalculator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;neurocalculator&amp;quot;,&lt;br /&gt;
    description = [[A non-intelligent microcomputer controlled by a visual/tactile neural interface. It assists with memory and calculation, like a calculator and notepad embedded in the brain.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;NeuralComputation&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:LearningAssistant&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;LearningAssistant&amp;quot;,&lt;br /&gt;
    label = &amp;quot;learning assistant&amp;quot;,&lt;br /&gt;
    description = [[A sensory recording system that replays important experiences during sleep, strengthening the formation of new memories.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;NeuralComputation&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:GastroAnalyzer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GastroAnalyzer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gastro-analyzer&amp;quot;,&lt;br /&gt;
    description = [[This bionic nose implant enhances the sense of smell, with a focus towards food-related smells. A multi-layered ultrafine absorption mesh detects compounds in the air. A microprocessor formats the readings into an olfactory nerve signal to send to the brain through a nerve-link interface. The result is that the user can smell foods with a depth, richness, and precision unknown among unenhanced humans, allowing them to cook more effectively. The whole unit is small enough to be installed in the nose without affecting the user's appearance.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 3,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;MolecularAnalysis&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Immunoenhancer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Immunoenhancer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;immunoenhancer&amp;quot;,&lt;br /&gt;
    description = [[An analysis computer inspects the bloodstream, classifies pathogens, and rapidly prompts the body's natural immune system to respond to them faster than it could alone. This speeds immunity gain significantly.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;MolecularAnalysis&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Coagulator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Coagulator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;coagulator&amp;quot;,&lt;br /&gt;
    description = [[Releases coagulating factors in response to blood loss, reducing bleeding rates significantly.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;HealingFactors&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HealingEnhancer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HealingEnhancer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;healing enhancer&amp;quot;,&lt;br /&gt;
    description = [[Releases nanomachines and healing factors that speed up wound healing. This implant only helps with physical wounds, and does nothing to combat disease or other health problems.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;HealingFactors&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ToughskinGland&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ToughskinGland&amp;quot;,&lt;br /&gt;
    label = &amp;quot;toughskin gland&amp;quot;,&lt;br /&gt;
    description = [[This bionic gland releases chemicals and nanomachines that toughen the skin, making it somewhat more resistant to damage. While it doesn't add as much protection as some other skin-hardening glands, the toughskin gland has the advantage of not noticeably altering the user's appearance.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;SkinHardening&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ArmorskinGland&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ArmorskinGland&amp;quot;,&lt;br /&gt;
    label = &amp;quot;armorskin gland&amp;quot;,&lt;br /&gt;
    description = [[This bionic gland releases chemicals and nanomachines that toughen the skin and add flexible subdermal keratin plates at strategic points. This makes the user more resistant to damage across their whole body. Unfortunately, these changes make the skin appear leathery, with wrinkles across the whole body and face, which is generally considered ugly.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 20,&lt;br /&gt;
      ComponentSpacer = 6,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;SkinHardening&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:StoneskinGland&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;StoneskinGland&amp;quot;,&lt;br /&gt;
    label = &amp;quot;stoneskin gland&amp;quot;,&lt;br /&gt;
    description = [[This bionic gland releases chemical and nanomachines that transform the user's skin into a built-in suit of armor. The whole epidermis thickens and hardens to resist burns, while jointed exterior keratin plates form everywhere they can - including the head and face. While it's very difficult to physically hurt someone using this implant, the plates and hard skin significantly reduces the user's physical attractiveness.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 25,&lt;br /&gt;
      ComponentSpacer = 8,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;SkinHardening&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AestheticShaper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AestheticShaper&amp;quot;,&lt;br /&gt;
    label = &amp;quot;aesthetic shaper&amp;quot;,&lt;br /&gt;
    description = [[A sophisticated package of hormonal and mechanite influences shapes the muscles and fat on the body, adding non-functional aesthetic tissue where needed to achieve a desired appearance. This implant can be configured to form various body shapes according to the user's taste - or that of their partner.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 3,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;FleshShaping&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AestheticNose&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AestheticNose&amp;quot;,&lt;br /&gt;
    label = &amp;quot;aesthetic nose&amp;quot;,&lt;br /&gt;
    description = [[The nose is shaped to the user's desired form, matching prevalent beauty standards and enhancing physical impressions.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
      ComponentSpacer = 2,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;FleshShaping&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:LoveEnhancer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;LoveEnhancer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;love enhancer&amp;quot;,&lt;br /&gt;
    description = [[Humans have always tried to use every new technology to enhance sexual satisfaction. Bionics were no exception. This implant makes physical and chemical changes to the body which enhance the experience of lovin' for both partners - both physically and psychologically. The implant unit can adapt to enhance both men and women upon being implanted.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;FleshShaping&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DetoxifierStomach&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DetoxifierStomach&amp;quot;,&lt;br /&gt;
    label = &amp;quot;detoxifier stomach&amp;quot;,&lt;br /&gt;
    description = [[An artificial stomach replacement with a broad-spectrum toxin filter and neutralization system. It allows the user to eat almost anything without ever worrying about food poisoning.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ArtificialMetabolism&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ReprocessorStomach&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ReprocessorStomach&amp;quot;,&lt;br /&gt;
    label = &amp;quot;reprocessor stomach&amp;quot;,&lt;br /&gt;
    description = [[An advanced chemical processing system breaks down nutrients the body could normally never use, leading to increased efficiency.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ArtificialMetabolism&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:NuclearStomach&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;NuclearStomach&amp;quot;,&lt;br /&gt;
    label = &amp;quot;nuclear stomach&amp;quot;,&lt;br /&gt;
    description = [[A micro-nuclear reactor combined with complex chemical synthesis replaces the body's need for food energy. Food is required only to replace matter lost from the body, reducing the user's intake needs significantly. This artifical stomach cannot get food poisoning. However, there is little room to shield the reactor, so the radiation increases the risk of cancer.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;ArtificialMetabolism&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CircadianAssistant&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CircadianAssistant&amp;quot;,&lt;br /&gt;
    label = &amp;quot;circadian assistant&amp;quot;,&lt;br /&gt;
    description = [[An artificial gland. Produces chemicals and nanomachines that clear toxin buildup from the brain.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;CircadianInfluence&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:CircadianHalfCycler&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartBionicImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Bionic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CircadianHalfCycler&amp;quot;,&lt;br /&gt;
    label = &amp;quot;circadian half-cycler&amp;quot;,&lt;br /&gt;
    description = [[A signal redirector which isolates half of the brain, allowing the other half to sleep while the user remains outwardly awake. By alternating brain halves, the user never needs to sleep. Unfortunately, two hemispheres are better than one - working with half a brain causes a reduction in consciousness.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 15,&lt;br /&gt;
      ComponentSpacer = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;CircadianInfluence&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Mindscrew&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Mindscrew&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mindscrew&amp;quot;,&lt;br /&gt;
    description = [[Inflicts continuous pain on the user. Mindscrews are used by some authorities as a long-term punishment. Some even install them voluntarily as a demonstration of ideological or religious devotion.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 15,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;BrainWiring&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:DrillArm&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;DrillArm&amp;quot;,&lt;br /&gt;
    label = &amp;quot;drill arm&amp;quot;,&lt;br /&gt;
    description = [[A mechanical arm replacement for speeding up mining. It has a built-in snake drill, which allows the miner to rapidly find and exploit weak lines in the rock. It also has a general-purpose manipulator. It is somewhat ungainly, which slows down movement slightly.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 8,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;SpecializedLimbs&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:FieldHand&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FieldHand&amp;quot;,&lt;br /&gt;
    label = &amp;quot;field hand&amp;quot;,&lt;br /&gt;
    description = [[This mechanical hand replacement is made to speed up the sowing and harvesting tasks of a farmer. Multiple telescoping finger-like protrusions can simultaneously harvest from several points on the same plant, or precisely sow several holes at once. It also has a general-purpose manipulator. It is somewhat ungainly, which slows down movement slightly.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 8,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;SpecializedLimbs&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:HandTalon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HandTalon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hand talon&amp;quot;,&lt;br /&gt;
    description = [[A razor-sharp talon which extends from a hidden opening between the middle and ring fingers. The talon is longer than the palm, but it becomes flexible upon retracting, allowing the user to curl it up and conceal it inside the hand. It can perform rapid slashing attacks, but is poor at penetrating armor.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 7,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;CompactWeaponry&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ElbowBlade&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ElbowBlade&amp;quot;,&lt;br /&gt;
    label = &amp;quot;elbow blade&amp;quot;,&lt;br /&gt;
    description = [[A razor-sharp blade that extends at will from a hidden opening at the end of the ulna. Appearing without warning, it can be used for devastating slice attacks.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 7,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;CompactWeaponry&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:KneeSpike&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;KneeSpike&amp;quot;,&lt;br /&gt;
    label = &amp;quot;knee spike&amp;quot;,&lt;br /&gt;
    description = [[A spike that extends at will from a hidden opening on the front of the knee. Appearing without warning, it can be used for devastating stabbing attacks which penetrate even thick armor.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 7,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;CompactWeaponry&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:VenomFangs&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;VenomFangs&amp;quot;,&lt;br /&gt;
    label = &amp;quot;venom fangs&amp;quot;,&lt;br /&gt;
    description = [[A pair of injectors implanted through the canine teeth, connected to a venom pump. The user can bite an enemy, extend the injectors, and pump venom into the target.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 7,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;VenomSynthesis&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:VenomTalon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BodyPartProstheticImperialBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_BodyParts_Prosthetic_Empire.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;VenomTalon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;venom talon&amp;quot;,&lt;br /&gt;
    description = [[A retractable finger talon connected to a venom pump in the lower arm. The user can scratch an enemy while squirting venom into the wound. The talon is designed to be installed in the middle finger. It's fast, but poor at penetrating armor.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 7,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;VenomSynthesis&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicAmplifier&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Hediffs_Psycasts.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicAmplifier&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psylink neuroformer&amp;quot;,&lt;br /&gt;
    description = [[A consumable archotech-created device that forms or upgrades a psylink in the user's mind.\n\nThe user presses the device over the eyes, where it links to the brain directly and restructures part of it. Afterwards, the device disintegrates into worthless ash.]],&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    altitudeLayer = &amp;quot;Item&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BodyPartsArchotech&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Beauty = -4,&lt;br /&gt;
      Mass = 1,&lt;br /&gt;
      MarketValue = 2600,&lt;br /&gt;
      DeteriorationRate = 0,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;PsylinkNeuroformer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Usable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompUsableImplant&amp;quot;,&lt;br /&gt;
        useJob = &amp;quot;UseItem&amp;quot;,&lt;br /&gt;
        useLabel = &amp;quot;Use neuroformer to form psylink&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffectInstallImplant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        hediffDef = &amp;quot;PsychicAmplifier&amp;quot;,&lt;br /&gt;
        bodyPart = &amp;quot;Brain&amp;quot;,&lt;br /&gt;
        canUpgrade = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffectPlaySound&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        soundOnUsed = &amp;quot;PsyAmpInstalled&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UseEffect&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompUseEffect_DestroySelf&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:NobleApparel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Apparel.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;NobleApparel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;noble apparel&amp;quot;,&lt;br /&gt;
    description = [[Tailor noble-specific apparel like formal shirts and royal robes.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    researchViewX = 2.00,&lt;br /&gt;
    researchViewY = 1.80,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;ComplexClothing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:RoyalApparel&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Apparel.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;RoyalApparel&amp;quot;,&lt;br /&gt;
    label = &amp;quot;royal apparel&amp;quot;,&lt;br /&gt;
    description = [[Tailor royal apparel of the highest tier, like royal robes and crowns.]],&lt;br /&gt;
    baseCost = 400,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    researchViewX = 3.00,&lt;br /&gt;
    researchViewY = 1.80,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;NobleApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:CataphractArmor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Apparel.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CataphractArmor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cataphract armor&amp;quot;,&lt;br /&gt;
    description = [[Craft cataphract armor, heavy powered armor that slows the user but which can absorb extreme punishment. Note that these also require advanced components.]],&lt;br /&gt;
    baseCost = 6000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;PoweredArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 17.00,&lt;br /&gt;
    researchViewY = 1.50,&lt;br /&gt;
    techprintCount = 2,&lt;br /&gt;
    techprintCommonality = 3,&lt;br /&gt;
    techprintMarketValue = 3000,&lt;br /&gt;
    heldByFactionCategoryTags = {&lt;br /&gt;
      &amp;quot;Empire&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:JumpPack&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Apparel.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;JumpPack&amp;quot;,&lt;br /&gt;
    label = &amp;quot;jump packs&amp;quot;,&lt;br /&gt;
    description = [[Build jump packs to perform aerial assaults during combat.]],&lt;br /&gt;
    baseCost = 2000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Machining&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    techprintCount = 1,&lt;br /&gt;
    techprintCommonality = 2,&lt;br /&gt;
    techprintMarketValue = 2000,&lt;br /&gt;
    heldByFactionCategoryTags = {&lt;br /&gt;
      &amp;quot;Empire&amp;quot;,&lt;br /&gt;
      &amp;quot;Outlander&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    researchViewX = 12.00,&lt;br /&gt;
    researchViewY = 3.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:BaseBodyPartEmpire_TierA&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;BaseBodyPartEmpire_TierA&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    baseCost = 2000,&lt;br /&gt;
    techLevel = &amp;quot;Spacer&amp;quot;,&lt;br /&gt;
    techprintCount = 1,&lt;br /&gt;
    techprintCommonality = 1,&lt;br /&gt;
    techprintMarketValue = 1000,&lt;br /&gt;
    heldByFactionCategoryTags = {&lt;br /&gt;
      &amp;quot;Empire&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:BaseBodyPartEmpire_TierB&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;BaseBodyPartEmpire_TierB&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierA&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    techLevel = &amp;quot;Ultra&amp;quot;,&lt;br /&gt;
    requiredResearchBuilding = &amp;quot;HiTechResearchBench&amp;quot;,&lt;br /&gt;
    requiredResearchFacilities = {&lt;br /&gt;
      &amp;quot;MultiAnalyzer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    techprintMarketValue = 2000,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:BrainWiring&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierA&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BrainWiring&amp;quot;,&lt;br /&gt;
    label = &amp;quot;brain wiring&amp;quot;,&lt;br /&gt;
    description = [[Craft brain implants that induce or prevent blunt sensations like joy or pain.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 12.00,&lt;br /&gt;
    researchViewY = 4.30,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:SpecializedLimbs&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierA&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SpecializedLimbs&amp;quot;,&lt;br /&gt;
    label = &amp;quot;specialized limbs&amp;quot;,&lt;br /&gt;
    description = [[Craft specialized bionic limbs built for specific purposes - both combat and labor.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 13.00,&lt;br /&gt;
    researchViewY = 4.30,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:CompactWeaponry&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierA&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CompactWeaponry&amp;quot;,&lt;br /&gt;
    label = &amp;quot;compact weaponry&amp;quot;,&lt;br /&gt;
    description = [[Craft compact, concealable bionic weapons which can be embedded in various body parts.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;MicroelectronicsBasics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 12.00,&lt;br /&gt;
    researchViewY = 4.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:VenomSynthesis&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierA&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;VenomSynthesis&amp;quot;,&lt;br /&gt;
    label = &amp;quot;poison synthesis&amp;quot;,&lt;br /&gt;
    description = [[Craft bionics that synthesize venom from internal chemical reactors for use in toxifying attacks.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;CompactWeaponry&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 13.00,&lt;br /&gt;
    researchViewY = 4.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:ArtificialMetabolism&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierB&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ArtificialMetabolism&amp;quot;,&lt;br /&gt;
    label = &amp;quot;artificial metabolism&amp;quot;,&lt;br /&gt;
    description = [[Craft bionics that process food more safely or efficiently than a biological stomach.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 16.00,&lt;br /&gt;
    researchViewY = 4.30,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:NeuralComputation&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierB&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;NeuralComputation&amp;quot;,&lt;br /&gt;
    label = &amp;quot;neural computation&amp;quot;,&lt;br /&gt;
    description = [[Craft brain implants that assist thought and learning by use of a direct, shallow brain-computer interface.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 16.00,&lt;br /&gt;
    researchViewY = 4.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:SkinHardening&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierB&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SkinHardening&amp;quot;,&lt;br /&gt;
    label = &amp;quot;skin hardening&amp;quot;,&lt;br /&gt;
    description = [[Craft bionic implants which induce the toughening of natural skin, producing an armor-like effect.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 17.00,&lt;br /&gt;
    researchViewY = 3.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:HealingFactors&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierB&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;HealingFactors&amp;quot;,&lt;br /&gt;
    label = &amp;quot;healing factors&amp;quot;,&lt;br /&gt;
    description = [[Craft bionics that enhance natural healing processes.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 17.00,&lt;br /&gt;
    researchViewY = 4.30,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:FleshShaping&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierB&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;FleshShaping&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flesh shaping&amp;quot;,&lt;br /&gt;
    description = [[Craft bionics which induce the reshaping or natural flesh, usually for the purposes of aesthetic enhancement or personal pleasure.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 17.00,&lt;br /&gt;
    researchViewY = 4.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:MolecularAnalysis&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierB&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MolecularAnalysis&amp;quot;,&lt;br /&gt;
    label = &amp;quot;molecular analysis&amp;quot;,&lt;br /&gt;
    description = [[Craft bionics with molecular analyzers for assisting the immune system or analyzing food.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 18.00,&lt;br /&gt;
    researchViewY = 3.80,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:CircadianInfluence&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBodyPartEmpire_TierB&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_Implants.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;CircadianInfluence&amp;quot;,&lt;br /&gt;
    label = &amp;quot;circadian influence&amp;quot;,&lt;br /&gt;
    description = [[Craft brain implants that chemically manipulate the circadian rhythm, reducing or altering the need to sleep.]],&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Fabrication&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    hiddenPrerequisites = {&lt;br /&gt;
      &amp;quot;Prosthetics&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    researchViewX = 18.00,&lt;br /&gt;
    researchViewY = 4.30,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Harp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Harp&amp;quot;,&lt;br /&gt;
    label = &amp;quot;harp&amp;quot;,&lt;br /&gt;
    description = [[Craft the harp, a simple stationary musical instrument popular among nobility in some cultures.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    researchViewX = 2.00,&lt;br /&gt;
    researchViewY = 4.90,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Harpsichord&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Harpsichord&amp;quot;,&lt;br /&gt;
    label = &amp;quot;harpsichord&amp;quot;,&lt;br /&gt;
    description = [[Craft the harpsichord, a complex stationary musical instrument.]],&lt;br /&gt;
    baseCost = 500,&lt;br /&gt;
    techLevel = &amp;quot;Medieval&amp;quot;,&lt;br /&gt;
    researchViewX = 3.00,&lt;br /&gt;
    researchViewY = 4.90,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Harp&amp;quot;,&lt;br /&gt;
      &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ResearchProjectDef:Piano&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      DefCategory = &amp;quot;ResearchProjectDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;ResearchProjects_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Piano&amp;quot;,&lt;br /&gt;
    label = &amp;quot;piano&amp;quot;,&lt;br /&gt;
    description = [[Craft the piano, an advanced stationary musical instrument.]],&lt;br /&gt;
    baseCost = 2000,&lt;br /&gt;
    techLevel = &amp;quot;Industrial&amp;quot;,&lt;br /&gt;
    researchViewX = 4.00,&lt;br /&gt;
    researchViewY = 4.90,&lt;br /&gt;
    prerequisites = {&lt;br /&gt;
      &amp;quot;Harpsichord&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ConditionCauserBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1.0,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 1500,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      combatPower = 750,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMember&amp;quot;,&lt;br /&gt;
        &amp;quot;MechClusterProblemCauser&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Initiatable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
      ChunkSlagSteel = 4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SunBlocker&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SunBlocker&amp;quot;,&lt;br /&gt;
    label = &amp;quot;sun blocker&amp;quot;,&lt;br /&gt;
    description = [[An ultratech machine that generates a sheet of exotic fields at high altitude, turning the sky opaque and blocking the sun.]],&lt;br /&gt;
    size = {6, 4},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        conditionDef = &amp;quot;SunBlocker&amp;quot;,&lt;br /&gt;
        worldRange = 10,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SmokeSpewer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SmokeSpewer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;smoke spewer&amp;quot;,&lt;br /&gt;
    description = [[An ultratech weapon of mass destruction designed for area denial. By harvesting available compounds and converting them into self-reproducing opaque molecules, it can spew enough smoke to block the sun in a whole region of the planet.]],&lt;br /&gt;
    size = {6, 5},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        conditionDef = &amp;quot;GiantSmokeCloud&amp;quot;,&lt;br /&gt;
        worldRange = 10,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ThrownMoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_Smoke&amp;quot;,&lt;br /&gt;
        offsetMin = {-2, 0, 3},&lt;br /&gt;
        offsetMax = {2, 0, 3},&lt;br /&gt;
        emissionInterval = 15,&lt;br /&gt;
        burstCount = 2,&lt;br /&gt;
        scale = { [&amp;quot;&amp;lt;&amp;quot;]=2, [&amp;quot;&amp;gt;&amp;quot;]=4 },&lt;br /&gt;
        rotationRate = { [&amp;quot;&amp;lt;&amp;quot;]=-30, [&amp;quot;&amp;gt;&amp;quot;]=30 },&lt;br /&gt;
        velocityX = { [&amp;quot;&amp;lt;&amp;quot;]=-40, [&amp;quot;&amp;gt;&amp;quot;]=40 },&lt;br /&gt;
        velocityY = { [&amp;quot;&amp;lt;&amp;quot;]=0.5, [&amp;quot;&amp;gt;&amp;quot;]=1 },&lt;br /&gt;
        colorA = {0.2, 0.2, 0.2, 1},&lt;br /&gt;
        colorB = {0.4, 0.4, 0.4, 1},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ToxicSpewer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ToxicSpewer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;toxic spewer&amp;quot;,&lt;br /&gt;
    description = [[An ultratech weapon of mass destruction designed for area denial. This device harvests available compounds and converts them into self-reproducing poisons. By spewing these into the atmosphere, it can poison a whole region of the planet.]],&lt;br /&gt;
    size = {6, 5},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompCauseGameCondition_ToxicSpewer&amp;quot;,&lt;br /&gt;
        conditionDef = &amp;quot;ToxicSpewer&amp;quot;,&lt;br /&gt;
        worldRange = 3,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ThrownMoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_DustSlow&amp;quot;,&lt;br /&gt;
        offsetMin = {-2, 0, -1.5},&lt;br /&gt;
        offsetMax = {0, 0, -2},&lt;br /&gt;
        emissionInterval = 520,&lt;br /&gt;
        burstCount = 35,&lt;br /&gt;
        scale = { [&amp;quot;&amp;lt;&amp;quot;]=1, [&amp;quot;&amp;gt;&amp;quot;]=2.5 },&lt;br /&gt;
        rotationRate = { [&amp;quot;&amp;lt;&amp;quot;]=-30, [&amp;quot;&amp;gt;&amp;quot;]=30 },&lt;br /&gt;
        velocityX = { [&amp;quot;&amp;lt;&amp;quot;]=-50, [&amp;quot;&amp;gt;&amp;quot;]=50 },&lt;br /&gt;
        velocityY = { [&amp;quot;&amp;lt;&amp;quot;]=0.5, [&amp;quot;&amp;gt;&amp;quot;]=1.8 },&lt;br /&gt;
        colorA = {0.25, 0.4, 0, 0.9},&lt;br /&gt;
        colorB = {0.4, 0.55, 0, 0.6},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:WeatherController&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;WeatherController&amp;quot;,&lt;br /&gt;
    label = &amp;quot;weather controller&amp;quot;,&lt;br /&gt;
    description = [[An ultratech device for controlling weather. Using chemicals and exotic fields, it forces the weather into a particular configuration.]],&lt;br /&gt;
    size = {6, 6},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        conditionDef = &amp;quot;WeatherController&amp;quot;,&lt;br /&gt;
        compClass = &amp;quot;CompCauseGameCondition_ForceWeather&amp;quot;,&lt;br /&gt;
        worldRange = 10,&lt;br /&gt;
        preventConditionStacking = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ClimateAdjuster&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ClimateAdjuster&amp;quot;,&lt;br /&gt;
    label = &amp;quot;climate adjuster&amp;quot;,&lt;br /&gt;
    description = [[An ultratech device for controlling climate. Using chemicals and exotic fields to manipulate the atmosphere, it shifts the temperature in this region of the world.]],&lt;br /&gt;
    size = {6, 6},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition_ClimateAdjuster&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        conditionDef = &amp;quot;ClimateAdjustment&amp;quot;,&lt;br /&gt;
        worldRange = 10,&lt;br /&gt;
        preventConditionStacking = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicDroner&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicDroner&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic droner&amp;quot;,&lt;br /&gt;
    description = [[An archotech device transmitting the thoughts of a mad superintelligence. It generates a massive psychic drone tuned to one gender and affecting a whole region of the planet. People of that gender will be disturbed by the effect, reducing their mood and possibly driving them insane. The effect is modulated by an individual's psychic sensitivity.]],&lt;br /&gt;
    size = {6, 6},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition_PsychicEmanation&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        conditionDef = &amp;quot;PsychicDroner&amp;quot;,&lt;br /&gt;
        preventConditionStacking = false,&lt;br /&gt;
        compClass = &amp;quot;CompCauseGameCondition_PsychicEmanation&amp;quot;,&lt;br /&gt;
        worldRange = 10,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_PsychicConditionCauserEffect&amp;quot;,&lt;br /&gt;
        emissionInterval = 150,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicSuppressor&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PsychicSuppressor&amp;quot;,&lt;br /&gt;
    label = &amp;quot;psychic suppressor&amp;quot;,&lt;br /&gt;
    description = [[An archotech device that generates a massive psychic suppression field tuned to a particular gender. People of that gender have their psychic activity suppressed, reducing their consciousness. The effect is modulated by an individual's psychic sensitivity.]],&lt;br /&gt;
    size = {6, 6},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        conditionDef = &amp;quot;PsychicSuppression&amp;quot;,&lt;br /&gt;
        compClass = &amp;quot;CompCauseGameCondition_PsychicSuppression&amp;quot;,&lt;br /&gt;
        worldRange = 10,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_PsychicConditionCauserEffect&amp;quot;,&lt;br /&gt;
        emissionInterval = 150,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:EMIDynamo&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ConditionCauserBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_ConditionCausers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;EMIDynamo&amp;quot;,&lt;br /&gt;
    label = &amp;quot;EMI dynamo&amp;quot;,&lt;br /&gt;
    description = [[A massive electromagnetic interference generator. It interferes with or shuts down electrical devices in nearby regions.]],&lt;br /&gt;
    size = {6, 4},&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CausesGameCondition&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        conditionDef = &amp;quot;EMIField&amp;quot;,&lt;br /&gt;
        worldRange = 10,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        explosiveRadius = 9.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
        explodeOnKilled = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Shuttle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ShuttleBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Shuttle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shuttle&amp;quot;,&lt;br /&gt;
    description = [[A spacer-tech shuttle designed for transit between surface and orbit, or between moons of a planetary system.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    passability = &amp;quot;Impassable&amp;quot;,&lt;br /&gt;
    fillPercent = 1.0,&lt;br /&gt;
    size = {5, 3},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 1000,&lt;br /&gt;
      Flammability = 1,&lt;br /&gt;
    },&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      Steel = 100,&lt;br /&gt;
      Plasteel = 35,&lt;br /&gt;
      ChunkSlagSteel = 4,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Shuttle&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Launchable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        requireFuel = false,&lt;br /&gt;
        fixedLaunchDistanceMax = 70,&lt;br /&gt;
        skyfallerLeaving = &amp;quot;ShuttleLeaving&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Transporter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        massCapacity = 1000,&lt;br /&gt;
        max1PerGroup = true,&lt;br /&gt;
        canChangeAssignedThingsAfterStarting = true,&lt;br /&gt;
        showOverallStats = false,&lt;br /&gt;
        pawnLoadedSound = &amp;quot;Shuttle_PawnLoaded&amp;quot;,&lt;br /&gt;
        pawnExitSound = &amp;quot;Shuttle_PawnExit&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShuttleCrashed&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShuttleBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShuttleCrashed&amp;quot;,&lt;br /&gt;
    label = &amp;quot;crashed shuttle&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
      Steel = 4,&lt;br /&gt;
      Plasteel = 7,&lt;br /&gt;
      ChunkSlagSteel = 1,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      Plasteel = 70,&lt;br /&gt;
      ComponentIndustrial = 10,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = true,&lt;br /&gt;
    building = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
      alwaysDeconstructible = true,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BroadshieldProjector&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BroadshieldProjector&amp;quot;,&lt;br /&gt;
    label = &amp;quot;burnout low-shield&amp;quot;,&lt;br /&gt;
    description = [[A man-portable low-angle shield projector. Bullets can go out, but not in. Its compact power source burns out after a few seconds of use.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;BuildingOnTop&amp;quot;,&lt;br /&gt;
    pathCost = 0,&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 250,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
    },&lt;br /&gt;
    killedLeavings = {},&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      isEdifice = false,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ProjectileInterceptor&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        radius = 4.9,&lt;br /&gt;
        interceptGroundProjectiles = true,&lt;br /&gt;
        interceptNonHostileProjectiles = true,&lt;br /&gt;
        interceptOutgoingProjectiles = false,&lt;br /&gt;
        color = &amp;quot;(0.6, 0.6, 0.8)&amp;quot;,&lt;br /&gt;
        idlePulseSpeed = 3,&lt;br /&gt;
        minIdleAlpha = 0.05,&lt;br /&gt;
        disarmedByEmpForTicks = 600,&lt;br /&gt;
        activeSound = &amp;quot;Broadshield_Ambience&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_DestroyAfterDelay&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        delayTicks = 1800,&lt;br /&gt;
        destroyMode = &amp;quot;KillFinalize&amp;quot;,&lt;br /&gt;
        countdownLabel = &amp;quot;Burnout in&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Drape&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Drape&amp;quot;,&lt;br /&gt;
    label = &amp;quot;drape&amp;quot;,&lt;br /&gt;
    description = [[A decorative sheet hanging from a vertical wooden frame. Appropriate for royal rooms.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;BuildingOnTop&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.40,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToBuild = 2000,&lt;br /&gt;
      Mass = 15,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 7.5,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 150,&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 50,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    size = {2, 1},&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Brazier&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Brazier&amp;quot;,&lt;br /&gt;
    label = &amp;quot;brazier&amp;quot;,&lt;br /&gt;
    description = [[A bowl-shaped furnishing used to hold a fire. Will light the surroundings and create heat.]],&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    fillPercent = 0.15,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToBuild = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Mass = 15,&lt;br /&gt;
      MeditationFocusStrength = 0.0,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Refuelable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fuelConsumptionRate = 2.0,&lt;br /&gt;
        fuelCapacity = 30.0,&lt;br /&gt;
        fuelConsumptionPerTickInRain = 0.0006,&lt;br /&gt;
        fuelFilter = {&lt;br /&gt;
          thingDefs = {&lt;br /&gt;
            &amp;quot;WoodLog&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        initialFuelPercent = 0,&lt;br /&gt;
        showAllowAutoRefuelToggle = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 10,&lt;br /&gt;
        glowColor = {252, 187, 113, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 3.5,&lt;br /&gt;
        heatPushMaxTemperature = 23,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_FireOverlay&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fireSize = 1,&lt;br /&gt;
        offset = {0, 0, 0.18},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Flame&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_Lit&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.15,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_BuildingDefsLit&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              &amp;quot;Campfire&amp;quot;,&lt;br /&gt;
              &amp;quot;TorchLamp&amp;quot;,&lt;br /&gt;
              &amp;quot;Brazier&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offsetPerBuilding = 0.02,&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 8,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerFlame&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerFlameAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Throne&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Throne&amp;quot;,&lt;br /&gt;
    label = &amp;quot;meditation throne&amp;quot;,&lt;br /&gt;
    description = [[A large, ornate chair designed for a dignity-focused psycaster to sit and meditate. Reigning on a throne is a form of meditation that builds up psyfocus. For dignity psycasters, more impressive meditation thrones and thronerooms increase the rate of psyfocus gain.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      WorkToBuild = 10000,&lt;br /&gt;
      Mass = 40,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 4,&lt;br /&gt;
      Comfort = 0.75,&lt;br /&gt;
      MeditationFocusStrength = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building_Throne&amp;quot;,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 125,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    building = {&lt;br /&gt;
      isSittable = true,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = true,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Throne&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Dignified&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_ThroneSatisfiesRequirements&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.08,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_RoomImpressiveness&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            curve = {&lt;br /&gt;
              points = {&lt;br /&gt;
                {0, -0.05},&lt;br /&gt;
                {30, 0.0},&lt;br /&gt;
                {60, 0.04},&lt;br /&gt;
                {100, 0.08},&lt;br /&gt;
                {170, 0.1},&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:GrandThrone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;FurnitureWithQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Furniture.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;GrandThrone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;grand meditation throne&amp;quot;,&lt;br /&gt;
    description = [[A massive, ornate chair, designed for a dignity-focused psycaster to sit and meditate. Reigning on a throne is a form of meditation that builds up psyfocus. For dignity psycasters, more impressive meditation thrones and thronerooms increase the rate of psyfocus gain.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    category = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    size = {3, 2},&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 350,&lt;br /&gt;
      WorkToBuild = 40000,&lt;br /&gt;
      Mass = 100,&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
      Beauty = 6,&lt;br /&gt;
      Comfort = 0.9,&lt;br /&gt;
      MeditationFocusStrength = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;Building_Throne&amp;quot;,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 300,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Gold = 75,&lt;br /&gt;
    },&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    building = {&lt;br /&gt;
      isSittable = true,&lt;br /&gt;
      buildingSizeCategory = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawAssignmentOverlay = true,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_Throne&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Dignified&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_ThroneSatisfiesRequirements&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            offset = 0.08,&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_RoomImpressiveness&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            curve = {&lt;br /&gt;
              points = {&lt;br /&gt;
                {0, -0.05},&lt;br /&gt;
                {30, 0.00},&lt;br /&gt;
                {60, 0.04},&lt;br /&gt;
                {100, 0.08},&lt;br /&gt;
                {170, 0.10},&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;ComplexFurniture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MechBuildingBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 1.0,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMember&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnstablePowerCell&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnstablePowerCell&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unstable power cell&amp;quot;,&lt;br /&gt;
    description = [[A mechanoid power generation unit. The vanometric power core will run forever, extracting energy from quantum foam fluctuations.\n\nAn internal amplifier system makes it unstable. If damaged, the unit will generate a massive explosion.\n\nSome brave humans steal these from mechanoids for their own use as power plants or defensive bombs. However, an unintentional detonation can be devastating.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    pathCost = 42,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Mass = 15,&lt;br /&gt;
      MarketValue = 400,&lt;br /&gt;
      WorkToBuild = 300,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMemberGood&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSpecial&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerPlant&amp;quot;,&lt;br /&gt;
        basePowerConsumption = -400,&lt;br /&gt;
        transmitsPower = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 4,&lt;br /&gt;
        glowColor = {115, 200, 23, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 9.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        explodeOnKilled = true,&lt;br /&gt;
        startWickHitPointsPercent = 0.5,&lt;br /&gt;
        extraInspectStringKey = &amp;quot;ExplosionOnDamageWarning&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentIndustrial = 2,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gloomlight&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gloomlight&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gloomlight&amp;quot;,&lt;br /&gt;
    description = [[A self-powered mechanoid light. Gloomlights can be deconstructed to yield valuable resources, or used as lights - but only if they are captured intact. The internal micro power cell will flame out and ruin the materials if the unit takes too much damage.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 50,&lt;br /&gt;
      Mass = 9,&lt;br /&gt;
      MarketValue = 200,&lt;br /&gt;
      WorkToBuild = 300,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMemberLamp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSpecial&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 3,&lt;br /&gt;
        glowColor = {216, 219, 67, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 22,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Defoliator&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Defoliator&amp;quot;,&lt;br /&gt;
    label = &amp;quot;defoliator&amp;quot;,&lt;br /&gt;
    description = [[An area-denial device which annihilates nearby plants without affecting animals.\n\nIn planetary wars, these weapons are scattered across farmlands or jungles to deny the enemy food or cover. They're usually associated with orbital-drop mechanoid swarms.]],&lt;br /&gt;
    size = {3, 3},&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 4,&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMember&amp;quot;,&lt;br /&gt;
        &amp;quot;MechClusterProblemCauser&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 400,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Beauty = -200,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_PlantHarmRadius&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        radiusPerDayCurve = {&lt;br /&gt;
          points = {&lt;br /&gt;
            &amp;quot;0  , 5&amp;quot;,&lt;br /&gt;
            &amp;quot;1.5, 18&amp;quot;,&lt;br /&gt;
            &amp;quot;6  , 40&amp;quot;,&lt;br /&gt;
            &amp;quot;20 , 100&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Initiatable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
        explodeOnKilled = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ActivatorCountdown&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Activators.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ActivatorCountdown&amp;quot;,&lt;br /&gt;
    label = &amp;quot;count-down activator&amp;quot;,&lt;br /&gt;
    description = [[A timed mechanoid activation unit. After counting down, it will wake nearby dormant mechanoids and structures.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    fillPercent = 0.25,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      WorkToBuild = 300,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterActivator&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SendSignalOnCountdown&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        signalTag = &amp;quot;CompCanBeDormant.WakeUp&amp;quot;,&lt;br /&gt;
        countdownCurveTicks = {&lt;br /&gt;
          points = {&lt;br /&gt;
            {599, 0},&lt;br /&gt;
            {600, 1},&lt;br /&gt;
            {600000, 0.1},&lt;br /&gt;
            {1200000, 0},&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_ActivatorCountdownFlash&amp;quot;,&lt;br /&gt;
        emissionInterval = 100,&lt;br /&gt;
        soundOnEmission = &amp;quot;ActivatorCountdown_Ambience&amp;quot;,&lt;br /&gt;
        saveKeysPrefix = &amp;quot;flash&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_ActivatorCountdownGlow&amp;quot;,&lt;br /&gt;
        maintain = true,&lt;br /&gt;
        saveKeysPrefix = &amp;quot;glow&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 2,&lt;br /&gt;
        glowColor = {55, 145, 10, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 7,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ActivatorProximity&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Activators.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ActivatorProximity&amp;quot;,&lt;br /&gt;
    label = &amp;quot;proximity activator&amp;quot;,&lt;br /&gt;
    description = [[A proximity alarm for dormant mechanoids. If it detects a human-like threat nearby, it will awaken any nearby dormant mechanoids or structures.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    fillPercent = 0.25,&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      WorkToBuild = 300,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterActivator&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SendSignalOnPawnProximity&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        onlyHumanlike = true,&lt;br /&gt;
        radius = 12.9,&lt;br /&gt;
        enableAfterTicks = 1200,&lt;br /&gt;
        signalTag = &amp;quot;CompCanBeDormant.WakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MoteEmitterProximityScan&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_ProximityScannerRadius&amp;quot;,&lt;br /&gt;
        emissionInterval = 90,&lt;br /&gt;
        maintain = true,&lt;br /&gt;
        soundEmitting = &amp;quot;ActivatorProximity_Ambience&amp;quot;,&lt;br /&gt;
        saveKeysPrefix = &amp;quot;scan&amp;quot;,&lt;br /&gt;
        warmupPulseFadeInTime = 0.12,&lt;br /&gt;
        warmupPulseSolidTime = 0.15,&lt;br /&gt;
        warmupPulseFadeOutTime = 0.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_ActivatorProximityGlow&amp;quot;,&lt;br /&gt;
        maintain = true,&lt;br /&gt;
        saveKeysPrefix = &amp;quot;glow&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 2,&lt;br /&gt;
        glowColor = {115, 35, 20, 0},&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 7,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShieldGeneratorMortar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_ShieldGenerators.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShieldGeneratorMortar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mech high-shield&amp;quot;,&lt;br /&gt;
    description = [[A shielding device which projects a momentum repulsor field. Shots can go out, but not in.\n\nThis one is tuned to high angles, so it will block mortar rounds.\n\nThe unit can be temporarily disabled by EMP attacks, either by shocking the projector unit itself, or using EMP munitions on the shield.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      MarketValue = 1000,&lt;br /&gt;
      WorkToBuild = 300,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ProjectileInterceptor&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        radius = 25,&lt;br /&gt;
        interceptAirProjectiles = true,&lt;br /&gt;
        color = &amp;quot;(0.6, 0.6, 0.6)&amp;quot;,&lt;br /&gt;
        reactivateEffect = &amp;quot;MortarShieldGenerator_Reactivate&amp;quot;,&lt;br /&gt;
        activeSound = &amp;quot;MortarShield_Ambience&amp;quot;,&lt;br /&gt;
        disarmedByEmpForTicks = 1080,&lt;br /&gt;
        chargeIntervalTicks = 600000,&lt;br /&gt;
        chargeDurationTicks = 60000,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 7,&lt;br /&gt;
      BroadshieldCore = 1,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      Plasteel = 7,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShieldGeneratorBullets&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_ShieldGenerators.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShieldGeneratorBullets&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mech low-shield&amp;quot;,&lt;br /&gt;
    description = [[A shielding device which projects a momentum repulsor field. Shots can go out, but not in.\n\nThis one is tuned to low angles, so it will block ground-level projectiles like bullets.\n\nThe unit can be temporarily disabled by EMP attacks, either by shocking the projector unit itself, or using EMP munitions on the shield.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      MarketValue = 1000,&lt;br /&gt;
      WorkToBuild = 300,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ProjectileInterceptor&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        radius = 20,&lt;br /&gt;
        interceptGroundProjectiles = true,&lt;br /&gt;
        color = &amp;quot;(0.4, 0.4, 0.4)&amp;quot;,&lt;br /&gt;
        reactivateEffect = &amp;quot;BulletShieldGenerator_Reactivate&amp;quot;,&lt;br /&gt;
        activeSound = &amp;quot;BulletShield_Ambience&amp;quot;,&lt;br /&gt;
        disarmedByEmpForTicks = 1080,&lt;br /&gt;
        chargeIntervalTicks = 600000,&lt;br /&gt;
        chargeDurationTicks = 60000,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 7,&lt;br /&gt;
      BroadshieldCore = 1,&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      Plasteel = 7,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MechCapsule&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Spawners.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MechCapsule&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mech capsule&amp;quot;,&lt;br /&gt;
    description = [[A mechanoid storage and deployment capsule. It can contain a number of mechanoids, ready to emerge and fight upon being awakened.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    fillPercent = 1.0,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    size = {2, 3},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
      WorkToBuild = 500,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      combatPower = 400,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMember&amp;quot;,&lt;br /&gt;
        &amp;quot;MechClusterCombatThreat&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
      Plasteel = 20,&lt;br /&gt;
    },&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CanBeDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        awakeStateLabelKey = &amp;quot;OpenedDaysAgo&amp;quot;,&lt;br /&gt;
        dormantStateLabelKey = &amp;quot;DormantCompSealed&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_PawnSpawnOnWakeup&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        points = 410,&lt;br /&gt;
        spawnablePawnKinds = {&lt;br /&gt;
          &amp;quot;Mech_Scyther&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Lancer&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Centipede&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Pikeman&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        spawnSound = &amp;quot;CryptosleepCasket_Eject&amp;quot;,&lt;br /&gt;
        lordJob = &amp;quot;LordJob_MechanoidsDefend&amp;quot;,&lt;br /&gt;
        shouldJoinParentLord = true,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_EmptyStateGraphic&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        graphicData = {&lt;br /&gt;
          texPath = &amp;quot;Things/Building/Mech/MechCapsuleOpen&amp;quot;,&lt;br /&gt;
          graphicClass = &amp;quot;Graphic_Single&amp;quot;,&lt;br /&gt;
          drawSize = {2, 3},&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MechAssembler&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Spawners.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MechAssembler&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mech assembler&amp;quot;,&lt;br /&gt;
    description = [[An automated mechanoid factory. It periodically assembles and deploys new mechanoids.]],&lt;br /&gt;
    size = {3, 3},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 260,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      WorkToBuild = 500,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      combatPower = 250,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterCombatThreat&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
      Plasteel = 20,&lt;br /&gt;
    },&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CanBeDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SpawnerPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        spawnablePawnKinds = {&lt;br /&gt;
          &amp;quot;Mech_Scyther&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Lancer&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Centipede&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Pikeman&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        chooseSingleTypeToSpawn = true,&lt;br /&gt;
        spawnMessageKey = &amp;quot;MessageMechanoidsAssembled&amp;quot;,&lt;br /&gt;
        pawnsLeftToSpawnKey = &amp;quot;MessageMechanoidsLeftToAssemble&amp;quot;,&lt;br /&gt;
        noPawnsLeftToSpawnKey = &amp;quot;ShutDown&amp;quot;,&lt;br /&gt;
        nextSpawnInspectStringKey = &amp;quot;MechAssemblyCompleteIn&amp;quot;,&lt;br /&gt;
        nextSpawnInspectStringKeyDormant = &amp;quot;MechAssemblyNextType&amp;quot;,&lt;br /&gt;
        maxPawnsToSpawn = 4,&lt;br /&gt;
        spawnSound = &amp;quot;MechAssembler_Spawn&amp;quot;,&lt;br /&gt;
        showNextSpawnInInspect = true,&lt;br /&gt;
        lordJob = &amp;quot;LordJob_MechanoidsDefend&amp;quot;,&lt;br /&gt;
        pawnSpawnIntervalDays = 1,&lt;br /&gt;
        shouldJoinParentLord = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MechDropBeacon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MechBuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Spawners.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MechDropBeacon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mech drop beacon&amp;quot;,&lt;br /&gt;
    description = [[A mechanoid reinforcement drop beacon. When activated, it calls in a group of mechs to land in drop pods nearby.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    fillPercent = 0.25,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      combatPower = 400,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterCombatThreat&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CanBeDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        awakeStateLabelKey = &amp;quot;DormantCompExpired&amp;quot;,&lt;br /&gt;
        dormantStateLabelKey = &amp;quot;DormantCompBeacon&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_PawnSpawnOnWakeup&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        points = { [&amp;quot;&amp;lt;&amp;quot;]=350, [&amp;quot;&amp;gt;&amp;quot;]=450 },&lt;br /&gt;
        dropInPods = true,&lt;br /&gt;
        pawnSpawnRadius = { [&amp;quot;&amp;lt;&amp;quot;]=10, [&amp;quot;&amp;gt;&amp;quot;]=30 },&lt;br /&gt;
        spawnEffecter = &amp;quot;MechDropBeaconActivated&amp;quot;,&lt;br /&gt;
        activatedMessageKey = &amp;quot;MessageMechanoidsReinforcementsDrop&amp;quot;,&lt;br /&gt;
        spawnablePawnKinds = {&lt;br /&gt;
          &amp;quot;Mech_Scyther&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Lancer&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Centipede&amp;quot;,&lt;br /&gt;
          &amp;quot;Mech_Pikeman&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        lordJob = &amp;quot;LordJob_MechanoidsDefend&amp;quot;,&lt;br /&gt;
        shouldJoinParentLord = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 7,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turret_AutoMiniTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turret_AutoMiniTurret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mini-slugger turret&amp;quot;,&lt;br /&gt;
    description = [[A self-powered defense turret mounted with a weak but long-ranged slug-thrower. May explode when damaged.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_TurretGun&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Mass = 10,&lt;br /&gt;
      ShootingAccuracyTurret = 0.96,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 3.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        chanceNeverExplodeFromDamage = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CanBeDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 1,&lt;br /&gt;
    },&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Light&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      combatPower = 45,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMember&amp;quot;,&lt;br /&gt;
        &amp;quot;MechClusterCombatThreat&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      turretGunDef = &amp;quot;Gun_MiniTurretMech&amp;quot;,&lt;br /&gt;
      turretBurstCooldownTime = 2.5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_MiniTurretMech&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeaponTurret&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_MiniTurretMech&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mini-slugger&amp;quot;,&lt;br /&gt;
    description = [[An automatic turret-mounted slug-thrower.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      AccuracyTouch = 0.80,&lt;br /&gt;
      AccuracyShort = 0.55,&lt;br /&gt;
      AccuracyMedium = 0.35,&lt;br /&gt;
      AccuracyLong = 0.1,&lt;br /&gt;
      RangedWeapon_Cooldown = 5.1,&lt;br /&gt;
      DeteriorationRate = 0,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_MiniSlug&amp;quot;,&lt;br /&gt;
        range = 45.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Bullet_MiniSlug&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseBullet&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Bullet_MiniSlug&amp;quot;,&lt;br /&gt;
    label = &amp;quot;mini-slug&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      damageDef = &amp;quot;Bullet&amp;quot;,&lt;br /&gt;
      damageAmountBase = 12,&lt;br /&gt;
      speed = 70,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turret_AutoChargeBlaster&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turret_AutoChargeBlaster&amp;quot;,&lt;br /&gt;
    label = &amp;quot;auto charge turret&amp;quot;,&lt;br /&gt;
    description = [[A self-powered turret mounted with a charge blaster. It cannot sense targets at very short ranges.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_TurretGun&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Mass = 100,&lt;br /&gt;
      ShootingAccuracyTurret = 0.96,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 5.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        chanceNeverExplodeFromDamage = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CanBeDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 1,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      combatPower = 150,&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMember&amp;quot;,&lt;br /&gt;
        &amp;quot;MechClusterCombatThreat&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      turretGunDef = &amp;quot;Gun_ChargeBlasterHeavyTurret&amp;quot;,&lt;br /&gt;
      turretBurstCooldownTime = 5.5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_ChargeBlasterHeavyTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Gun_ChargeBlasterHeavyBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_ChargeBlasterHeavyTurret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;light charge blaster&amp;quot;,&lt;br /&gt;
    description = [[A pulse-charged rapid-fire blaster for area fire.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      AccuracyLong = 0.08,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_ChargeBlasterHeavy&amp;quot;,&lt;br /&gt;
        warmupTime = 1.25,&lt;br /&gt;
        minRange = 3.9,&lt;br /&gt;
        range = 45.9,&lt;br /&gt;
        ticksBetweenBurstShots = 7,&lt;br /&gt;
        burstShotCount = 9,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turret_AutoInferno&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turret_AutoInferno&amp;quot;,&lt;br /&gt;
    label = &amp;quot;auto inferno turret&amp;quot;,&lt;br /&gt;
    description = [[A self-powered turret mounted with an inferno cannon. It cannot sense targets at very short ranges.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_TurretGun&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Mass = 100,&lt;br /&gt;
      ShootingAccuracyTurret = 0.96,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 5.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
        chanceNeverExplodeFromDamage = 0.5,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_CanBeDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.5,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 1,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMember&amp;quot;,&lt;br /&gt;
        &amp;quot;MechClusterCombatThreat&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      combatPower = 190,&lt;br /&gt;
      turretGunDef = &amp;quot;Gun_InfernoCannonTurret&amp;quot;,&lt;br /&gt;
      turretBurstCooldownTime = 17.0,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Gun_InfernoCannonTurret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;Gun_InfernoCannonBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Gun_InfernoCannonTurret&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      AccuracyLong = 0.66,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_InfernoCannon&amp;quot;,&lt;br /&gt;
        forcedMissRadius = 4.6,&lt;br /&gt;
        warmupTime = 1.25,&lt;br /&gt;
        minRange = 3.9,&lt;br /&gt;
        range = 45.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Turret_AutoMortar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Turret_AutoMortar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;auto mortar&amp;quot;,&lt;br /&gt;
    description = [[A self-powered, self-loading, automatic mortar. It can hit targets at any distance, over walls, but is quite inaccurate.]],&lt;br /&gt;
    thingClass = &amp;quot;Building_TurretGun&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    fillPercent = 0.4,&lt;br /&gt;
    killedLeavings = {&lt;br /&gt;
      ChunkSlagSteel = 1,&lt;br /&gt;
      Steel = 60,&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
    },&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Forbiddable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Explosive&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wickTicks = 240,&lt;br /&gt;
        explosiveRadius = 4.9,&lt;br /&gt;
        explosiveDamageType = &amp;quot;Bomb&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Initiatable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_WakeUpDormant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        wakeUpSound = &amp;quot;MechanoidsWakeUp&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 260,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      Mass = 30,&lt;br /&gt;
      ShootingAccuracyTurret = 0.9,&lt;br /&gt;
      Beauty = -20,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      buildingTags = {&lt;br /&gt;
        &amp;quot;MechClusterMember&amp;quot;,&lt;br /&gt;
        &amp;quot;MechClusterProblemCauser&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      combatPower = 220,&lt;br /&gt;
      turretGunDef = &amp;quot;Artillery_AutoMortar&amp;quot;,&lt;br /&gt;
      turretBurstWarmupTime = 4.0,&lt;br /&gt;
      turretBurstCooldownTime = 80.0,&lt;br /&gt;
      turretInitialCooldownTime = 120,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Artillery_AutoMortar&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseArtilleryWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Mech_Turrets.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Artillery_AutoMortar&amp;quot;,&lt;br /&gt;
    label = &amp;quot;auto-mortar&amp;quot;,&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;Artillery_BaseDestroyer&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Shoot&amp;quot;,&lt;br /&gt;
        defaultProjectile = &amp;quot;Bullet_Shell_HighExplosive&amp;quot;,&lt;br /&gt;
        forcedMissRadius = 13,&lt;br /&gt;
        warmupTime = 4,&lt;br /&gt;
        minRange = 29.9,&lt;br /&gt;
        range = 500,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        requireLineOfSight = false,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShipLandingBeacon&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShipLandingBeacon&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ship landing beacon&amp;quot;,&lt;br /&gt;
    description = [[Marks the corner of a landing area. Four of these placed at the corners of a clear area (minimum 9x9) create a landing pad. Spacecraft usually land on pads if possible.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 75,&lt;br /&gt;
      WorkToBuild = 800,&lt;br /&gt;
      Flammability = 0.5,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.15,&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 40,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Power&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompPowerTrader&amp;quot;,&lt;br /&gt;
        basePowerConsumption = 50,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 2,&lt;br /&gt;
        glowColor = &amp;quot;(164, 255, 138, 0)&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ShipLandingBeacon&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        edgeLengthRange = { [&amp;quot;&amp;lt;&amp;quot;]=9, [&amp;quot;&amp;gt;&amp;quot;]=25 },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Flickable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Breakdownable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    leaveResourcesWhenKilled = false,&lt;br /&gt;
    pathCost = 14,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Electricity&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeditationSpot&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeditationSpot&amp;quot;,&lt;br /&gt;
    label = &amp;quot;meditation spot&amp;quot;,&lt;br /&gt;
    description = [[Designates a spot for meditation. Psycasters can meditate here to gain psyfocus. If a focus object like a sculpture is nearby, the psycaster will be able to focus on it to boost their psyfocus gain. However, different people are able to use different focus objects.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;FloorEmplacement&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToBuild = 0,&lt;br /&gt;
    },&lt;br /&gt;
    useHitPoints = false,&lt;br /&gt;
    passability = &amp;quot;Standable&amp;quot;,&lt;br /&gt;
    building = {&lt;br /&gt;
      sowTag = &amp;quot;SupportPlantsOnly&amp;quot;,&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_UsesMeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_AssignableToPawn&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        drawUnownedAssignmentOverlay = false,&lt;br /&gt;
        compClass = &amp;quot;CompAssignableToPawn_MeditationSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:NatureShrineBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;NatureShrineBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 1.0,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
      &amp;quot;Stony&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:NatureShrine_Small&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;NatureShrineBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;NatureShrine_Small&amp;quot;,&lt;br /&gt;
    label = &amp;quot;small nature shrine&amp;quot;,&lt;br /&gt;
    description = [[A small shrine for honoring spiritual beings. Tribal psycasters can focus on this shrine while meditating to increase psyfocus gain. Nature shrines lose their power if they are close to artificial structures, so they are always built in nature. Since they look like natural objects to unobservant outsiders, raiders will generally ignore them.]],&lt;br /&gt;
    size = {2, 2},&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Medium&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Natural&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_ArtificialBuildings&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 34.9,&lt;br /&gt;
            curve = {&lt;br /&gt;
              points = {&lt;br /&gt;
                {0, 0.0},&lt;br /&gt;
                {5, -0.06},&lt;br /&gt;
                {10, -0.12},&lt;br /&gt;
                {50, -0.22},&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_BuildingDefs&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              AnimusStone = 0.02,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 4,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerAnimusStone&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerAnimusStoneAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      WorkToBuild = 15000,&lt;br /&gt;
      Beauty = 10,&lt;br /&gt;
      MeditationFocusStrength = 0.22,&lt;br /&gt;
      Mass = 25,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 150,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:NatureShrine_Large&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;NatureShrineBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;NatureShrine_Large&amp;quot;,&lt;br /&gt;
    label = &amp;quot;large nature shrine&amp;quot;,&lt;br /&gt;
    description = [[A large shrine for honoring spiritual beings. Tribal psycasters can focus on this shrine while meditating to increase psyfocus gain. Nature shrines lose their power if they are close to artificial structures, so they are always built in nature. Since they look like natural objects to unobservant outsiders, raiders will generally ignore them.]],&lt;br /&gt;
    size = {3, 3},&lt;br /&gt;
    terrainAffordanceNeeded = &amp;quot;Heavy&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Natural&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_ArtificialBuildings&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 34.9,&lt;br /&gt;
            curve = {&lt;br /&gt;
              points = {&lt;br /&gt;
                {0, 0.0},&lt;br /&gt;
                {5, -0.06},&lt;br /&gt;
                {10, -0.13},&lt;br /&gt;
                {50, -0.30},&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_BuildingDefs&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              AnimusStone = 0.02,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 4,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerAnimusStone&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerAnimusStoneAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 300,&lt;br /&gt;
      WorkToBuild = 30000,&lt;br /&gt;
      MeditationFocusStrength = 0.30,&lt;br /&gt;
      Beauty = 20,&lt;br /&gt;
      Mass = 50,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 300,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:AnimusStone&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_Misc.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;AnimusStone&amp;quot;,&lt;br /&gt;
    label = &amp;quot;animus stone&amp;quot;,&lt;br /&gt;
    description = [[An ancient jade stone marked with sacred tribal carvings. Tribal psycasters can focus on these stones during meditation to increase their psyfocus gain more than a typical nature shrine.\n\nDifferent tribal cultures tell different stories about these stones, but most agree that they were crafted by an ancient world spirit during a time of great power. Since they look like natural objects to unobservant outsiders, raiders will generally ignore them.]],&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    fillPercent = 0.35,&lt;br /&gt;
    tradeability = &amp;quot;Buyable&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 5000,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
      MeditationFocusStrength = 0.34,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      artificialForMeditationPurposes = false,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Natural&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_ArtificialBuildings&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 34.9,&lt;br /&gt;
            curve = {&lt;br /&gt;
              points = {&lt;br /&gt;
                {0, 0.0},&lt;br /&gt;
                {5, -0.08},&lt;br /&gt;
                {10, -0.16},&lt;br /&gt;
                {50, -0.34},&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_BuildingDefs&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              AnimusStone = 0.02,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 4,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerAnimusStone&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerAnimusStoneAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedMusicalInstrument&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedMusicalInstrument&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished musical instrument&amp;quot;,&lt;br /&gt;
    description = [[An unfinished musical instrument.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MusicalInstrumentBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;MusicalInstrumentBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BuildingBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    passability = &amp;quot;PassThroughOnly&amp;quot;,&lt;br /&gt;
    pathCost = 50,&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;Building_MusicalInstrument&amp;quot;,&lt;br /&gt;
    hasInteractionCell = true,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsJoy&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;MusicalInstrument&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Sculpt&amp;quot;,&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedMusicalInstrument&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    building = {&lt;br /&gt;
      joyKind = &amp;quot;HighCulture&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompGatherSpot&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ThrownMoteEmitter&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        mote = &amp;quot;Mote_Music&amp;quot;,&lt;br /&gt;
        offsetMin = {-0.6, 0, 0.3},&lt;br /&gt;
        offsetMax = {0.6, 0, 0.5},&lt;br /&gt;
        emissionInterval = 100,&lt;br /&gt;
        scale = { [&amp;quot;&amp;lt;&amp;quot;]=0.6, [&amp;quot;&amp;gt;&amp;quot;]=0.9 },&lt;br /&gt;
        rotationRate = { [&amp;quot;&amp;lt;&amp;quot;]=-15, [&amp;quot;&amp;gt;&amp;quot;]=15 },&lt;br /&gt;
        velocityX = { [&amp;quot;&amp;lt;&amp;quot;]=0.3, [&amp;quot;&amp;gt;&amp;quot;]=0.7 },&lt;br /&gt;
        velocityY = { [&amp;quot;&amp;lt;&amp;quot;]=0.7, [&amp;quot;&amp;gt;&amp;quot;]=1.0 },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Harp&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MusicalInstrumentBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Harp&amp;quot;,&lt;br /&gt;
    label = &amp;quot;harp&amp;quot;,&lt;br /&gt;
    description = [[A simple stationary musical instrument. A row of strings are stretched over a frame and plucked directly by a musician's fingers.\n\nIt can be crafted at a crafting spot or smithy.]],&lt;br /&gt;
    size = {1, 1},&lt;br /&gt;
    pathCost = 30,&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Harp&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 70,&lt;br /&gt;
      WorkToMake = 18000,&lt;br /&gt;
      Mass = 4,&lt;br /&gt;
      JoyGainFactor = 1,&lt;br /&gt;
      Beauty = 10,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 3,&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;Harp&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;CraftingSpot&amp;quot;,&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 150,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Harpsichord&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MusicalInstrumentBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Harpsichord&amp;quot;,&lt;br /&gt;
    label = &amp;quot;harpsichord&amp;quot;,&lt;br /&gt;
    description = [[A complex stationary musical instrument crafted at a smithy. A musician touches a row of keys on the front of the instrument. Each key is attached to an internal mechanism which plucks one of a row of strings stretched over a wooden frame. While it permits more complex composition than the harp, its wooden construction and plucking mechanism limit its output volume and expressiveness.]],&lt;br /&gt;
    size = {2, 3},&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Harpsichord&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 150,&lt;br /&gt;
      WorkToMake = 32000,&lt;br /&gt;
      Mass = 30,&lt;br /&gt;
      JoyGainFactor = 1,&lt;br /&gt;
      Beauty = 14,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;Harpsichord&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 250,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:UnfinishedPiano&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;UnfinishedBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;UnfinishedPiano&amp;quot;,&lt;br /&gt;
    label = &amp;quot;unfinished piano&amp;quot;,&lt;br /&gt;
    description = [[An unfinished piano.]],&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Piano&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MusicalInstrumentBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Buildings_MusicalInstruments.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Piano&amp;quot;,&lt;br /&gt;
    label = &amp;quot;piano&amp;quot;,&lt;br /&gt;
    description = [[An advanced stationary musical instrument. It is played by pressing a row of keys, which causes hammers to strike internal strings stretched over a steel frame. The hammer mechanism and high-tension strings allow the musician to play both very soft and very loud, making the piano a very expressive instrument.\n\nIt can be crafted at a smithy.]],&lt;br /&gt;
    size = {3, 3},&lt;br /&gt;
    researchPrerequisites = {&lt;br /&gt;
      &amp;quot;Piano&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      WorkToMake = 50000,&lt;br /&gt;
      Mass = 60,&lt;br /&gt;
      JoyGainFactor = 1,&lt;br /&gt;
      Beauty = 18,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 6,&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;Piano&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedPiano&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      WoodLog = 220,&lt;br /&gt;
      Steel = 120,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BroadshieldCore&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ResourceBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Items_Exotic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BroadshieldCore&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shield core&amp;quot;,&lt;br /&gt;
    description = [[A piece of ultratechnology that can generate a momentum-repulsor shield. This can't do anything on its own, but it is necessary to craft some other usable shield items.\n\nShield cores can be obtained by deconstructing mechanoid shield generators.]],&lt;br /&gt;
    stackLimit = 1,&lt;br /&gt;
    useHitPoints = true,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 350,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      Flammability = 0.2,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Items&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PackJump&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Packs.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PackJump&amp;quot;,&lt;br /&gt;
    label = &amp;quot;jump pack&amp;quot;,&lt;br /&gt;
    description = [[A single-person burst rocket for short-ranged flight. With its integrated harness and guidance assistant, the jump pack allows anyone to leap long distances at high speed, even over obstacles. It must be recharged after several uses.\n\nSome spacer tech militaries have melee combat specialists who use jump packs to bypass obstacles and rapidly close with the enemy.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 5,&lt;br /&gt;
        ammoDef = &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
        ammoCountPerCharge = 20,&lt;br /&gt;
        baseReloadTicks = 60,&lt;br /&gt;
        soundReload = &amp;quot;Standard_Reload&amp;quot;,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;jump&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Jump&amp;quot;,&lt;br /&gt;
        label = &amp;quot;jump&amp;quot;,&lt;br /&gt;
        violent = false,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        warmupTime = 0.5,&lt;br /&gt;
        requireLineOfSight = true,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
          canTargetPawns = false,&lt;br /&gt;
          canTargetBuildings = false,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedPack&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;JumpPack&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      useIngredientsForColor = false,&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Machining&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 30,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
      Chemfuel = 100,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 14000,&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
      JumpRange = 23.9,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelUtility&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Waist&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Belt&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;PackJump&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PackBroadshield&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelNoQualityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Packs.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingClass = &amp;quot;BroadshieldPack&amp;quot;,&lt;br /&gt;
    defName = &amp;quot;Apparel_PackBroadshield&amp;quot;,&lt;br /&gt;
    label = &amp;quot;low-shield pack&amp;quot;,&lt;br /&gt;
    description = [[A single-use man-portable low-shield projector. Deployed on the ground, it generates a circular shield that allows bullets out but not in. The unit is designed to last only a short time before burning out.\n\nMany ultratech combat squads owe their lives to a shield pack deployed at just the right time.]],&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 1,&lt;br /&gt;
        destroyOnEmpty = true,&lt;br /&gt;
        soundReload = &amp;quot;Standard_Reload&amp;quot;,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;shield&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_DeployBroadshield&amp;quot;,&lt;br /&gt;
        label = &amp;quot;deploy low-shield&amp;quot;,&lt;br /&gt;
        violent = false,&lt;br /&gt;
        targetable = false,&lt;br /&gt;
        nonInterruptingSelfCast = true,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedPack&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;ShieldBelt&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;TableMachining&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Machining&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 4,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      BroadshieldCore = 1,&lt;br /&gt;
      ComponentIndustrial = 1,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 14000,&lt;br /&gt;
      Mass = 3,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelUtility&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Waist&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Belt&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;BeltDefensePop&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;ExoticMisc&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PsychicApparelBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;PsychicApparelBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Psychic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;PsychicApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Psychic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PsyfocusHelmet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PsychicApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Psychic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PsyfocusHelmet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;eltex helmet&amp;quot;,&lt;br /&gt;
    description = [[A lightweight helmet designed for psychic focusing. While it provides little physical protection, its special materials enhance the wearer's psychic sensitivity and dissipate neural heat.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Headgear&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 500,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      Mass = 0.8,&lt;br /&gt;
      ArmorRating_Sharp = 0.09,&lt;br /&gt;
      ArmorRating_Blunt = 0.09,&lt;br /&gt;
      ArmorRating_Heat = 0.27,&lt;br /&gt;
      Insulation_Cold = 4,&lt;br /&gt;
      Insulation_Heat = 1,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_EltexSkullcap&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PsychicApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Psychic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_EltexSkullcap&amp;quot;,&lt;br /&gt;
    label = &amp;quot;eltex skullcap&amp;quot;,&lt;br /&gt;
    description = [[A tight skullcap designed for psychic focusing. It provides no physical protection, but its special materials enhance the wearer's psychic sensitivity and dissipate neural heat.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Headgear&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 500,&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      Mass = 0.8,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PsyfocusShirt&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PsychicApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Psychic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PsyfocusShirt&amp;quot;,&lt;br /&gt;
    label = &amp;quot;eltex shirt&amp;quot;,&lt;br /&gt;
    description = [[A shirt embedded with special psychic focusing materials. These enhance psychic sensitivity and help dissipate neural heat.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 400,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 0.25,&lt;br /&gt;
      ArmorRating_Sharp = 0.07,&lt;br /&gt;
      ArmorRating_Blunt = 0,&lt;br /&gt;
      ArmorRating_Heat = 0.04,&lt;br /&gt;
      Insulation_Cold = 5,&lt;br /&gt;
      Insulation_Heat = 1,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;OnSkin&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PsyfocusVest&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PsychicApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Psychic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PsyfocusVest&amp;quot;,&lt;br /&gt;
    label = &amp;quot;eltex vest&amp;quot;,&lt;br /&gt;
    description = [[A thin vest embedded with special psychic focusing materials. These enhance psychic sensitivity and help dissipate neural heat.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 500,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
      ArmorRating_Sharp = 0.07,&lt;br /&gt;
      ArmorRating_Blunt = 0,&lt;br /&gt;
      ArmorRating_Heat = 0.04,&lt;br /&gt;
      Insulation_Cold = 6,&lt;br /&gt;
      Insulation_Heat = 1,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Middle&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_PsyfocusRobe&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PsychicApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Psychic.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_PsyfocusRobe&amp;quot;,&lt;br /&gt;
    description = [[A long robe embedded with special psychic focusing materials. These enhance psychic sensitivity and help dissipate neural heat.]],&lt;br /&gt;
    label = &amp;quot;eltex robe&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;Apparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 600,&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      Mass = 0.5,&lt;br /&gt;
      ArmorRating_Sharp = 0.07,&lt;br /&gt;
      ArmorRating_Blunt = 0,&lt;br /&gt;
      ArmorRating_Heat = 0.04,&lt;br /&gt;
      Insulation_Cold = 15,&lt;br /&gt;
      Insulation_Heat = 1,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelShirtRoyalTier2Base&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelShirtRoyalTier2Base&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;NobleApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 65,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToMake = 6000,&lt;br /&gt;
      Mass = 0.25,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.22,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.10,&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;OnSkin&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier2&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ShirtRuffle&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelShirtRoyalTier2Base&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ShirtRuffle&amp;quot;,&lt;br /&gt;
    label = &amp;quot;formal shirt&amp;quot;,&lt;br /&gt;
    description = [[A decorated formal shirt with buttons.]],&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelVestRoyalTier5Base&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelVestRoyalTier5Base&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;NobleApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToMake = 12000,&lt;br /&gt;
      Mass = 0.75,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.4,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.10,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 45,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Middle&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier5&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Corset&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelVestRoyalTier5Base&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Corset&amp;quot;,&lt;br /&gt;
    label = &amp;quot;corset&amp;quot;,&lt;br /&gt;
    description = [[An embroidered corset with strong wire support to maintain a ladylike shape.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      EquipDelay = 5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_VestRoyal&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelVestRoyalTier5Base&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_VestRoyal&amp;quot;,&lt;br /&gt;
    label = &amp;quot;formal vest&amp;quot;,&lt;br /&gt;
    description = [[A vest embroidered with complex decorative designs.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      EquipDelay = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_RobeRoyal&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_RobeRoyal&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prestige robe&amp;quot;,&lt;br /&gt;
    description = [[A long, flowing robe embroidered with complex decorative designs.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;RoyalApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 100,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 100,&lt;br /&gt;
      WorkToMake = 20000,&lt;br /&gt;
      Mass = 0.75,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.2,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.80,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.25,&lt;br /&gt;
      EquipDelay = 2,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier6&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalRobe&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelHatRoyalTier2&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelHatRoyalTier2&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;NobleHatMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToMake = 6000,&lt;br /&gt;
      Mass = 0.1,&lt;br /&gt;
      EquipDelay = 0.8,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.10,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.25,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier2&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;NobleApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelHatRoyalTier2Fabric&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelHatRoyalTier2Fabric&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ApparelHatRoyalTier2&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_HatLadies&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelHatRoyalTier2Fabric&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_HatLadies&amp;quot;,&lt;br /&gt;
    label = &amp;quot;ladies hat&amp;quot;,&lt;br /&gt;
    description = [[A decorative traditional hat with complex embroidery.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_HatTop&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelHatRoyalTier2Fabric&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_HatTop&amp;quot;,&lt;br /&gt;
    label = &amp;quot;top hat&amp;quot;,&lt;br /&gt;
    description = [[A tall, stiff, shiny hat.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_HatHood&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelHatRoyalTier2Fabric&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      _ = {&lt;br /&gt;
        IsNull = true,&lt;br /&gt;
        Inherit = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_HatHood&amp;quot;,&lt;br /&gt;
    label = &amp;quot;hood&amp;quot;,&lt;br /&gt;
    description = [[A draped hood which covers the head and ears.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 1200,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;BestowerHood&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Coronet&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Coronet&amp;quot;,&lt;br /&gt;
    label = &amp;quot;coronet&amp;quot;,&lt;br /&gt;
    description = [[A small crown-like piece of headwear made of metal.]],&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;HeadgearNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultIngredientFilter = {&lt;br /&gt;
        categories = {&lt;br /&gt;
          &amp;quot;Root&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        disallowedThingDefs = {&lt;br /&gt;
          &amp;quot;Jade&amp;quot;,&lt;br /&gt;
          &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;RoyalApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToMake = 8000,&lt;br /&gt;
      Mass = 0.7,&lt;br /&gt;
      EquipDelay = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier5&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Crown&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Crown&amp;quot;,&lt;br /&gt;
    label = &amp;quot;crown&amp;quot;,&lt;br /&gt;
    description = [[A crown of metal with an elaborate design.]],&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;HeadgearNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      workSpeedStat = &amp;quot;GeneralLaborSpeed&amp;quot;,&lt;br /&gt;
      workSkill = &amp;quot;Crafting&amp;quot;,&lt;br /&gt;
      effectWorking = &amp;quot;Smith&amp;quot;,&lt;br /&gt;
      soundWorking = &amp;quot;Recipe_Smith&amp;quot;,&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        &amp;quot;ElectricSmithy&amp;quot;,&lt;br /&gt;
        &amp;quot;FueledSmithy&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultIngredientFilter = {&lt;br /&gt;
        categories = {&lt;br /&gt;
          &amp;quot;Root&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        disallowedThingDefs = {&lt;br /&gt;
          &amp;quot;Jade&amp;quot;,&lt;br /&gt;
          &amp;quot;Uranium&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      researchPrerequisite = &amp;quot;RoyalApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 75,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToMake = 12000,&lt;br /&gt;
      Mass = 0.9,&lt;br /&gt;
      EquipDelay = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier6&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_CrownStellic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_CrownStellic&amp;quot;,&lt;br /&gt;
    label = &amp;quot;stellic crown&amp;quot;,&lt;br /&gt;
    description = [[A grand crown of metal with an elaborate, overbearing design.]],&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;HeadgearNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 85,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      Mass = 0.9,&lt;br /&gt;
      EquipDelay = 0.8,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier7&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Cape&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Cape&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cape&amp;quot;,&lt;br /&gt;
    description = [[A long cape of elegant design. It hangs over one side of the torso.]],&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;NobleApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 80,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 200,&lt;br /&gt;
      WorkToMake = 16000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      StuffEffectMultiplierArmor = 0.3,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.60,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.85,&lt;br /&gt;
      EquipDelay = 3,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Cape&amp;quot;,&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier2&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier5&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Beret&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelMakeableBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Royal.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Beret&amp;quot;,&lt;br /&gt;
    label = &amp;quot;beret&amp;quot;,&lt;br /&gt;
    description = [[A soft, round, flat-crowned hat.]],&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;HeadgearNoble&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 35,&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Fabric&amp;quot;,&lt;br /&gt;
      &amp;quot;Leathery&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 80,&lt;br /&gt;
      WorkToMake = 4000,&lt;br /&gt;
      Mass = 0.1,&lt;br /&gt;
      EquipDelay = 0.8,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Cold = 0.07,&lt;br /&gt;
      StuffEffectMultiplierInsulation_Heat = 0.15,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;Royal&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier2&amp;quot;,&lt;br /&gt;
        &amp;quot;RoyalTier3&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;NobleApparel&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorReconPrestige&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorReconBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorReconPrestige&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prestige recon armor&amp;quot;,&lt;br /&gt;
    description = [[A suit of light partially-powered armor, designed to permit quick movement. Plasteel-weave plates block attacks without compromising mobility, and neuro-memetic assistors in the lower body allow a human to wear the armor and still move easily.\n\nExpensive and beautiful, prestige armor like this is usually made for those of high status. Embedded eltex threads also enhance the wearer's psychic sensitivity.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 90000,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Gold = 9,&lt;br /&gt;
      Plasteel = 100,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;PrestigeCombatGear&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorHelmetReconPrestige&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorHelmetReconBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorHelmetReconPrestige&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prestige recon helmet&amp;quot;,&lt;br /&gt;
    description = [[A high-tech armored helmet with a built-in status computer and a protective plasteel-weave plate.\n\nExpensive and beautiful, prestige armor like this is usually made for those of high status. Embedded eltex threads also enhance the wearer's psychic sensitivity.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 31500,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Gold = 4,&lt;br /&gt;
      Plasteel = 40,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;PrestigeCombatGear&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorMarinePrestige&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorPowerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorMarinePrestige&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prestige marine armor&amp;quot;,&lt;br /&gt;
    description = [[A suit of powered armor. Layered plasteel-weave plates are very effective at stopping attacks, with few vulnerable joint sections. Neuro-memetic assistors allow a human to wear the armor and still move easily.\n\nExpensive and beautiful, prestige armor like this is usually made for those of high status. Embedded eltex threads also enhance the wearer's psychic sensitivity.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 120000,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Gold = 10,&lt;br /&gt;
      Plasteel = 120,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;PrestigeCombatGear&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorMarineHelmetPrestige&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorHelmetPowerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorMarineHelmetPrestige&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prestige marine helmet&amp;quot;,&lt;br /&gt;
    description = [[A marine armor helmet, with a built-in status computer and layered plasteel-weave plates.\n\nExpensive and beautiful, prestige armor like this is usually made for those of high status. Embedded eltex threads also enhance the wearer's psychic sensitivity.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 42000,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Gold = 5,&lt;br /&gt;
      Plasteel = 50,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;PrestigeCombatGear&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelArmorCataphractBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelArmorCataphractBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ArmorMachineableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;CataphractArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 8,&lt;br /&gt;
      },&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 75000,&lt;br /&gt;
      MaxHitPoints = 400,&lt;br /&gt;
      Mass = 15,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      ArmorRating_Sharp = 1.2,&lt;br /&gt;
      ArmorRating_Blunt = 0.5,&lt;br /&gt;
      ArmorRating_Heat = 0.6,&lt;br /&gt;
      Insulation_Cold = 36,&lt;br /&gt;
      Insulation_Heat = 12,&lt;br /&gt;
      EquipDelay = 17,&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;HiTechArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;ApparelArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentSpacer = 6,&lt;br /&gt;
      Plasteel = 150,&lt;br /&gt;
      Uranium = 50,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;Torso&amp;quot;,&lt;br /&gt;
        &amp;quot;Neck&amp;quot;,&lt;br /&gt;
        &amp;quot;Shoulders&amp;quot;,&lt;br /&gt;
        &amp;quot;Arms&amp;quot;,&lt;br /&gt;
        &amp;quot;Legs&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Middle&amp;quot;,&lt;br /&gt;
        &amp;quot;Shell&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableApparel&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ApparelArmorHelmetCataphractBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ApparelArmorHelmetCataphractBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;ArmorHelmetMakeableBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      unfinishedThingDef = &amp;quot;UnfinishedTechArmor&amp;quot;,&lt;br /&gt;
      researchPrerequisite = &amp;quot;CataphractArmor&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 8,&lt;br /&gt;
      },&lt;br /&gt;
      recipeUsers = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;FabricationBench&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;HiTechArmor&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 26250,&lt;br /&gt;
      MaxHitPoints = 180,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
      Flammability = 0.4,&lt;br /&gt;
      ArmorRating_Sharp = 1.2,&lt;br /&gt;
      ArmorRating_Blunt = 0.5,&lt;br /&gt;
      ArmorRating_Heat = 0.6,&lt;br /&gt;
      Insulation_Cold = 4,&lt;br /&gt;
      Insulation_Heat = 2,&lt;br /&gt;
      EquipDelay = 6,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentSpacer = 1,&lt;br /&gt;
      Plasteel = 50,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        &amp;quot;FullHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      layers = {&lt;br /&gt;
        &amp;quot;Overhead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      defaultOutfitTags = {&lt;br /&gt;
        &amp;quot;Soldier&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableApparel&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorCataphract&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorCataphractBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorCataphract&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cataphract armor&amp;quot;,&lt;br /&gt;
    description = [[A suit of heavy powered armor, built for maximum protection at the cost of mobility. Heavy layered plasteel-weave plates with solid ablative coatings stop all but the most well-aimed or powerful attacks. Neuro-memetic assistors prevent the suit's massive weight from immobilizing the wearer entirely, but the suit is still quite cumbersome.\n\nArmor like this is used by imperial cataphracts to break heavily fortified positions in frontal assaults when no other option is available.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorHelmetCataphract&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorHelmetCataphractBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorHelmetCataphract&amp;quot;,&lt;br /&gt;
    label = &amp;quot;cataphract helmet&amp;quot;,&lt;br /&gt;
    description = [[A heavily-armored high-tech helmet, with a solid plasteel-weave shell and indirect visual system for non-frontal view angles. It protects against all but the most powerful or luckily-aimed shots.\n\nArmor like this is used by imperial cataphracts to break heavily fortified positions in frontal assaults when no other option is available.]],&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorCataphractPrestige&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorCataphractBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorCataphractPrestige&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prestige cataphract armor&amp;quot;,&lt;br /&gt;
    description = [[A suit of heavy powered armor, built for maximum protection at the cost of mobility. Heavy layered plasteel-weave plates with solid ablative coatings stop all but the most well-aimed or powerful attacks. Neuro-memetic assistors prevent the suit's massive weight from immobilizing the wearer entirely, but the suit is still quite cumbersome.\n\nExpensive and beautiful, prestige armor like this is usually made for those of high status. Embedded eltex threads also enhance the wearer's psychic sensitivity.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 150000,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Gold = 18,&lt;br /&gt;
      Plasteel = 190,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;PrestigeCombatGear&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorHelmetCataphractPrestige&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorHelmetCataphractBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorHelmetCataphractPrestige&amp;quot;,&lt;br /&gt;
    label = &amp;quot;prestige cataphract helmet&amp;quot;,&lt;br /&gt;
    description = [[A heavily-armored high-tech helmet, with a solid plasteel-weave shell and indirect visual system for non-frontal view angles. It protects against all but the most powerful or luckily-aimed shots.\n\nExpensive and beautiful, prestige armor like this is usually made for those of high status. Embedded eltex threads also enhance the wearer's psychic sensitivity.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 52500,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Gold = 9,&lt;br /&gt;
      Plasteel = 75,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      tags = {&lt;br /&gt;
        &amp;quot;PrestigeCombatGear&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorLocust&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorReconBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorLocust&amp;quot;,&lt;br /&gt;
    label = &amp;quot;locust armor&amp;quot;,&lt;br /&gt;
    description = [[A variant of recon armor with an integrated burst rocket for short-ranged flight. Locust armor is slightly less protective than standard recon armor. Each jump consumes a burst of fuel, so the armor must be reloaded after several uses.\n\nUnlike most ultratech military units, locusts train primarily with melee weapons. They usually avoid static shootouts, preferring to jump straight into enemy fortifications and fight hand-to-hand. They do poorly in static defense or confined quarters, but excel in mixed cover or shipcracking operations.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ArmorRating_Sharp = 0.87,&lt;br /&gt;
      ArmorRating_Blunt = 0.35,&lt;br /&gt;
      ArmorRating_Heat = 0.41,&lt;br /&gt;
      JumpRange = 23.9,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisites = {&lt;br /&gt;
        &amp;quot;JumpPack&amp;quot;,&lt;br /&gt;
        &amp;quot;ReconArmor&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Plasteel = 120,&lt;br /&gt;
      ComponentIndustrial = 3,&lt;br /&gt;
      Chemfuel = 100,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 5,&lt;br /&gt;
        ammoDef = &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
        ammoCountPerCharge = 20,&lt;br /&gt;
        baseReloadTicks = 60,&lt;br /&gt;
        soundReload = &amp;quot;Standard_Reload&amp;quot;,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;jump&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_Jump&amp;quot;,&lt;br /&gt;
        label = &amp;quot;jump&amp;quot;,&lt;br /&gt;
        violent = false,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        warmupTime = 0.5,&lt;br /&gt;
        requireLineOfSight = true,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
          canTargetPawns = false,&lt;br /&gt;
          canTargetBuildings = false,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorMarineGrenadier&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorPowerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorMarineGrenadier&amp;quot;,&lt;br /&gt;
    label = &amp;quot;grenadier armor&amp;quot;,&lt;br /&gt;
    description = [[A variant of marine armor with an integrated frag launcher on the shoulder. The armor is slightly less protective than standard marine armor. The launcher can only hold a limited amount of ammo and must be reloaded after use.\n\nGrenadiers usually specialize in breaching buildings or internal ship bulkheads. While not effective at very long range, grenadiers can be surprisingly deadly in confined quarters.]],&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ArmorRating_Sharp = 1.01,&lt;br /&gt;
      ArmorRating_Blunt = 0.40,&lt;br /&gt;
      ArmorRating_Heat = 0.49,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 2,&lt;br /&gt;
        ammoDef = &amp;quot;Steel&amp;quot;,&lt;br /&gt;
        ammoCountPerCharge = 25,&lt;br /&gt;
        baseReloadTicks = 60,&lt;br /&gt;
        soundReload = &amp;quot;Standard_Reload&amp;quot;,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;grenade&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;launch frag grenade&amp;quot;,&lt;br /&gt;
        verbClass = &amp;quot;Verb_LaunchProjectileStatic&amp;quot;,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        range = 12.9,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        warmupTime = 1.5,&lt;br /&gt;
        noiseRadius = 4,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
        defaultProjectile = &amp;quot;Proj_GrenadierGrenade&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Proj_GrenadierGrenade&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseFragGrenadeProjectile&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Proj_GrenadierGrenade&amp;quot;,&lt;br /&gt;
    label = &amp;quot;frag grenade&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      speed = 16,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_ArmorCataphractPhoenix&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorCataphractBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_ArmorCataphractPhoenix&amp;quot;,&lt;br /&gt;
    label = &amp;quot;phoenix armor&amp;quot;,&lt;br /&gt;
    description = [[A variant of cataphract armor with a shoulder-mounted flamebolt launcher. This armor is slightly less protective than standard cataphract armor against normal damage, but is especially flame-resistant. The flamebolt launcher has very limited ammo and must be reloaded after use.\n\nPhoenixes specialize in clearing out very confined spaces full of enemies, as in underground or shipborne operations. They can absorb hits while moving down a corridor, fill rooms with flame, and emerge from the smoke unscathed.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Flammability = 0.1,&lt;br /&gt;
      ArmorRating_Sharp = 1.15,&lt;br /&gt;
      ArmorRating_Blunt = 0.45,&lt;br /&gt;
      ArmorRating_Heat = 0.75,&lt;br /&gt;
      Insulation_Heat = 100,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      Steel = 75,&lt;br /&gt;
      ComponentIndustrial = 4,&lt;br /&gt;
      Chemfuel = 40,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 1,&lt;br /&gt;
        ammoDef = &amp;quot;Chemfuel&amp;quot;,&lt;br /&gt;
        ammoCountPerCharge = 40,&lt;br /&gt;
        baseReloadTicks = 60,&lt;br /&gt;
        soundReload = &amp;quot;Standard_Reload&amp;quot;,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;incendiary&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;launch incendiary&amp;quot;,&lt;br /&gt;
        verbClass = &amp;quot;Verb_LaunchProjectileStatic&amp;quot;,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        range = 14.9,&lt;br /&gt;
        forcedMissRadius = 1.9,&lt;br /&gt;
        warmupTime = 1.5,&lt;br /&gt;
        noiseRadius = 4,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
        defaultProjectile = &amp;quot;Proj_GrenadePhoenixFire&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Proj_GrenadePhoenixFire&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseIncendiaryProjectile&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Proj_GrenadePhoenixFire&amp;quot;,&lt;br /&gt;
    label = &amp;quot;incendiary grenade&amp;quot;,&lt;br /&gt;
    projectile = {&lt;br /&gt;
      speed = 18,&lt;br /&gt;
      explosionRadius = 2.9,&lt;br /&gt;
      arcHeightFactor = 0.4,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Apparel_Gunlink&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ApparelArmorHelmetReconBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Apparel_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Apparel_Gunlink&amp;quot;,&lt;br /&gt;
    label = &amp;quot;gunlink&amp;quot;,&lt;br /&gt;
    description = [[A targeting computer that helps the user aim. It detects and analyzes targets using infrared, visible, and millimeter-wave electromagnetic sensors. An onboard targeting computer displays firing solutions on a retinal projection. It offers no protection at all.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      ArmorRating_Sharp = 0,&lt;br /&gt;
      ArmorRating_Blunt = 0,&lt;br /&gt;
      ArmorRating_Heat = 0,&lt;br /&gt;
      Insulation_Cold = 0,&lt;br /&gt;
      Insulation_Heat = 0,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;Gunlink&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costList = {&lt;br /&gt;
      ComponentSpacer = 1,&lt;br /&gt;
      Plasteel = 10,&lt;br /&gt;
    },&lt;br /&gt;
    apparel = {&lt;br /&gt;
      bodyPartGroups = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;UpperHead&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      tags = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;Gunlink&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShuttleSkyfallerBase&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;ShuttleSkyfallerBase&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;SkyfallerBase&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    size = {5, 3},&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShuttleIncoming&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShuttleSkyfallerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShuttleIncoming&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shuttle (incoming)&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;ShuttleIncoming&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShuttleLeaving&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShuttleSkyfallerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShuttleLeaving&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shuttle (leaving)&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;DropPodLeaving&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:ShuttleCrashing&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;ShuttleSkyfallerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Skyfallers.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;ShuttleCrashing&amp;quot;,&lt;br /&gt;
    label = &amp;quot;shuttle (crashing)&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;ShuttleIncoming&amp;quot;,&lt;br /&gt;
    size = {5, 3},&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MonumentMarker&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MonumentMarker&amp;quot;,&lt;br /&gt;
    label = &amp;quot;monument marker&amp;quot;,&lt;br /&gt;
    description = [[Marks the place where you intend to build a monument. Once placed, this cannot be moved.]],&lt;br /&gt;
    thingClass = &amp;quot;MonumentMarker&amp;quot;,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;BuildingsSpecial&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    altitudeLayer = &amp;quot;Building&amp;quot;,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Mass = 0,&lt;br /&gt;
    },&lt;br /&gt;
    minifiedDef = &amp;quot;MinifiedThing&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BulletShieldPsychic&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;BulletShieldPsychic&amp;quot;,&lt;br /&gt;
    label = &amp;quot;skipshield&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ProjectileInterceptor&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        radius = 4.9,&lt;br /&gt;
        interceptGroundProjectiles = true,&lt;br /&gt;
        interceptNonHostileProjectiles = true,&lt;br /&gt;
        interceptOutgoingProjectiles = true,&lt;br /&gt;
        color = &amp;quot;(0.4, 0.4, 0.4)&amp;quot;,&lt;br /&gt;
        minAlpha = 0.2,&lt;br /&gt;
        interceptEffect = &amp;quot;Interceptor_BlockedProjectilePsychic&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_DestroyAfterDelay&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        delayTicks = 900,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Flashstorm&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Flashstorm&amp;quot;,&lt;br /&gt;
    label = &amp;quot;flashstorm&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;MoteLow&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_DestroyAfterDelay&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        delayTicks = 10000,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_FadesInOut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        fadeInSecs = 2.0,&lt;br /&gt;
        fadeOutSecs = 2.0,&lt;br /&gt;
        solidTimeSecs = 160,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:SolarPinhole&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;EtherealThingBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;SolarPinhole&amp;quot;,&lt;br /&gt;
    label = &amp;quot;solar pinhole&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;ThingWithComps&amp;quot;,&lt;br /&gt;
    category = &amp;quot;PsychicEmitter&amp;quot;,&lt;br /&gt;
    altitudeLayer = &amp;quot;MoteOverheadLow&amp;quot;,&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 15,&lt;br /&gt;
        glowColor = {217, 217, 208, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_HeatPusher&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        compClass = &amp;quot;CompHeatPusherPowered&amp;quot;,&lt;br /&gt;
        heatPerSecond = 10,&lt;br /&gt;
        heatPushMaxTemperature = 20,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_DestroyAfterDelay&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        delayTicks = 300000,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:PawnJumper&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PawnFlyerBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Ethereal_Various.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;PawnJumper&amp;quot;,&lt;br /&gt;
    thingClass = &amp;quot;PawnJumper&amp;quot;,&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BaseWeapon_Bladelink&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BaseWeapon_Bladelink&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeBladelink.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;Bladelink&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BladelinkWeapon&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_GeneratedName&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerWeaponBladelink&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;WeaponsMeleeBladelink&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_MonoSwordBladelink&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon_Bladelink&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeBladelink.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_MonoSwordBladelink&amp;quot;,&lt;br /&gt;
    label = &amp;quot;persona monosword&amp;quot;,&lt;br /&gt;
    description = [[A crystal-metallic longsword infused with mechanites that maintain a mono-molecular cutting edge. It cuts through even thick armor with ease, while its light weight and onboard persona permit extremely fast attacks.&lt;br /&gt;
\nThis weapon has an onboard persona that can bond to only a single person. The wielder and intelligent weapon can synchronize their reflexes and attack with frightening speed, accuracy, and creativity. Once bonded to a wielder, the weapon's persona will refuse to be wielded by anyone else.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 1.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 27,&lt;br /&gt;
        cooldownTime = 1.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;edge&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 27,&lt;br /&gt;
        cooldownTime = 1.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_ZeusHammerBladelink&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon_Bladelink&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeBladelink.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_ZeusHammerBladelink&amp;quot;,&lt;br /&gt;
    label = &amp;quot;persona zeushammer&amp;quot;,&lt;br /&gt;
    description = [[A warhammer with an embedded EMP capacitor. Upon impact, it blasts the target with an EMP burst in addition to the physical damage.&lt;br /&gt;
\nThis weapon has an onboard persona that can bond to only a single person. The wielder and intelligent weapon can synchronize their reflexes and attack with frightening speed, accuracy, and creativity. Once bonded to a wielder, the weapon's persona will refuse to be wielded by anyone else.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 1.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 31,&lt;br /&gt;
        cooldownTime = 2.2,&lt;br /&gt;
        extraMeleeDamages = {&lt;br /&gt;
          {&lt;br /&gt;
            def = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
            amount = 9,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_PlasmaSwordBladelink&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon_Bladelink&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeBladelink.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_PlasmaSwordBladelink&amp;quot;,&lt;br /&gt;
    label = &amp;quot;persona plasmasword&amp;quot;,&lt;br /&gt;
    description = [[A metal-cored sword with a cutting edge. Plasma is wrapped around the core, held in place by an energy field. Targets are both sliced by the metal core, as well as burned or ignited by the plasma sheath.&lt;br /&gt;
\nThis weapon has an onboard persona that can bond to only a single person. The wielder and intelligent weapon can synchronize their reflexes and attack with frightening speed, accuracy, and creativity. Once bonded to a wielder, the weapon's persona will refuse to be wielded by anyone else.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 3000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 1.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 23,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        extraMeleeDamages = {&lt;br /&gt;
          {&lt;br /&gt;
            def = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
            amount = 10,&lt;br /&gt;
            chance = 0.7,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;edge&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 23,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
        extraMeleeDamages = {&lt;br /&gt;
          {&lt;br /&gt;
            def = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
            amount = 10,&lt;br /&gt;
            chance = 0.7,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Axe&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Blunt_Quality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeMedieval.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Axe&amp;quot;,&lt;br /&gt;
    label = &amp;quot;axe&amp;quot;,&lt;br /&gt;
    description = [[An advanced form of one of mankind's oldest weapons, the war axe is a short blade attached to a shaft. The simple, ancient design concentrates cutting power generated from strong overhand swings.]],&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 7000,&lt;br /&gt;
      Mass = 1.5,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;Smithing&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 3,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MedievalMeleeDecent&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 9,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;edge&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Warhammer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BaseMeleeWeapon_Blunt_Quality&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeMedieval.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Warhammer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;warhammer&amp;quot;,&lt;br /&gt;
    description = [[A long polearm topped with a brutal hammer. The powerful blunt impacts can pulverize an enemy's insides, even through armor.]],&lt;br /&gt;
    costStuffCount = 150,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      WorkToMake = 18000,&lt;br /&gt;
      Mass = 5,&lt;br /&gt;
    },&lt;br /&gt;
    recipeMaker = {&lt;br /&gt;
      researchPrerequisite = &amp;quot;LongBlades&amp;quot;,&lt;br /&gt;
      skillRequirements = {&lt;br /&gt;
        Crafting = 5,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    stuffCategories = {&lt;br /&gt;
      &amp;quot;Metallic&amp;quot;,&lt;br /&gt;
      &amp;quot;Woody&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;MedievalMeleeDecent&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 11,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 20,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeaponUltratech&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      Name = &amp;quot;MeleeWeaponUltratech&amp;quot;,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeUltratech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2000,&lt;br /&gt;
      Mass = 2,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Art&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        nameMaker = &amp;quot;NamerArtWeaponMelee&amp;quot;,&lt;br /&gt;
        descriptionMaker = &amp;quot;ArtDescription_WeaponMelee&amp;quot;,&lt;br /&gt;
        minQualityForArtistic = &amp;quot;Excellent&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableWeapon&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    smeltable = true,&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;WeaponsMelee&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;UltratechMelee&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_MonoSword&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MeleeWeaponUltratech&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeUltratech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_MonoSword&amp;quot;,&lt;br /&gt;
    label = &amp;quot;monosword&amp;quot;,&lt;br /&gt;
    description = [[A crystal-metallic longsword infused with mechanites that maintain a mono-molecular cutting edge. It cuts through even thick armor with ease, and its light weight permits fast attacks.]],&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 1.6,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 25,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;edge&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 25,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_Zeushammer&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MeleeWeaponUltratech&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeUltratech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_Zeushammer&amp;quot;,&lt;br /&gt;
    label = &amp;quot;zeushammer&amp;quot;,&lt;br /&gt;
    description = [[A warhammer with an embedded EMP capacitor. Upon impact, it blasts the target with an EMP burst in addition to the physical damage.]],&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Poke&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 15,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 31,&lt;br /&gt;
        cooldownTime = 3,&lt;br /&gt;
        extraMeleeDamages = {&lt;br /&gt;
          {&lt;br /&gt;
            def = &amp;quot;EMP&amp;quot;,&lt;br /&gt;
            amount = 9,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_PlasmaSword&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;MeleeWeaponUltratech&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;MeleeUltratech.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_PlasmaSword&amp;quot;,&lt;br /&gt;
    label = &amp;quot;plasmasword&amp;quot;,&lt;br /&gt;
    description = [[A metal-cored sword with a cutting edge. Plasma is wrapped around the core, held in place by an energy field. Targets are both sliced by the metal core, as well as burned or ignited by the plasma sheath.]],&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;handle&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 2,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;point&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Stab&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 21,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        extraMeleeDamages = {&lt;br /&gt;
          {&lt;br /&gt;
            def = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
            amount = 10,&lt;br /&gt;
            chance = 0.5,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;edge&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Cut&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 21,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
        extraMeleeDamages = {&lt;br /&gt;
          {&lt;br /&gt;
            def = &amp;quot;Flame&amp;quot;,&lt;br /&gt;
            amount = 10,&lt;br /&gt;
            chance = 0.5,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:OrbitalTargeterMechCluster&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;OrbitalUtilityBase&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;OrbitalWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;OrbitalTargeterMechCluster&amp;quot;,&lt;br /&gt;
    label = &amp;quot;orbital mech cluster targeter&amp;quot;,&lt;br /&gt;
    description = [[An ancient military targeting device. It signals an orbital platform to drop a mechanoid combat cluster at the targeted point. The cluster may include any mixture of mechanoids and mech defense structures.&lt;br /&gt;
\nThough they may have once had some allegiance to the ancient army that created this unit, any mechs dropped now will indiscriminately attack any human they see - including the one that summoned them.&lt;br /&gt;
\nThe unit only contains one usage code, so it can only be used once.]],&lt;br /&gt;
    verbs = {&lt;br /&gt;
      {&lt;br /&gt;
        verbClass = &amp;quot;Verb_MechCluster&amp;quot;,&lt;br /&gt;
        warmupTime = 3,&lt;br /&gt;
        range = 44.9,&lt;br /&gt;
        burstShotCount = 1,&lt;br /&gt;
        onlyManualCast = true,&lt;br /&gt;
        targetParams = {&lt;br /&gt;
          canTargetLocations = true,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Reloadable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        maxCharges = 1,&lt;br /&gt;
        destroyOnEmpty = true,&lt;br /&gt;
        hotKey = &amp;quot;Misc4&amp;quot;,&lt;br /&gt;
        chargeNoun = &amp;quot;charge&amp;quot;,&lt;br /&gt;
        displayGizmoWhileUndrafted = false,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:BasePsychicWeaponMelee&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      Name = &amp;quot;BasePsychicWeaponMelee&amp;quot;,&lt;br /&gt;
      Abstract = true,&lt;br /&gt;
      ParentName = &amp;quot;BaseWeapon&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;PsychicWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        compClass = &amp;quot;CompQuality&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_BiocodableWeapon&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    thingCategories = {&lt;br /&gt;
      &amp;quot;WeaponsMelee&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:MeleeWeapon_PsyfocusStaff&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;BasePsychicWeaponMelee&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;PsychicWeapons.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;MeleeWeapon_PsyfocusStaff&amp;quot;,&lt;br /&gt;
    label = &amp;quot;eltex staff&amp;quot;,&lt;br /&gt;
    description = [[An ultratech staff threaded with psychic focusing materials. While it is a solid melee weapon, its main purpose is to enhance the wielder's psychic sensitivity and neural heat dissipation, allowing more use of psychic powers.]],&lt;br /&gt;
    tradeTags = {&lt;br /&gt;
      &amp;quot;PsychicWeapon&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    weaponTags = {&lt;br /&gt;
      &amp;quot;EltexStaff&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    costStuffCount = 50,&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MarketValue = 2000,&lt;br /&gt;
      Mass = 1.2,&lt;br /&gt;
    },&lt;br /&gt;
    tools = {&lt;br /&gt;
      {&lt;br /&gt;
        label = &amp;quot;head&amp;quot;,&lt;br /&gt;
        capacities = {&lt;br /&gt;
          &amp;quot;Blunt&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        power = 12,&lt;br /&gt;
        cooldownTime = 2.6,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_TreeAnima&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;TreeBase&amp;quot;,&lt;br /&gt;
      Name = &amp;quot;TreeAnima&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_TreeAnima&amp;quot;,&lt;br /&gt;
    label = &amp;quot;anima tree&amp;quot;,&lt;br /&gt;
    description = [[A rare tree with warm, skin-smooth bark and long iridescent leaves. Infused with bioluminescent micro-organisms, anima trees develop a unique form of psychic symbiosis with surrounding lifeforms, allowing them to grow in a wide variety of biomes.\n\nIf a person (psycaster or not) meditates near an anima tree, it will grow anima grass around its base. Once enough grass is grown, it becomes possible to carry out a psychic linking ritual with the tree and upgrade a person's psychic powers. Only tribal peoples know the secret of this ritual. Tribal psycasters are also able to draw psyfocus from anima trees while meditating to them.\n\nAnima trees' psychic properties are weakened if artificial structures are placed nearby. They refuse to be caged or studied, and must remain part of nature.\n\nMost tribes believe that anima trees are not simply trees, but are rather the physical extremities of a single world spirit.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      Beauty = 5,&lt;br /&gt;
      MeditationFocusStrength = 0.28,&lt;br /&gt;
      Flammability = 0,&lt;br /&gt;
      MaxHitPoints = 400,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      growDays = 25,&lt;br /&gt;
      sowMinSkill = 0,&lt;br /&gt;
      sowTags = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      dieIfNoSunlight = false,&lt;br /&gt;
      dieFromToxicFallout = false,&lt;br /&gt;
      lifespanDaysPerGrowDays = 0,&lt;br /&gt;
      fertilityMin = 0.02,&lt;br /&gt;
      fertilitySensitivity = 0,&lt;br /&gt;
      sowResearchPrerequisites = {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Inherit = false,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
    comps = {&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_MeditationFocus&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        statDef = &amp;quot;MeditationFocusStrength&amp;quot;,&lt;br /&gt;
        focusTypes = {&lt;br /&gt;
          &amp;quot;Natural&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        offsets = {&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_ArtificialBuildings&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 34.9,&lt;br /&gt;
            curve = {&lt;br /&gt;
              points = {&lt;br /&gt;
                {0, 0.0},&lt;br /&gt;
                {5, -0.08},&lt;br /&gt;
                {10, -0.15},&lt;br /&gt;
                {50, -0.3},&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            _ = {&lt;br /&gt;
              Class = &amp;quot;FocusStrengthOffset_BuildingDefs&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            defs = {&lt;br /&gt;
              AnimusStone = 0.02,&lt;br /&gt;
              NatureShrine_Small = 0.01,&lt;br /&gt;
              NatureShrine_Large = 0.01,&lt;br /&gt;
            },&lt;br /&gt;
            radius = 9.9,&lt;br /&gt;
            maxBuildings = 4,&lt;br /&gt;
            explanationKey = &amp;quot;MeditationFocusPerAnimusStoneAndShrine&amp;quot;,&lt;br /&gt;
            explanationKeyAbstract = &amp;quot;MeditationFocusPerAnimusStoneAndShrineAbstract&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Glower&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        glowRadius = 3.75,&lt;br /&gt;
        glowColor = {110, 116, 125, 0},&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SpawnSubplant&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        subplant = &amp;quot;Plant_GrassAnima&amp;quot;,&lt;br /&gt;
        spawnSound = &amp;quot;AnimaTreeProgress&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_Psylinkable&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        requiredSubplantCountPerPsylinkLevel = {&lt;br /&gt;
          &amp;quot;20&amp;quot;,&lt;br /&gt;
          &amp;quot;20&amp;quot;,&lt;br /&gt;
          &amp;quot;20&amp;quot;,&lt;br /&gt;
          &amp;quot;20&amp;quot;,&lt;br /&gt;
          &amp;quot;20&amp;quot;,&lt;br /&gt;
          &amp;quot;20&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        requiredFocus = &amp;quot;Natural&amp;quot;,&lt;br /&gt;
        linkSound = &amp;quot;AnimaTreeLink&amp;quot;,&lt;br /&gt;
        enoughPlantsLetterLabel = &amp;quot;About: Anima tree linking&amp;quot;,&lt;br /&gt;
        enoughPlantsLetterText = &amp;quot;The anima tree now has {0} anima grass around it. This is enough for a tribal person to begin their first linking ritual!\n\nThe linking ritual gives a level of psylink and the ability to use psychic powers. Upgrading to a higher level requires more grass at each level.\n\nThe anima grass requirements for linking rituals to upgrade psycasters are:\n\n{1}\n\nNote: Only those with the nature focus type can meditate to or link with anima trees. You can see a person's focus types by looking at their info card with the ‘i' button.&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_GiveThoughtToAllMapPawnsOnDestroy&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        thought = &amp;quot;AnimaScream&amp;quot;,&lt;br /&gt;
        message = &amp;quot;The anima tree has died and emitted a disturbing psychic scream.&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_PlaySoundOnDestroy&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        sound = &amp;quot;AnimaTreeScream&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_SelfhealHitpoints&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        ticksPerHeal = 2000,&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        _ = {&lt;br /&gt;
          Class = &amp;quot;CompProperties_ToggleDrawAffectedMeditationFoci&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  [&amp;quot;ThingDef:Plant_GrassAnima&amp;quot;] = {&lt;br /&gt;
    _ = {&lt;br /&gt;
      ParentName = &amp;quot;PlantBaseNonEdible&amp;quot;,&lt;br /&gt;
      DefCategory = &amp;quot;ThingDef&amp;quot;,&lt;br /&gt;
      FileName = &amp;quot;Plants_Wild.xml&amp;quot;,&lt;br /&gt;
      GameVersion = &amp;quot;1.2.2753&amp;quot;,&lt;br /&gt;
      DLC = &amp;quot;Royalty&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    defName = &amp;quot;Plant_GrassAnima&amp;quot;,&lt;br /&gt;
    label = &amp;quot;anima grass&amp;quot;,&lt;br /&gt;
    description = [[A grass infused with luminous microorganisms. Tribal peoples find that anima grass grows around the base of an anima tree as they meditate. It seems to reflect some kind of strengthening of the tree's psychic power.\n\nOffworld scientists have tried to study the phenomenon, but the grass degenerates into normal plant matter when observed too closely.\n\nAnimals refuse eat anima grass. Tribal stories say this is done out of respect and fear.]],&lt;br /&gt;
    statBases = {&lt;br /&gt;
      MaxHitPoints = 85,&lt;br /&gt;
      Flammability = 1.3,&lt;br /&gt;
    },&lt;br /&gt;
    plant = {&lt;br /&gt;
      fertilityMin = 0.02,&lt;br /&gt;
      fertilitySensitivity = 0,&lt;br /&gt;
      sowMinSkill = 0,&lt;br /&gt;
      growDays = 1,&lt;br /&gt;
      lifespanDaysPerGrowDays = 60,&lt;br /&gt;
      harvestWork = 40,&lt;br /&gt;
      dieFromToxicFallout = false,&lt;br /&gt;
    },&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Market_Value&amp;diff=86127</id>
		<title>Market Value</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Market_Value&amp;diff=86127"/>
		<updated>2021-05-17T19:25:05Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stat&lt;br /&gt;
| round to five over = 200&lt;br /&gt;
| to string style = FloatTwo&lt;br /&gt;
| description = The market value of an object. The actual trade price will be adjusted by [[Trade Price Improvement|negotiation skill]], relationship status, and other contextual factors..&lt;br /&gt;
}}&lt;br /&gt;
[[File:Graph1.png|thumb|right|This graph shows dependence item sell price multiplier($) from item hit points. ]]&lt;br /&gt;
&lt;br /&gt;
If not explicitly specified, an item's market value defaults to a formula-determined value:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;''M'' = (''I'' + ''W'' × 0.216) × ''Q'' × ''H''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
* ''I'' = combined market value of all ingredients&lt;br /&gt;
* ''W'' = work to make the item as displayed in the item information window, assuming 100% work speed; the game gives this value as in-game seconds at normal speed (60 game ticks per second).  Note: 1,000 units of work correspond to one in-game day of uninterrupted work.&lt;br /&gt;
* ''Q'' = quality multiplier (see [[quality]])&lt;br /&gt;
* ''H'' = health multiplier (only applies if the item has [[Deterioration|deteriorated]] past a certain point). This only seems to apply to certain items - [[weapons]], [[apparel]] and [[artificial body parts]] decrease in value, while [[materials]], [[medicine]] and [[drugs]] do not. The exact determining factor of whether an item will will drop in value as it deteriorates is currently unknown. &lt;br /&gt;
&lt;br /&gt;
Items with a market value of above 200 will have their market value rounded to be divisible by 5, with a remainder of 2.5 being rounded down. Prices over $10 will be rounded to the nearest whole number.&lt;br /&gt;
&lt;br /&gt;
'''Base value''' (quality not taken into consideration) seems to be:&lt;br /&gt;
: price of ingredients + work amount * 0.0036&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
*[[Version/1.1.2618|1.1.2618]] - Prices now only display decimals when under $10.&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Harakoni&amp;diff=86125</id>
		<title>User:Harakoni</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Harakoni&amp;diff=86125"/>
		<updated>2021-05-17T19:18:52Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''&amp;lt;big&amp;gt;Hello! This is Harakoni's user page.&amp;lt;/big&amp;gt;''' [[Category: Harakoni page]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;You can see my contributions [[Special:Contributions/Harakoni|here]]. &amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;You can compare almost every item in the game [[User:Harakoni/Comparison_Tables|here]]. &amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
I created the following templates:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Template !! Controlled By !! Notes/TO-DO&lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Apparel Material Table|&amp;lt;nowiki&amp;gt;{{Apparel Material Table}}&amp;lt;/nowiki&amp;gt;]] || [[Template: Apparel Material Table Row|&amp;lt;nowiki&amp;gt;{{Apparel Material Table Row}}&amp;lt;/nowiki&amp;gt;]] || &lt;br /&gt;
*Needs an update for exclusions (e.g. uranium [[coronet]]s and [[crown]]s are banned) &lt;br /&gt;
*Needs an update for market value calculations like on the Hood.&lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Building Material Table|&amp;lt;nowiki&amp;gt;{{Building Material Table}}&amp;lt;/nowiki&amp;gt;]]  || [[Template: Building Material Table Row|&amp;lt;nowiki&amp;gt;{{Building Material Table Row}}&amp;lt;/nowiki&amp;gt;]] || &lt;br /&gt;
*Add terrain affordance&lt;br /&gt;
*Check rounding&lt;br /&gt;
*Add rest effectiveness&lt;br /&gt;
*Check beauty calc on things with beauty (e.g. [[Chess table]])&lt;br /&gt;
*Do general check using bed for example&lt;br /&gt;
*work out how to apply to [[Barricade]]/[[Sandbags]] and [[Table]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Apparel Quality Table|&amp;lt;nowiki&amp;gt;{{Apparel Quality Table}}&amp;lt;/nowiki&amp;gt;]] ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Weapon Quality Table|&amp;lt;nowiki&amp;gt;{{Weapon Quality Table}}&amp;lt;/nowiki&amp;gt;]]  ||  ||  &lt;br /&gt;
* Add the melee quality table to ranged weapons. &lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Weapon DPS Chart|&amp;lt;nowiki&amp;gt;{{Weapon DPS Chart}}&amp;lt;/nowiki&amp;gt;]]  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Weapon Iterated DPS Chart|&amp;lt;nowiki&amp;gt;{{Weapon Iterated DPS Chart}}&amp;lt;/nowiki&amp;gt;]] || [[Template:Weapon DPS Iterator|&amp;lt;nowiki&amp;gt;{{Template:Weapon DPS Iterator}}&amp;lt;/nowiki&amp;gt;]] -&amp;gt;&amp;lt;br&amp;gt;[[Template: Weapon Iterated DPS Chart Segment|&amp;lt;nowiki&amp;gt;{{Weapon Iterated DPS Chart Segment}}&amp;lt;/nowiki&amp;gt;]])||&lt;br /&gt;
*Add armor or at least DPS reduction&lt;br /&gt;
*Add minimum range and then add to turrets.&lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Apparel Protection Chart|&amp;lt;nowiki&amp;gt;{{Apparel Protection Chart}}&amp;lt;/nowiki&amp;gt;]] || ||&lt;br /&gt;
*Flak and Duster vs Marine&lt;br /&gt;
* add color option so you can have plasteel be teal, devilstrand red etc. See [[Plate armor]] for relevant example.&lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Nav/materials|&amp;lt;nowiki&amp;gt;{{nav|materials|wide}}&amp;lt;/nowiki&amp;gt;]] which replaced my other creation [[Template: Nav/textiles|&amp;lt;nowiki&amp;gt;{{nav|textiles|wide}}&amp;lt;/nowiki&amp;gt;]] || ||&lt;br /&gt;
*Switch to [[Resources]]?&lt;br /&gt;
|-&lt;br /&gt;
|[[Template:Nav/Utility|&amp;lt;nowiki&amp;gt;{{nav|utility|wide}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template:Nav/factions|&amp;lt;nowiki&amp;gt;{{nav|factions|wide}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template:Nav/stats|&amp;lt;nowiki&amp;gt;{{nav|stats|wide}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template:Persona traits|&amp;lt;nowiki&amp;gt;{{Persona traits}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: Apparel comparison table row]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: Version Nav|&amp;lt;nowiki&amp;gt;{{Version Nav}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: RimworldIcon|&amp;lt;nowiki&amp;gt;{{RimworldIcon}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: Royalty|&amp;lt;nowiki&amp;gt;{{Royalty}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: ThingTag|&amp;lt;nowiki&amp;gt;{{ThingTag}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: Leather List|&amp;lt;nowiki&amp;gt;{{Leather List}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: Animal Health Table|&amp;lt;nowiki&amp;gt;{{Animal Health Table}}&amp;lt;/nowiki&amp;gt;]]  || ||&lt;br /&gt;
*Add all teh bones? &lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Ingredient List|&amp;lt;nowiki&amp;gt;{{Ingredient List}}&amp;lt;/nowiki&amp;gt;]] || [[Template: Ingredient List Row|&amp;lt;nowiki&amp;gt;{{Ingredient List Row}}&amp;lt;/nowiki&amp;gt;]] ||&lt;br /&gt;
*Check case sensitivity&lt;br /&gt;
*Add item categories&lt;br /&gt;
|-&lt;br /&gt;
|[[Template:Stonecutting maximization]]  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: Market Value Calculator|&amp;lt;nowiki&amp;gt;{{Market Value Calculator}}&amp;lt;/nowiki&amp;gt;]]   || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template: Daily Tip|&amp;lt;nowiki&amp;gt;{{Daily Tip}}&amp;lt;/nowiki&amp;gt;]] || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Tag List]] || [[Template:Tag List Excluder]] || &lt;br /&gt;
|-&lt;br /&gt;
| [[Template:Current Version]] || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Template:Required Resources]] || || &lt;br /&gt;
* Add simple mode with just icons.&lt;br /&gt;
* Add &amp;quot;s&amp;quot; when using words that should be plural (components) and tthere are more than 1. &lt;br /&gt;
* Add stuff types when the thing detects stuff.&lt;br /&gt;
|-&lt;br /&gt;
| [[Template: Pawn Table Header]] || || Add a header in which you can input a pawn type (e.g. Tribes/Empire/Pirates/Mercenaries etc) and it will output the table nicely for you and provide an edit link for the page. &lt;br /&gt;
* Make it so that muliple tables can be merged? E.g. Pirates + Mercs?&lt;br /&gt;
* Decide on fomratting. Splitting hediffs into their own categories (budget and list of things) and listing apparel like with weapons, and having weapons, apparel and hediffs in expandable sections to cut down on bloat should all help.  &lt;br /&gt;
|-&lt;br /&gt;
|[[Template:Animal Nutrition Table]] || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Template:Grow Table]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I also created the following templates, however they are not intended for wiki-wide use&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Template !! Controlled By &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Harakoni/RangedQuality|&amp;lt;nowiki&amp;gt;{{User:Harakoni/RangedQuality|WEAPONNAME}}&amp;lt;/nowiki&amp;gt;]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Harakoni/MeleeQuality|&amp;lt;nowiki&amp;gt;{{User:Harakoni/MeleeQuality|WEAPONNAME}}&amp;lt;/nowiki&amp;gt;]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Harakoni/MeleeQualityStuffable|&amp;lt;nowiki&amp;gt;{{User:Harakoni/MeleeQualityStuffable|WEAPONNAME}}&amp;lt;/nowiki&amp;gt;]] || [[User:Harakoni/MeleeQualityStuffableMaterial|&amp;lt;nowiki&amp;gt;{{User:Harakoni/MeleeQualityStuffableMaterial|WEAPONNAME|MATERIAL}}&amp;lt;/nowiki&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Harakoni/MeleeStuffable|&amp;lt;nowiki&amp;gt;{{User:Harakoni/MeleeStuffable|WEAPONNAME|MATERIALOPTIONAL}}&amp;lt;/nowiki&amp;gt;]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Harakoni/ArmorQuality|&amp;lt;nowiki&amp;gt;{{User:Harakoni/ArmorQuality|APPARELNAME}}&amp;lt;/nowiki&amp;gt;]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Harakoni/ArmorQualityStuffable|&amp;lt;nowiki&amp;gt;{{User:Harakoni/ArmorQualityStuffable|APPARELNAME|CLOTH/METAL}}&amp;lt;/nowiki&amp;gt;]] || [[User:Harakoni/ArmorQualityStuffableMaterial|&amp;lt;nowiki&amp;gt;{{User:Harakoni/ArmorQualityStuffableMaterial|APPARELNAME|MATERIAL}}&amp;lt;/nowiki&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Harakoni/MarketValueChecker|&amp;lt;nowiki&amp;gt;{{User:Harakoni/MarketValueChecker}}&amp;lt;/nowiki&amp;gt;]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Harakoni/OptimumTextiles|&amp;lt;nowiki&amp;gt;{{User:Harakoni/OptimumTextiles}}&amp;lt;/nowiki&amp;gt;]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Outdated but still maintained for now:&lt;br /&gt;
*[[Template: Armor material table|&amp;lt;nowiki&amp;gt;{{Armor material table}}&amp;lt;/nowiki&amp;gt;]]&lt;br /&gt;
*[[Template: Clothing material table|&amp;lt;nowiki&amp;gt;{{Clothing material table}}&amp;lt;/nowiki&amp;gt;]] (largely controlled by [[Template: Clothing material table row|&amp;lt;nowiki&amp;gt;{{Clothing material table row}}&amp;lt;/nowiki&amp;gt;]] now)&lt;br /&gt;
&lt;br /&gt;
I also contributed code to&lt;br /&gt;
*[[Template: RoyaltyIcon|&amp;lt;nowiki&amp;gt;{{RoyaltyIcon}}&amp;lt;/nowiki&amp;gt;]]&lt;br /&gt;
*[[Template: Market Value|&amp;lt;nowiki&amp;gt;{{Market Value}}&amp;lt;/nowiki&amp;gt;]]&lt;br /&gt;
I also created the following that are not yet templates but are similar mechanically to the above.&lt;br /&gt;
*The [[Armor#Comparison table|Armor comparison table]] on the [[Armor]] page&lt;br /&gt;
* Comfort, Rest effectiveness, psychcic snesitivity boost tables on various pages.&lt;br /&gt;
If you have any issue with any of the above, including any instructional or formatting problems, please feel free to ask on my discussions page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;li style=&amp;quot;display: inline-table;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Q|page|Market Value Base #}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
Hey Harakoni, if you're looking for your mess its here: [[User:Harakoni/Sandbox]]&lt;br /&gt;
&lt;br /&gt;
[[User:Harakoni/Sandbox/Apparel]]&lt;br /&gt;
&amp;lt;/big&amp;gt;&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
* Diffigurement needs to be on the injury page and linkt to from the social page, also the fact that it nullifies beauty traits but not ugly traits should be mentioned. &lt;br /&gt;
* [[Empire]] and [[Titles]] needs teh royal tribute collector meehcnaics updated.&lt;br /&gt;
*now that production facilities are defined, investigate a good format for listing everything that can be crafted there. Is a simple list, like [[Template; Ingredient List]] sufficient? Or should it have a full table with details like on [[Electric tailor bench]]?&lt;br /&gt;
* apply verified template to thoughts pages. The verson they're verified, if any, is in the version history on my edit.&lt;br /&gt;
* Do animals get [[Food poisoning]] from raw foods? Its defined as &amp;quot;FoodPoisonChanceFixedHuman&amp;quot; which implies no and I've never seen it. Needs to be confirmed and integrated into the wiki.&lt;br /&gt;
* Add habitats to animals.&lt;br /&gt;
* Effect of 1 strike from [[Venom fangs]] and [[venom talon]] - how much does 1 strike cause [[Toxic buildup]] and whats the effect on [[Consciousness]] i.e. how quickly does it debuff enemies. &lt;br /&gt;
* daysToRotStart&lt;br /&gt;
* [[Archotech]] lore page inc archotech body parts.&lt;br /&gt;
* Split [[Meat]] into [[Meat]], [[Insect meat]] and [[Human meat]]. They have different values, effects and images and they should be callable. &lt;br /&gt;
* Split the raider tables into faction pages like [[Empire]] that way info on teh traders pawns and things can be included, inc what they sell  &lt;br /&gt;
*[[Wealth management]]&lt;br /&gt;
* [[User:Pangaea/Pawn test]]&lt;br /&gt;
* [[Circadian_half-cycler#Analysis]]&lt;br /&gt;
* [[Pain]] - [[Consciousness]] effect.&lt;br /&gt;
* [[Social]] - the opinion tables need updating&lt;br /&gt;
* harvestMinGrowth add to pages? - could be useful for production/time analysis if cutting down early produces more. check. &lt;br /&gt;
* [[General Labor Speed]] controls making [[stone blocks]], making [[chemfuel]] at a [[refinery]], burning items, [[hand tailor bench|tailoring]] clothes, creating [[Sculpture|art]], [[electric smithy|smithing]] armor and weapons or [[Electric smelter|smelting]] slag. [[Template:Stonecutting maximization]] only covers stone cutting atm but could be applied to all these pages if written in a more generic way. &lt;br /&gt;
* [[Stat]] skills need to be defined like Capacities - with &amp;quot;Animals Base Value&amp;quot; and &amp;quot;Intellectual Bonus Per Level&amp;quot; as they can have more than one skill (e.g. hunting stealth). They ALL need to changed to fix this.&lt;br /&gt;
* stats should list allowed defect&lt;br /&gt;
*investigate if neural heat dump coma shortened by psy foil helmet&lt;br /&gt;
* packing caravans with fast but otherwise useless animals to improve caravan speed.&lt;br /&gt;
* List what global work speed affects on [[Global Work Speed]].&lt;br /&gt;
* Change stat table and others to templates to make use of Is Obsolete property (feed it to template, display if not obsolete property != True)&lt;br /&gt;
* [[Jade]] has different work to make and work to build stat factors&lt;br /&gt;
* Melee comparison page - add Maximum damage attack (or all attacks?), add cooldown, split material from quality (so you can look at only Plasteel weapons, or only Legendary Weapons).&lt;br /&gt;
*[[Diseases]] is a mess of non-standardization - with some information transcluded and other information not. The diseases should be standardized at least,. but really its likely that diseases shouldn't have the information and instead individual pages should be use with only a short summary of each disease on the Diseases page. &lt;br /&gt;
*create attack animal comparison table? With health scale, DPS, training requirements&lt;br /&gt;
*[[Structure]] should be broken up and split into individual pages, with them all linked and compared there.&lt;br /&gt;
*[[Property:Small Volume]] exist but isn't displayed anywehre&lt;br /&gt;
*Updating version history up to [[Version/0.13.1135]]&lt;br /&gt;
* rewrite all the pages for the psyfocuses to properly reflect their use as such.&lt;br /&gt;
*Combat effectiveness of [[yayo]], adding [[overdose]] information&lt;br /&gt;
*[[Hospital_bed#Version_history]] is clean. Implement?&lt;br /&gt;
*Animals with wilderness above 10% (meaning all animals aside from farm animals) will have their tameness training degrade eventually&lt;br /&gt;
* Fix frag grenade and add to table./&lt;br /&gt;
* [[Recreation]] needs cleanup and proper comparisons and information. &lt;br /&gt;
* Half the furniture pages are stubs. The pages don't even list the requirements for complex furniture, let along a decent analysis of each thing.&lt;br /&gt;
* [[Furniture]] has a manually created table which is likely out of date.&lt;br /&gt;
* [[Ship landing beacon]]&lt;br /&gt;
* Tribal improved foraging vs outlander improved research and the effects on recruiting people of your tech level aren't anywhere I can find on the wiki&lt;br /&gt;
* Merge [[Armor]] and [[Clothing]] into [[Apparel]] page&lt;br /&gt;
** [[Talk:Armor| Heat Armor]]&lt;br /&gt;
** Finish convert of [[Armor#Comparison table|Armor comparison table]] into row template ala ranged table on [[Weapons]], including steel and plasteel versions of material dependent metal items, include cloth, devilstrand, hyperweave and thrumbofur of cloth items? Maybe bloat. Put cloth items on clothing table only?&lt;br /&gt;
** Create Clothing comparison table&lt;br /&gt;
* Weapon Material Table&lt;br /&gt;
* Make weapon quality table show details for the steel/plasteel on stuffable sharp, and steel/uranium on stuffable blunt&lt;br /&gt;
* Create Melee weapon comparison table, include implant weapons.&lt;br /&gt;
* Fix [[Wood]] not counting as a weapon&lt;br /&gt;
* [[Traits]] needs an overhaul. A lot of outdated info, a lot of subsidiary info. Investigate &amp;quot;Character Quality&amp;quot;  - beautiful adds 40% quality, staggeringly ugly reduces by 40%, wimp reduces by 15% etc&lt;br /&gt;
* Replace all instances of [[Template:Define]] with [[Template:Infobox main]]&lt;br /&gt;
*[[Ice Sheet Guide]] - update, compare with previous edit-warred version, get rid of horrendous coloring,&lt;br /&gt;
&lt;br /&gt;
===Pages in need of integration===&lt;br /&gt;
* [[Mountain]]&lt;br /&gt;
* Integrate [[Caravan]] into teh nav menu and wiki at large.&lt;br /&gt;
* Add royalty content buildings to the nav boxes.&lt;br /&gt;
* [[Doctoring]] needs to be better integrated into the rest of rest of the wiki, maybe even added to the nav box.&lt;br /&gt;
* Merge/interlink [[Factions]], [[Empire]], [[Raiders]], and [[Visitor]]&lt;br /&gt;
**Theres also [[Character Types]] [[Pawns]] and [[People]]. Way too many&lt;br /&gt;
***Oh and theres also [[Guest]]&lt;br /&gt;
****[[Colonists]]&lt;br /&gt;
*****[[Traveler]] too? What the heck. &lt;br /&gt;
*Updated [[Faction base]] and link it better into the rest of the wiki&lt;br /&gt;
*[[Rock chunk]] and [[Steel slag chunk]]&lt;br /&gt;
*[[:Category:Status Level]] and its subsidaries&lt;br /&gt;
*[[Damage Types]] and sepecifically explosives do 2x damage to buildings and 4x to walls, this concept and&lt;br /&gt;
*[[Glow pod]]&lt;br /&gt;
*[[Overdose]]&lt;br /&gt;
* [[Corpse]]&lt;br /&gt;
&lt;br /&gt;
===Investigation TODO===&lt;br /&gt;
&amp;lt;big&amp;gt;'''IF YOU HAVE ANSWERS TO THE FOLLOW PLEASE LEAVE THEM ON MY TALK PAGE'''&amp;lt;/big&amp;gt;&lt;br /&gt;
* Investigate [[title]] cloth requirement tags. Odd behavior noticed by discord user might be explained by how they're set up. It seems a {{Tag List|tags|Cape}} might replace the need for a [[Formal shirt]] for Acolytes because its in the tags and covers the torso. Similarly prestige armor might substitute for both the shirt and the vest because again, its listed as an option for both and covers the torso.&lt;br /&gt;
* Investigate [[Template:RNG]]&lt;br /&gt;
* InvestigateDoes clothes flammability affect chance to light on fire?&lt;br /&gt;
* Investigate Base Hunger Rate is multiplied by 1.6 for animals for some reason?&lt;br /&gt;
* Investigate [[Template: Version]]&lt;br /&gt;
* Investigate Sculptures giving solitary recreation - it is claimed that &amp;quot;legendary sculpture will fill rec meter almost instantly.&amp;quot; Needs confirmation.&lt;br /&gt;
* Investigate better tomb rooms for the sarcophagus giving better solitary recreation. Needs confirmation.&lt;br /&gt;
* Investigate [[sarcophagus]] giving a [[Thoughts|mood boost]]&lt;br /&gt;
* Investigate Pyromaniac mood boost - just incendiary launcher or molotovs as well? Wb inferno cannons or plasmaswords? Add to pages.&lt;br /&gt;
* Investigate if pawns with 0% [[Hearing]] can be insulted. Could it be a way to negate the downside of bloodlust on non-social pawns?&lt;br /&gt;
* Investigate do pawns with 0 [[Sight]] &amp;quot;see&amp;quot; corpses?  [https://www.reddit.com/r/RimWorld/comments/ld7vwn/you_cant_witness_an_allys_death_or_observe/ answer no]&lt;br /&gt;
* investigate the damage type of doomsday launchers and how they interact qith armor&lt;br /&gt;
* Investigate EMI Dynamo destruction causing unconsciousness brain implanted pawns &lt;br /&gt;
* Investigate animal haulers not triggering proximity activators for mortar shell plant&lt;br /&gt;
* Investigate EMP shells having a larger explosion radius when exploding on ground than when fired.&lt;br /&gt;
* Investigate effect of emp and mortars (on top of and next to) on broadshield packs&lt;br /&gt;
* Investigate Using [[Psycasts|beckon]] not waking mech clusters.&lt;br /&gt;
* Investigate if beautiful colonists get better trade prices, and ugly colonists get bad trade prices.&lt;br /&gt;
* Investigate why [[End table]]s don't inherit the ability to eat on them from TableBase, is it because they lack the &amp;lt;compClass&amp;gt;CompGatherSpot&amp;lt;/compClass&amp;gt;?&lt;br /&gt;
* Investigate [[Injury]] implies that beds add heal rate, This needs better investigation and integration with pages such as [[Hospital bed]]. It also implies a use for [[Animal bed]]s - namely that it helps animals heal faster. &lt;br /&gt;
* Investigate AP mechanics for [[Armor]] - it appears that damageDef.armorCategory.armorRatingStat is set only once, at the start, and thus even if the first layer mitigates the damage and changes the damage type from sharp to blunt, it continues to use the Sharp armor ratings of lower layers. i.e. if the damage is sharp, and a duster mitigates the damage, halving it and changing it to blunt, the flak vest still uses the 100% sharp armor rating when performing its penetration checks. This is important as it makes layers significantly better. Thick armor mod author mentions this on the mod page&lt;br /&gt;
* Investigate if the table on [[Long range mineral scanner]] is incorrect - the code at RimWorld\Data\Core\Defs\Sites\Parts\PreciousLump.xml seems to imply that the the produce should have a totalValueRange between 3500 silver and 5000 silver. If that is the case, the values for several BUT NOT ALL of the entries are currently wrong.&lt;br /&gt;
&lt;br /&gt;
=== EVENTUAL TODO === &lt;br /&gt;
* Diversify page formatting from '''Acquisition''' and '''Analysis''' to '''Acquisition''', '''Summary''' and '''Analysis''' where summary is used to describe the facts of the thing seperate to the analysis ofr the thing. E.g. [[Phoenix armor]] - Summary: its armor, it covers this area, it reduces a pawns falmmabiltiy. Anaylsis - Its potentitally the best armor in the game due to capping sharp etc.&lt;br /&gt;
&lt;br /&gt;
* [[User:Harakoni/MarketValueChecker]]'s table.&lt;br /&gt;
&lt;br /&gt;
* [[Damage Types]] needs in-depth analysis and extrapolation.&lt;br /&gt;
* [[RimWorld Wiki talk:To-do]] The auto lists are broken. Fix how?&lt;br /&gt;
* [[RimWorld Wiki:To-do]] Versions need to be integrated and the lists deleted as you go.&lt;br /&gt;
* Bring everything under the same Into; Acquisition; Analysis; Tables; Trivia; Version History; format&lt;br /&gt;
*[[Talk:Cover_List]]&lt;br /&gt;
====Old sprites====&lt;br /&gt;
*[[:File:DropPod.png]]&lt;br /&gt;
*[[:File:Chocolate.png]]&lt;br /&gt;
*[[:File:Pemmican.png]]&lt;br /&gt;
*[[:File:Cecropia tree.png]]&lt;br /&gt;
*[[:File:Warg.png]]&lt;br /&gt;
*[[:File:Minigun.png]]&lt;br /&gt;
*[[:File:Pila.png]]&lt;br /&gt;
*[[:File:HeavyChargeBlaster.png]]&lt;br /&gt;
*[[:File:Vitals monitor.png]]&lt;br /&gt;
([[:File:MoisturePump.png]]&lt;br /&gt;
*[[:File:Husky.png]]&lt;br /&gt;
*[[:File:InfernoCannon.png]] &lt;br /&gt;
*[[:File:Hyperweave.png]]&lt;br /&gt;
*[[:File:Herbal medicine.png]]&lt;br /&gt;
*[[:File:Glitterworld medicine.png]]&lt;br /&gt;
*[[:File:medicine.png]]&lt;br /&gt;
*[[:File:Steel.png]]&lt;br /&gt;
*[[:File:Neutroamine.png]]&lt;br /&gt;
*[[:File:MechanoidCentipede.png]]&lt;br /&gt;
*[[:File:MechanoidScyther.png]]&lt;br /&gt;
*[[:File:Megascarab.png]]&lt;br /&gt;
*[[:File:Flak pants.png]]&lt;br /&gt;
*[[:File:Club.png]]&lt;br /&gt;
*[[:File:EMPGrenade.png]]&lt;br /&gt;
*[[:File:GreatBow.png]]&lt;br /&gt;
*[[:File:FragGrenades.png]]&lt;br /&gt;
*[[:File:InfernoCannon.png]]&lt;br /&gt;
*[[:File:Molotov.png]]&lt;br /&gt;
*[[:File:Elephant tusk.png]]&lt;br /&gt;
*[[:File:AI persona core.png]]&lt;br /&gt;
*[[:File:Chemfuel.png]]&lt;br /&gt;
*[[:File:High-explosive shell.png]]&lt;br /&gt;
*[[:File:Ship computer core.png]]&lt;br /&gt;
*[[:File:SolarCollector.png]]&lt;br /&gt;
*[[:File:Tube television.png]]&lt;br /&gt;
&lt;br /&gt;
====Textiles====&lt;br /&gt;
*Finish updating textiles:&lt;br /&gt;
**[[Alpaca wool]]&lt;br /&gt;
**[[Bison wool]]&lt;br /&gt;
**[[Cloth]]&lt;br /&gt;
**[[Muffalo wool]]&lt;br /&gt;
**[[Sheep wool]]&lt;br /&gt;
**[[Megasloth wool]]&lt;br /&gt;
&lt;br /&gt;
====Thoughts====&lt;br /&gt;
* Update: &lt;br /&gt;
**[[Thoughts/Memory Death]]&lt;br /&gt;
**[[Thoughts/Exotic]]&lt;br /&gt;
**[[Thoughts/Drugs]]&lt;br /&gt;
* Add: &lt;br /&gt;
**[[Thoughts/Anesthetic]]&lt;br /&gt;
**[[Thoughts/Memory Lost]]&lt;br /&gt;
**[[Thoughts/Memory Special]]&lt;br /&gt;
* [[Modding_Tutorials/Assets]]&lt;br /&gt;
&lt;br /&gt;
====Traits====&lt;br /&gt;
* [[Persona weapon#Psychic hypersensitizer]]&lt;br /&gt;
* [[Persona weapon#Psychic sensitizer]]&lt;br /&gt;
* [[Persona weapon#Psychic quiet]]&lt;br /&gt;
* [[Persona weapon#Psychic fog]]&lt;br /&gt;
* [[Persona weapon#Kind thoughts]]&lt;br /&gt;
* [[Persona weapon#Calm thoughts]]&lt;br /&gt;
* [[Persona weapon#Mad muttering]]&lt;br /&gt;
* [[Persona weapon#Mad wailing]]&lt;br /&gt;
* [[Persona weapon#Kill-happy]]&lt;br /&gt;
* [[Persona weapon#Kill-sorrow]]&lt;br /&gt;
* [[Persona weapon#Kill thirst]]&lt;br /&gt;
* [[Persona weapon#Psy-meditative]]&lt;br /&gt;
* [[Persona weapon#Painless]]&lt;br /&gt;
* [[Persona weapon#Hunger pangs]]&lt;br /&gt;
* [[Persona weapon#Neural cooling]]&lt;br /&gt;
* [[Persona weapon#Freewielder]]&lt;br /&gt;
&lt;br /&gt;
====Pawns====&lt;br /&gt;
*Standardize:&lt;br /&gt;
**[[Mercenaries/Pawns]]&lt;br /&gt;
**[[Tribes/Pawns]]&lt;br /&gt;
**[[Outlanders/Pawns]]&lt;br /&gt;
**[[Ancients/Pawns]]&lt;br /&gt;
**[[Pirates/Pawns]]&lt;br /&gt;
**[[Empire/Pawns]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*Hediffs should be in an expandable section to prevent table bloat, likely in their own section.&lt;br /&gt;
*Available apparel like weapons has&lt;br /&gt;
*Traits sortable? Probs not&lt;br /&gt;
&lt;br /&gt;
=== Infobox Updates ===&lt;br /&gt;
[[Template: Infobox main]] is in need of some TLC.&lt;br /&gt;
* &amp;lt;big&amp;gt;'''ADD A TESTING MODE THAT STOPS PROPERTIES FROM BEING SET AND PREVENTS PAGES FROM BEING LOGGED THAT SHOULDN'T'''&amp;lt;/big&amp;gt;&lt;br /&gt;
* [[mechanoids]] should have their shred returns mentioned in their infoboxc like butchery. &lt;br /&gt;
* Searhc in stuff tags &amp;quot; &amp;quot; + &amp;lt;stuff tags&amp;gt; = the first word will always start at 1 not 0?&lt;br /&gt;
* |imagesize = 192px&lt;br /&gt;
* Implement Ingredient List but for stuffable - i.e. this list of items is stuffable with metallics, this one with stony etc. and then link each metal, stone, wood etc to their respecitve type. &lt;br /&gt;
* General clean up cleanup. Weapons especially.&lt;br /&gt;
* Animal DPS doesn't take into account the chanceFactor - e.g. Wargs.&lt;br /&gt;
*To add&lt;br /&gt;
**5th and 6th attack for animals  - [[scyther]]s have left and right cut and stab AND a head but.&lt;br /&gt;
** Add stack size to allow for subsuming the role of define.&lt;br /&gt;
**Add Research requirement to infobox?&lt;br /&gt;
***Add research and resources and crafting skill required to info box main, then make a template to automatically make that information show up in acquisition. Additionally the [[Research]] page can have lists of everything that the research unlocks&lt;br /&gt;
** Automatically add types to categories?&lt;br /&gt;
**Scale image with the size ingame? As in if its 3x2 in game, scale it so that its 3x larger than a normal image? Might be a way to stndarzie on an image szie&lt;br /&gt;
**[[Move speed]] penalty for Armor?&lt;br /&gt;
&lt;br /&gt;
* How should we handle extra effects of weapons - EMP damage on Zeushammer, Fire on Plasmasword, Toxic Buildup on Venom Fangs/Talons and how should we display them on tables without messing with automated math. Should we just add new &amp;quot;special damage&amp;quot;, &amp;quot;special damage type&amp;quot; and &amp;quot;special damage DPS&amp;quot; categories to infobox? Or is that bloating and already full infobox? Should it just be in the article? Then automated comparison tables won't display it.&lt;br /&gt;
&lt;br /&gt;
* [[Template talk:Infobox main]] STDT tables don't play nice with infoboxes. Wikitables do. Why? How fix? Fix. [[User:Jimyoda|Jimyoda]] is working on it.&lt;br /&gt;
**There is a partial fix with the use of the external tags, but its still not ideal&lt;br /&gt;
**The difference seems to be in how the &amp;quot;table&amp;quot; and &amp;quot;wikitable&amp;quot; classes are defined.&lt;br /&gt;
**Table seems to be defined at [[MediaWiki:Common.css]] but I can't find any definition anywhere for wikitable to compare. &lt;br /&gt;
&lt;br /&gt;
* Link [[Damage Types]] to infobox main? Standarize?&lt;br /&gt;
&lt;br /&gt;
=== Feed back Needed!(If you're reading this, please weigh in) ===  &lt;br /&gt;
* Should tables for ranged weapons blank Accuracy and DPS on ranges the weapons can't reach? Just DPS? The range stat IS displayed in game, despite the weapon never using it. We could split the difference and have Accuracy displayed but DPS not. This would allow easy comparisons with things like [[Weapons#Ranged Weapons]] without having to check the range for each weapon. Instead you can just sort by the DPS value.&lt;br /&gt;
::I'd prefer it if the values were not even there. Effective DPS is 0 anyway and it's obvious at first glance that the weapon is useless at that range. Same goes for accuracy. If it's an issue that sorting would become less useful... that's a different story. Can't judge that until I see it in action. [[User:Dr. Strangelove|Dr. Strangelove]] ([[User talk:Dr. Strangelove|talk]]) 15:36, 2 March 2021 (UTC)&lt;br /&gt;
::Also, having DPS for something like the Doomsday rocket launcher is a bit misleading. [[User:Dr. Strangelove|Dr. Strangelove]] ([[User talk:Dr. Strangelove|talk]]) 19:18, 17 May 2021 (UTC)&lt;br /&gt;
&lt;br /&gt;
*Finding information on natural walls is current unintuitive or outright unavaialbe. Atm I've created a secion on the [[Structures]] page but this is not great - while it puts it next to the other walls, its not an intuitive place to find that information. This is largely because of the intial structure of the wiki to match the menu structure. This is causing issues with things such as where to place uncraftable items such as [[Vanometric power cell]]s. But back on topic:&lt;br /&gt;
**Should we create pages for each Ore and Natural [[wall]] types&lt;br /&gt;
**Should we create superpages for each stone type? With the stats for the wall, blocks and stone chunk all on one pahe&lt;br /&gt;
**SHould we create an &amp;quot;ores&amp;quot; or &amp;quot;natural walls&amp;quot; page? &lt;br /&gt;
**Should we abandon the menu-inspired nav structure? (Ultimately likely to be better, but a massive project)&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86112</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86112"/>
		<updated>2021-05-17T14:33:47Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(pFrame.args) do&lt;br /&gt;
    if i &amp;gt; 1 then&lt;br /&gt;
      table.insert(qFrame.args, v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
  mw.logObject(pFrame.args.SMWP, 'pFrame.args.SMWP')&lt;br /&gt;
  mw.logObject(ibPropValue, 'ibPropValue')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP and ibPropValue then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP .. '=' .. ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86111</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86111"/>
		<updated>2021-05-17T14:28:28Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---Building---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Apparel--&amp;gt;&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- All pawns (animals, humanoids, mechanoids) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Animal Health ---&amp;gt;&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{User:Dr. Strangelove/Template:Infobox/sandbox|{{{movespeed|}}}|statBases|MoveSpeed|title=Some movin|SMWP=Move Speed Base}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Buildings--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Furniture--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Plants--&amp;gt;&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Weapons--&amp;gt;&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86110</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86110"/>
		<updated>2021-05-17T14:26:33Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(pFrame.args) do&lt;br /&gt;
    if i &amp;gt; 1 then&lt;br /&gt;
      table.insert(qFrame.args, v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
  mw.logObject(pFrame.args.SMWP, 'pFrame.args.SMWP')&lt;br /&gt;
  mw.logObject(ibPropValue, 'ibPropValue')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86109</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86109"/>
		<updated>2021-05-17T14:19:21Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(pFrame.args) do&lt;br /&gt;
    if i &amp;gt; 1 then&lt;br /&gt;
      table.insert(qFrame.args, v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86108</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86108"/>
		<updated>2021-05-17T14:18:46Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(pFrame.args) do&lt;br /&gt;
    if i &amp;gt; 0 then&lt;br /&gt;
      table.insert(qFrame.args, v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86107</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86107"/>
		<updated>2021-05-17T14:18:07Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for i,v in ipairs(pFrame.args) do&lt;br /&gt;
    if i &amp;gt; 0 then&lt;br /&gt;
      table.insert(qFrame, v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86106</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86106"/>
		<updated>2021-05-17T14:17:13Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if not ibPropValue then&lt;br /&gt;
    for i,v in ipairs(pFrame.args) do&lt;br /&gt;
      if i &amp;gt; 0 then&lt;br /&gt;
        table.insert(qFrame, v)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  qFrame.args.label = 'hare'&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86105</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86105"/>
		<updated>2021-05-17T14:16:53Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if not ibPropValue then&lt;br /&gt;
    for i,v in ipairs(pFrame.args) do&lt;br /&gt;
      if i &amp;gt; 0 then&lt;br /&gt;
        table.insert(qFrame, v)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  qFrame.args.label = hare&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86104</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86104"/>
		<updated>2021-05-17T14:16:33Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if not ibPropValue then&lt;br /&gt;
    for i,v in ipairs(pFrame.args) do&lt;br /&gt;
      if i &amp;gt; 0 then&lt;br /&gt;
        table.insert(qFrame, v)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  qFrame.args.label = subpagename&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86103</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86103"/>
		<updated>2021-05-17T14:16:13Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if not ibPropValue then&lt;br /&gt;
    for i,v in ipairs(pFrame.args) do&lt;br /&gt;
      if i &amp;gt; 0 then&lt;br /&gt;
        table.insert(qFrame, v)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  qFrame.args.label = label&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  mw.logObject(q, 'q')&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86102</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86102"/>
		<updated>2021-05-17T14:15:36Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if not ibPropValue then&lt;br /&gt;
    for i,v in ipairs(pFrame.args) do&lt;br /&gt;
      if i &amp;gt; 0 then&lt;br /&gt;
        table.insert(qFrame, v)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
mw.logObject(qFrame, 'qFrame')&lt;br /&gt;
  qFrame.args.label = label&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86101</id>
		<title>User:Dr. Strangelove/Template:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=User:Dr._Strangelove/Template:Infobox&amp;diff=86101"/>
		<updated>2021-05-17T14:13:57Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#vardefine:Name|{{{name|{{BASEPAGENAME}}}}}}} &amp;lt;div class=&amp;quot;infobox float:right; {{#if:{{{1|}}}|{{#switch:{{{1}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt; animal = c_08 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; plant = c_14 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; weapon = c_06 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; area = c_11 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; structure = c_02 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; production = c_25 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; security = c_10 |&amp;lt;!--&lt;br /&gt;
--&amp;gt; furniture = c_01 |&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;heading&amp;quot;&amp;gt;{{#var:Name}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;image_wrapper&amp;quot; title=&amp;quot;{{#var:Name}}&amp;quot;&amp;gt;[[File:{{{image|{{#var:Name}}}}}|{{{imagesize|250px}}}|link={{#var:Name}}|{{#var:Name}}]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;text-center&amp;quot; style=&amp;quot;display:block; font-size:89%; padding: .5em;&amp;quot;&amp;gt;{{#if:{{{description|}}}|{{{description|}}}{{#set:Description = {{{description|}}}}}}}&amp;lt;/p&amp;gt;{{#set:Image = [[File:{{{image|{{#var:Name}}.png}}}]]}}&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
{{#set:Name = {{#var:Name}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important'&amp;gt;'''Base Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
;Type&lt;br /&gt;
:[[{{{type}}}]]{{#set:Type = {{{type|}}}}}{{#if: {{{type2|}}} |&amp;amp;#32;&amp;amp;ndash;&amp;amp;#32; [[{{{type2}}}]]{{#set:Type2 = {{{type2|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hp|}}}|{{#set:Max Hit Points Base = {{{hp|}}} }}&lt;br /&gt;
;HP&lt;br /&gt;
:{{{hp|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deterioration|}}}|{{#set:Deterioration Rate Base = {{{deterioration|}}} }}&lt;br /&gt;
;Deterioration Rate&lt;br /&gt;
:{{{deterioration|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- If market value defined, use that, else, if possible, calculate the value and use that instead but make a note that it is calculated.--&amp;gt;&lt;br /&gt;
{{#if: {{{marketvalue|}}}|{{#set: Market Value Base = {{{marketvalue|}}} }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{{marketvalue|}}}}}&amp;amp;nbsp;{{Icon Small|silver}} | {{#if: {{{resource 1|}}}| {{#if: {{{work to make|}}} | {{#ifeq: {{{resource 1|}}} | Stuff | | {{#set: Market Value Base = {{Market Value Calculator}} }} {{#set: Calculated Market Value  = True }}&lt;br /&gt;
;Market Value&lt;br /&gt;
:{{Market Value | {{Market Value Calculator}}}}&amp;amp;nbsp;{{Icon Small|silver}}  {{H:title|link=no|This value is automatically calculated by the wiki and may not be correct|&amp;lt;sup&amp;gt;[Note]&amp;lt;/sup&amp;gt;}} }} }} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{beauty|}}}|{{#set:Beauty Base = {{{beauty|}}} }}&lt;br /&gt;
;Beauty&lt;br /&gt;
:[[Beauty Base::{{{beauty|}}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mass base|}}}|{{#set:Mass Base = {{{mass base|}}} }}&lt;br /&gt;
;Mass&lt;br /&gt;
:{{{mass base|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{flammability|}}}|{{#set:Flammability Base = {{{flammability|}}} }}&lt;br /&gt;
;Flammability&lt;br /&gt;
:{{#expr:{{{flammability|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{path cost|}}}|{{#set:Path Cost = {{{path cost|}}} }}&lt;br /&gt;
;Path Cost&lt;br /&gt;
:{{{path cost|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{class|}}}|{{#set:Class = {{{class|}}} Weapons}}&lt;br /&gt;
;Class&lt;br /&gt;
:[[{{{class|}}} Weapons|{{{class|}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---Building---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{placeable|}}}|{{#set:Placeable = {{{placeable|}}} }}&lt;br /&gt;
;Placeable&lt;br /&gt;
:{{{placeable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rotatable|}}}|{{#set:Rotatable = {{{rotatable|}}} }}&lt;br /&gt;
;Rotatable&lt;br /&gt;
:{{{rotatable|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{size|}}}|{{#set:Size = {{{size|}}} }}&lt;br /&gt;
;Size&lt;br /&gt;
:{{{size|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{efficiency|}}}|{{#set:Efficiency= {{{efficiency|}}} }}&lt;br /&gt;
;Efficiency&lt;br /&gt;
:{{{efficiency|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Apparel--&amp;gt;&lt;br /&gt;
{{#if:  {{{insulationcold|}}} {{{insulationheat|}}} {{{insulationcoldfactor|}}} {{{insulationheatfactor|}}} {{{armorsharp|}}} {{{armorblunt|}}} {{{armorheat|}}} {{{armorsharpfactor|}}} {{{armorbluntfactor|}}} {{{armorheatfactor|}}} {{{painshockthreshold|}}}  {{{coverage|}}} {{{layer|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Apparel'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcold|}}}|{{#set:Insulation - Cold Base= {{{insulationcold|}}} }}&lt;br /&gt;
;Insulation - Cold&lt;br /&gt;
:{{{insulationcold|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheat|}}}|{{#set:Insulation - Heat Base= {{{insulationheat|}}} }}&lt;br /&gt;
;Insulation - Heat&lt;br /&gt;
:{{{insulationheat|}}}&amp;amp;deg;C}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationcoldfactor|}}}|{{#set:Insulation Factor - Cold= {{{insulationcoldfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Cold}}&lt;br /&gt;
:{{{insulationcoldfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{insulationheatfactor|}}}|{{#set:Insulation Factor - Heat= {{{insulationheatfactor|}}} }}&lt;br /&gt;
;{{H:title|link=no|See Apparel for how this is applied|Insulation Factor - Heat}}&lt;br /&gt;
:{{{insulationheatfactor|}}}x }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharp|}}}|{{#set:Armor - Sharp = {{{armorsharp|}}} }}&lt;br /&gt;
;Armor - Sharp&lt;br /&gt;
:{{{armorsharp|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorblunt|}}}|{{#set:Armor - Blunt= {{{armorblunt|}}} }}&lt;br /&gt;
;Armor - Blunt&lt;br /&gt;
:{{{armorblunt|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheat|}}}|{{#set:Armor - Heat = {{{armorheat|}}} }}&lt;br /&gt;
;Armor - Heat&lt;br /&gt;
:{{{armorheat|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorsharpfactor|}}}|{{#set:Armor Factor - Sharp = {{{armorsharpfactor|}}} }}&lt;br /&gt;
;Armor Factor - Sharp&lt;br /&gt;
:{{{armorsharpfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorbluntfactor|}}}|{{#set:Armor Factor - Blunt= {{{armorbluntfactor|}}} }}&lt;br /&gt;
;Armor Factor - Blunt&lt;br /&gt;
:{{{armorbluntfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorheatfactor|}}}|{{#set:Armor Factor - Heat = {{{armorheatfactor|}}} }}&lt;br /&gt;
;Armor Factor - Heat&lt;br /&gt;
:{{{armorheatfactor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{painshockthreshold|}}}|{{#set:Pain Shock Threshold = {{{painshockthreshold|}}} }}&lt;br /&gt;
;Pain Shock Threshold&lt;br /&gt;
:{{{painshockthreshold|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{coverage|}}}|{{#set:Coverage = {{{coverage|}}} }}&lt;br /&gt;
;Coverage&lt;br /&gt;
:{{{coverage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{layer|}}}|{{#set:layer= {{{layer|}}} }}&lt;br /&gt;
;Layer&lt;br /&gt;
:{{{layer|}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- All pawns (animals, humanoids, mechanoids) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Animal Health ---&amp;gt;&lt;br /&gt;
{{#if:  {{{movespeed|}}} {{{massyoung|}}} {{{massjuvenile|}}} {{{massadult|}}}  {{{healthscale|}}} {{{bodysize|}}} {{{hungerrate|}}} {{{diet|}}} {{{lifespan|}}} {{{manhunter|}}} {{{manhuntertame|}}} {{{trainable|}}} {{{wildness|}}} {{{petness|}}} {{{predator|}}} {{{nuzzleMtb|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Pawn Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}}|Animals|{{#set: Type = {{{type2|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{User:Dr. Strangelove/Template:Infobox/sandbox|{{{movespeed|}}}|statBases|MoveSpeed|title=Some movin}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massyoung|{{{massadult|}}}}}}|{{#set:Mass - Young= {{{massyoung|{{#expr:{{{massadult}}}/5}}}}} }}&lt;br /&gt;
;Mass - Young&lt;br /&gt;
:{{{massyoung|{{#expr:{{{massadult}}}/5}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massjuvenile|{{{massadult|}}}}}}|{{#set:Mass - Juvenile= {{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} }}&lt;br /&gt;
;Mass - Juvenile&lt;br /&gt;
:{{{massjuvenile|{{#expr:{{{massadult}}}/2}}}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{massadult|}}}|{{#set:Mass - Adult= {{{massadult|}}} }}&lt;br /&gt;
;Mass - Adult&lt;br /&gt;
:{{{massadult|}}} kg}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{healthscale|}}}|{{#set: Health Scale = {{{healthscale|}}} }}&lt;br /&gt;
;Health Scale&lt;br /&gt;
:{{{healthscale|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|{{#set:Body Size = {{{bodysize|}}} }}&lt;br /&gt;
;Body Size&lt;br /&gt;
:{{{bodysize|}}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: CarryingCapacity | {{#expr: 75 * {{{bodysize|}}} round0}} }}&lt;br /&gt;
  {{#set: Carrying Capacity = {{#var: CarryingCapacity}} }}&lt;br /&gt;
;Carrying Capacity&lt;br /&gt;
:{{#var: CarryingCapacity}}&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: FilthRate | {{#expr: 1.25 * {{{bodysize|}}} * {{#if: {{{petness|}}}|{{#expr: 1 - {{{petness|}}} }}|1}} round2}} }}&lt;br /&gt;
  {{#set: Animal Filth Rate = {{#var: FilthRate}} }}&lt;br /&gt;
;{{H:title|link=no|The average amount of filth produced on constructed floors per 1000 cells walked by this creature.|Filth Rate}}&lt;br /&gt;
:{{#var: FilthRate}} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{hungerrate|}}}|{{#set:Base Hunger Rate = {{{hungerrate|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition lost per day.|Hunger Rate}}&lt;br /&gt;
:{{#expr: {{{hungerrate|}}} * 1.6 round2}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{diet|}}}|{{#set:Diet ={{{diet|}}} }}&lt;br /&gt;
;Diet&lt;br /&gt;
:{{{diet|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespan|}}}|{{#set:Life Expectancy = {{{lifespan|}}} }}&lt;br /&gt;
;Life Expectancy&lt;br /&gt;
:{{{lifespan|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhunter|}}}|{{#set:Turn Manhunter Chance When Attacked = {{{manhunter|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter when attacked.|Manhunter Chance}}&lt;br /&gt;
:{{#expr: {{{manhunter|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{manhuntertame|}}}|{{#set:Turn Manhunter Chance When Taming = {{{manhuntertame|}}} }}&lt;br /&gt;
;{{H:title|link=no|Chance of this animal turning manhunter on a failed taming attempt.|Manhunter Chance (Taming)}}&lt;br /&gt;
:{{#expr: {{{manhuntertame|}}} * 100}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{trainable|}}}|{{#set:Trainable Intelligence = {{{trainable|}}} }}&lt;br /&gt;
;Trainable Intelligence&lt;br /&gt;
:{{{trainable|}}}&lt;br /&gt;
{{#switch: {{{trainable|}}}&lt;br /&gt;
| none = {{#set: Can Train Guard = no |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| simple = {{#set: Can Train Guard = yes |Can Train Attack = no |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| intermediate = {{#set: Can Train Guard = yes |Can Train Attack = yes |Can Train Rescue = no |Can Train Haul = no}}&lt;br /&gt;
| advanced = {{#set: Can Train Guard = yes |Can Train Attack = yes}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.65|{{#set: Can Train Rescue = yes}}|{{#set: Can Train Rescue = no}}}}{{#ifexpr: {{{bodysize|}}} &amp;gt;= 0.40|{{#set: Can Train Haul = yes}}|{{#set: Can Train Haul = no}}}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wildness|}}}|{{#set:Wildness = {{{wildness|}}} }}&lt;br /&gt;
;{{H:title|link=no|Wilder creatures are naturally more difficult to tame, train, and handle.|Wildness}}&lt;br /&gt;
:{{#expr: {{{wildness|}}} * 100 round0}}%&lt;br /&gt;
&lt;br /&gt;
  {{#vardefine: MinHandlingSkill |&lt;br /&gt;
    {{#ifexpr: &lt;br /&gt;
      {{{wildness|}}} &amp;lt; .2|0&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .45|1&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .55|4&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .75|5&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .8|7&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .9|8&lt;br /&gt;
      |{{#ifexpr: {{{wildness|}}} &amp;lt; .97|9&lt;br /&gt;
      |10}} }} }} }} }} }} }} }}&lt;br /&gt;
  {{#set:Minimum Handling Skill = {{#var: MinHandlingSkill}} }}&lt;br /&gt;
  {{#ifeq: {{#var: MinHandlingSkill}}|0||&lt;br /&gt;
;{{H:title|link=no|This creature cannot be tamed, trained, or commanded by anyone with less than this skill in animals.|Minimum Handling Skill}}&lt;br /&gt;
:{{#var: MinHandlingSkill}} }} &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{petness|}}}|{{#set: Petness = {{{petness|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{predator|}}}|true|{{#set:Is Predator = true}}|}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nuzzleMtb|}}}|{{#set: Nuzzle Mtb Hours = {{{nuzzleMtb|}}} }}&lt;br /&gt;
;{{H:title|link=no|How often an animal will nuzzle friendly colonists, on average.|Nuzzle Interval}}&lt;br /&gt;
{{#ifexpr: {{{nuzzleMtb|}}} &amp;lt;= 24&lt;br /&gt;
  |{{#switch: {{{nuzzleMtb|}}}&lt;br /&gt;
     |24 = :1&amp;amp;nbsp;day&lt;br /&gt;
     |1 = :1&amp;amp;nbsp;hour&lt;br /&gt;
     |#default = :{{{nuzzleMtb|}}}&amp;amp;nbsp;hours}}&lt;br /&gt;
  |:{{#expr: {{{nuzzleMtb|}}} / 24 round1}}&amp;amp;nbsp;days}} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{maturityage|}}}|{{#set: Maturity Age = {{{maturityage|}}} }}&lt;br /&gt;
;Maturity Age&lt;br /&gt;
:{{{maturityage|}}} years {{#ifexpr: {{{maturityage|}}} &amp;lt; 1 | ({{formatnum: {{#expr: ({{formatnum:{{{maturityage|}}}|R}}*60)round 0}} }} days) }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min comfortable temperature|}}}|{{#set: Min Comfortable Temperature = {{{min comfortable temperature|}}} }}&lt;br /&gt;
{{#if: {{{max comfortable temperature|}}}|{{#set: Max Comfortable Temperature = {{{max comfortable temperature|}}} }}&lt;br /&gt;
;Comfortable Temp Range&lt;br /&gt;
:{{{min comfortable temperature|}}}&amp;amp;deg;C - {{{max comfortable temperature|}}}&amp;amp;deg;C}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{livesin_aridshrubland|}}}|{{#set: Lives In Arid Shrubland = true}} }}&lt;br /&gt;
{{#if: {{{livesin_borealforest|}}}|{{#set: Lives In Boreal Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_desert|}}}|{{#set: Lives In Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_extremedesert|}}}|{{#set: Lives In Extreme Desert = true}} }}&lt;br /&gt;
{{#if: {{{livesin_icesheet|}}}|{{#set: Lives In Icesheet = true}} }}&lt;br /&gt;
{{#if: {{{livesin_seaice|}}}|{{#set: Lives In Sea Ice = true}} }}&lt;br /&gt;
{{#if: {{{livesin_temperateforest|}}}|{{#set: Lives In Temperate Forest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tropicalrainforest|}}}|{{#set: Lives In Tropical Rainforest = true}} }}&lt;br /&gt;
{{#if: {{{livesin_tundra|}}}|{{#set: Lives in Tundra = true}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{meatyield|}}} {{{meatname|}}} {{{leathername|}}} {{{leatheryield|}}} {{{milk|}}} {{{milktime|}}} {{{wool|}}} {{{woolname|}}} {{{sheartime|}}} {{{eggsmin|}}} {{{eggsmax|}}}  {{{eggtime|}}} {{{eggs_avg|}}} {{{eggs_unfertilized|}}} {{{gestation|}}} {{{offspring|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Production'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{{type|}}} | Animals |&lt;br /&gt;
  {{#vardefine: MeatName | {{{meatname | {{#var:Name}} meat}}} }}&lt;br /&gt;
  {{#vardefine: LeatherName | {{{leathername | {{#var:Name}} leather}}} }} &lt;br /&gt;
  {{#if: {{{is exotic species|}}}|{{#set: Is Exotic Species = true}}|{{#set: Is Exotic Species = false}}}}|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#var:LeatherName }}|&lt;br /&gt;
  {{#set: Leather Name =  {{#var:LeatherName}}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{bodysize|}}}|&lt;br /&gt;
&lt;br /&gt;
{{#if:{{#var:MeatName}}|{{#vardefine: MeatYield | {{{meatyield | {{#expr: 90 * {{{bodysize}}} round 0}}}}} }}&lt;br /&gt;
  {{#set: Meat Yield = {{#var: MeatYield}} }}&lt;br /&gt;
;Meat Yield&lt;br /&gt;
:{{#var: MeatYield}}  [[Meat|{{lc:{{#var:MeatName}}}}]]}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Use leatheryield when set, otherwise (incorrectly in some cases) assume 30 * bodysize --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- See Property:Leather_Yield for details --&amp;gt;&lt;br /&gt;
{{#if:{{#var:LeatherName}}|{{#vardefine: LeatherYield | {{{leatheryield | {{#expr: 30 * {{{bodysize}}} round 0}} }}} }}&lt;br /&gt;
  {{#set: Leather Yield = {{#var: LeatherYield}} }}&lt;br /&gt;
;Leather Yield&lt;br /&gt;
:{{#var: LeatherYield}} [[{{#var: LeatherName}}|{{lc:{{#var: LeatherName}}}}]] }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milk|}}}|{{#set: Milk Amount = {{{milk|}}} }}&lt;br /&gt;
;[[Milk]] Amount&lt;br /&gt;
:{{{milk|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{milktime|}}}|{{#set: Milking Interval Days = {{{milktime|}}} }}&lt;br /&gt;
{{#set: Daily Milk Average = {{#expr: {{{milk|}}}/{{{milktime|}}}round2}} }}&lt;br /&gt;
;Milking Interval&lt;br /&gt;
:{{{milktime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{wool|}}}|&lt;br /&gt;
  {{#set: Wool Amount = {{{wool|}}}}}&lt;br /&gt;
  {{#vardefine: WoolName | {{{woolname | {{#var:Name}} wool}}} }}&lt;br /&gt;
  {{#set: Wool Name =  {{#var:WoolName}}}}&lt;br /&gt;
;Wool Amount&lt;br /&gt;
:{{{wool|}}} [[{{#var: WoolName}}|{{lc:{{#var: WoolName}}}}]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sheartime|}}}|{{#set: Shearing Interval Days = {{{sheartime|}}} }}&lt;br /&gt;
{{#set: Daily Wool Average = {{#expr: {{{wool|}}}/{{{sheartime}}}round2}} }}&lt;br /&gt;
;Shearing Interval&lt;br /&gt;
:{{{sheartime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggsmin|}}}|{{#set: Eggs Per Clutch Minimum = {{{eggsmin|}}} }}&lt;br /&gt;
{{#if: {{{eggsmax|}}}|{{#set: Eggs Per Clutch Maximum = {{{eggsmax|}}} }} }}&lt;br /&gt;
;Eggs Per Clutch&lt;br /&gt;
:{{#show: {{#var:Name}}|?Eggs Per Clutch Minimum|link=none}} to {{#show: {{#var:Name}}|?Eggs Per Clutch Maximum|link=none}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggtime|}}}|{{#set: Egg Laying Interval = {{{eggtime|}}} }}&lt;br /&gt;
{{#set: Eggs Per Season Average = {{#expr: {{{eggs_avg|}}}/{{{eggtime|}}}*15 round 2}} }}&lt;br /&gt;
;Egg Laying Interval&lt;br /&gt;
:{{{eggtime|}}}&amp;amp;nbsp;days}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_avg|}}}|{{#set: Eggs Per Clutch Average = {{{eggs_avg|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{eggs_unfertilized|}}}|{{#set: Can Lay Unfertilized Eggs = {{{eggs_unfertilized|}}} }}&lt;br /&gt;
;Can Lay Unfertilized Eggs&lt;br /&gt;
:{{{eggs_unfertilized|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{gestation|}}}|{{#set: Gestation Period Days = {{{gestation|}}} }}&lt;br /&gt;
;Gestation Period&lt;br /&gt;
{{#switch: {{{gestation|}}}&lt;br /&gt;
| N/A = :N/A&lt;br /&gt;
| 1 = :{{{gestation|}}} day&lt;br /&gt;
| #default = :{{{gestation|}}} days&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{offspring|}}}|{{#set: Offspring Per Birth = {{{offspring|}}} }}&lt;br /&gt;
;Offspring Per Birth&lt;br /&gt;
:{{{offspring|}}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Buildings--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{power|}}}|{{#set:Power Consumption = {{{power|}}} }}&lt;br /&gt;
;Power&lt;br /&gt;
:{{{power|}}}W}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{facility|}}}|{{#set:Facility = {{{facility|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Floors--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{speed|}}}|{{#set:Move Speed Factor = {{{speed|}}} }}&lt;br /&gt;
;Move Speed Factor&lt;br /&gt;
:{{#expr:{{{speed|}}}*100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Furniture--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{immunity gain speed factor|}}}|{{#set:Immunity Gain Speed Factor = {{{immunity gain speed factor|}}} }}&lt;br /&gt;
;Immunity Gain Speed Factor&lt;br /&gt;
:{{{immunity gain speed factor|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rest effectiveness|}}}|{{#set:Rest Effectiveness = {{{rest effectiveness|}}} }}&lt;br /&gt;
;Rest Effectiveness&lt;br /&gt;
:{{{rest effectiveness|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort|}}}|{{#set:Comfort Base = {{{comfort|}}} }}&lt;br /&gt;
;Comfort&lt;br /&gt;
:{{{comfort|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{comfort offset|}}}|{{#set:Comfort Offset = {{{comfort offset|}}} }}&lt;br /&gt;
;Comfort Offset &lt;br /&gt;
:{{{comfort offset|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cover|}}}|{{#set:Cover Effectiveness= {{{cover|}}} }}&lt;br /&gt;
;Cover Effectiveness&lt;br /&gt;
:{{#expr:{{{cover|}}}*100}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Plants--&amp;gt;&lt;br /&gt;
{{#if: {{{grow days|}}} {{{sow work|}}}  {{{harvest work|}}} {{{product|}}}  {{{yield|}}} {{{min sowing skill|}}} {{{min fertility|}}} {{{fertility sensitivity|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Plant Stats'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{grow days|}}}|{{#set:Grow Days = {{{grow days|}}} }} {{#set:Real Grow Days = {{#expr: {{{grow days|}}}/0.54167 round 2}} }}&lt;br /&gt;
;Time to grow&lt;br /&gt;
:{{{grow days|}}} days {{H:title|link=no|Actual days to grow, taking into account rest time|({{#expr: {{{grow days|}}}/0.54167 round 2}} days)}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{lifespanDaysPerGrowDays|}}}|{{#set:Lifespan Days Per Grow Days = {{{lifespanDaysPerGrowDays|}}} }}&lt;br /&gt;
{{#if: {{{grow days|}}}|&lt;br /&gt;
;Lifespan&lt;br /&gt;
:{{#ifeq: {{{lifespanDaysPerGrowDays|}}} | 0 | Indefinite | {{#expr: {{{grow days|}}} * {{{lifespanDaysPerGrowDays}}}}} days}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{sow work|}}}|{{#set:Sow Work = {{{sow work|}}} }}&lt;br /&gt;
;Work to Sow&lt;br /&gt;
:{{ticks|{{{sow work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{harvest work|}}}|{{#set:Harvest Work = {{{harvest work|}}} }}&lt;br /&gt;
;Work to Harvest&lt;br /&gt;
:{{ticks|{{{harvest work|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{product|}}}|{{#set:Harvest Product = {{{product|}}} }}&lt;br /&gt;
{{#if: {{{yield|}}}|{{#set:Harvest Yield = {{{yield|}}} }}&lt;br /&gt;
;Harvest Yield&lt;br /&gt;
:{{{yield|}}} {{Icon Small|{{{product|}}}|16}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min sowing skill|}}}|{{#set:Minimum Required Growing Skill = {{{min sowing skill|}}} }}&lt;br /&gt;
;{{H:title|link=no|Minimum skill required to sow the plant|Min Skill}}&lt;br /&gt;
:{{{min sowing skill|}}} [[Skills#Plants|Plants]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{min fertility|}}}|{{#set:Fertility Min = {{{min fertility|}}} }}&lt;br /&gt;
;Min Fertility&lt;br /&gt;
:{{#expr: {{{min fertility|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{fertility sensitivity|}}}|{{#set:Fertility Sensitivity = {{{fertility sensitivity|}}} }}&lt;br /&gt;
;Fertility Sensitivity&lt;br /&gt;
:{{#expr: {{{fertility sensitivity|}}} * 100}}%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{nutrition|}}}|{{#set:Nutrition = {{{nutrition|}}} }}&lt;br /&gt;
;{{H:title|link=no|Nutrition when plant eaten|Nutrition}}&lt;br /&gt;
:{{{nutrition}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Weapons--&amp;gt;&lt;br /&gt;
{{#if: {{{mode|}}}|{{#set:Mode = {{{mode|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage|}}}|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--the following determines if the item is a melee weapon, else assumes it's ranged, then sets relevant property--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|{{#ifeq: {{{mode|}}} | Melee |&lt;br /&gt;
{{#set:Melee Damage Base = {{{damage|}}}&lt;br /&gt;
|Melee Warmup = {{{warmup|}}}&lt;br /&gt;
|Melee Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
}}&lt;br /&gt;
|&lt;br /&gt;
{{#set:Damage Base = {{{damage|}}}&lt;br /&gt;
|Aiming Time Base = {{{warmup|}}}&lt;br /&gt;
|Ranged Cooldown Base = {{{cooldown|}}}&lt;br /&gt;
|Weapons/Row/Ranged/NoInclude=False&lt;br /&gt;
}} }} |}}&lt;br /&gt;
&lt;br /&gt;
{{#if:  {{{damage type|}}} {{{damage|}}} {{{armorPenetration|}}} {{{warmup|}}}  {{{cooldown |}}}  {{{range|}}}  {{{minrange|}}}  {{{accuracy|}}}  {{{accuracyTouch|}}}  {{{accuracyShort|}}}   {{{accuracyMedium|}}}  {{{accuracyLong|}}}  {{{accuracyAvg|}}}  {{{velocity|}}}  {{{burst|}}}  {{{burstTicks|}}}  {{{missRadius|}}}  {{{blastRadius|}}}  {{{DPS|}}}  {{{stoppingPower|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Ranged Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mode|}}}|&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{damage type|}}}|{{#set:Damage Type = {{{damage type|}}} }}&lt;br /&gt;
;Dmg Type&lt;br /&gt;
:{{{damage type|}}} }}&lt;br /&gt;
&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{damage|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{armorPenetration|}}}|{{#set:Armor Penetration= {{{armorPenetration|}}} }}&lt;br /&gt;
;Armor penetration&lt;br /&gt;
:{{{armorPenetration|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{warmup|}}}|&lt;br /&gt;
;{{H:title|link=no|Time it takes to aim the weapon|Warm-Up}}&lt;br /&gt;
:{{ticks|{{{warmup|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{cooldown |}}}|&lt;br /&gt;
;{{H:title|link=no|Waiting time before you can aim again after firing|Cooldown}}&lt;br /&gt;
:{{ticks|{{{cooldown|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{range|}}}|{{#set:Range = {{{range|}}} }}&lt;br /&gt;
;Range&lt;br /&gt;
:{{{range|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{minrange|}}}|&lt;br /&gt;
;Minimum Range&lt;br /&gt;
:{{{minrange|}}} tiles}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracy|}}}|&lt;br /&gt;
;Accuracy&lt;br /&gt;
:{{{accuracy|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyTouch|}}}| {{#Set: Accuracy (Touch) Base = {{{accuracyTouch|}}} }}    &lt;br /&gt;
{{#if: {{{accuracyShort|}}}| {{#Set: Accuracy (Short) Base = {{{accuracyShort|}}} }}   &lt;br /&gt;
{{#if: {{{accuracyMedium|}}}| {{#Set: Accuracy (Medium) Base = {{{accuracyMedium|}}} }}       &lt;br /&gt;
{{#if: {{{accuracyLong|}}}| {{#Set: Accuracy (Long) Base = {{{accuracyLong|}}} }}&lt;br /&gt;
;{{H:title|link=no|Touch % - Short % - Medium % - Long %|Accuracy}}&lt;br /&gt;
:{{{accuracyTouch|}}}% - {{{accuracyShort|}}}% - {{{accuracyMedium|}}}% - {{{accuracyLong|}}}%&lt;br /&gt;
}}     &lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{accuracyAvg|}}}|&lt;br /&gt;
;{{H:title|link=no|Average accuracy of the weapon, taking range into account.|Avg. accuracy}}&lt;br /&gt;
:{{{accuracyAvg|}}}%}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{velocity|}}}|{{#set:Velocity = {{{velocity|}}} }}&lt;br /&gt;
;Velocity&lt;br /&gt;
:{{{velocity|}}} (m/s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burst|}}}|{{#set:Burst Count = {{{burst|}}} }}&lt;br /&gt;
;Burst Count&lt;br /&gt;
:{{{burst|}}} (per burst)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{burstTicks|}}}|{{#set: Burst Ticks = {{{burstTicks|}}} }}&lt;br /&gt;
;{{H:title|link=no|Time between shots in a single burst|Burst Ticks}}&lt;br /&gt;
:{{ticks|{{{burstTicks|}}}}}&amp;lt;br&amp;gt;({{#expr: 3600/{{{burstTicks|}}} round 2}} {{H:title|link=no|Rounds Per Minute|RPM}}) }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{missRadius|}}}|{{#set:Miss Radius = {{{missRadius|}}} }}&lt;br /&gt;
;{{H:title|link=no|Missed shots are forced to land within this radius|Miss Radius}}&lt;br /&gt;
:{{{missRadius|}}} tile(s)}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{blastRadius|}}}|{{#set:Blast Radius = {{{blastRadius|}}} }}&lt;br /&gt;
;Blast Radius&lt;br /&gt;
:{{{blastRadius|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{DPS|}}}|&lt;br /&gt;
;{{H:title|link=yes|Formatted as: Maximum damage per second (DPS with average accuracy)|DPS}}&lt;br /&gt;
:{{ #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 }})}}}}}}}}&lt;br /&gt;
{{#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 }}}}&lt;br /&gt;
{{#set:Average 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 }}}}}}}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stoppingPower|}}}|{{#set: Stopping Power = {{{stoppingPower|}}} }}&lt;br /&gt;
;{{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}}&lt;br /&gt;
:{{{stoppingPower|}}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Animal and Weapon Melee Combat--&amp;gt;&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}   {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}} {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}} {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}} {{{mobdamageaverage|}}} {{{mobdamage|}}} {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}} {{{MeleeWeaponAverageDPS|}}} {{{MeleeWeaponAverageAP|}}}|&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Melee Combat'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Animal Melee Combat --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack1dmg|}}}{{{attack1type|}}}{{{attack1part|}}}{{{attack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{attack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{attack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{attack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{attack1cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack1DPS | {{#expr: {{{attack1dmg|}}} / ({{{attack1cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 1 DPS = {{#var: Attack1DPS}} }}&lt;br /&gt;
;Attack{{#if: {{{attack2dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{attack1part|Body part?}}}&amp;lt;br&amp;gt;{{{attack1dmg|?}}} dmg ({{{attack1type|type?}}})&amp;lt;br&amp;gt;{{#expr: ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack1cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack1stun|}}}|{{#set:Attack 1 Stun = {{{attack1stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack1stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack2dmg|}}}{{{attack2type|}}}{{{attack2part|}}}{{{attack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{attack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{attack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{attack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{attack2cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack2DPS | {{#expr: {{{attack2dmg|}}} / ({{{attack2cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 2 DPS = {{#var: Attack2DPS}} }}&lt;br /&gt;
;Attack 2&lt;br /&gt;
:{{{attack2part|Body part?}}}&amp;lt;br&amp;gt;{{{attack2dmg|?}}} dmg ({{{attack2type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack2cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack2stun|}}}|{{#set:Attack 2 Stun = {{{attack2stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack2stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack3dmg|}}}{{{attack3type|}}}{{{attack3part|}}}{{{attack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{attack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{attack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{attack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{attack3cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack3DPS | {{#expr: {{{attack3dmg|}}} / ({{{attack3cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 3 DPS = {{#var: Attack3DPS}} }}&lt;br /&gt;
;Attack 3&lt;br /&gt;
:{{{attack3part|Body part?}}}&amp;lt;br&amp;gt;{{{attack3dmg|?}}} dmg ({{{attack3type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack3cool|0}}}}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack3stun|}}}|{{#set:Attack 3 Stun = {{{attack3stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack3stun|0}}}*20}} on first strike}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{attack4dmg|}}}{{{attack4type|}}}{{{attack4part|}}}{{{attack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{attack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{attack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{attack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{attack4cool|}}} }}&lt;br /&gt;
  {{#vardefine: Attack4DPS | {{#expr: {{{attack4dmg|}}} / ({{{attack4cool}}} / 60) }} }}&lt;br /&gt;
  {{#set: Attack 4 DPS = {{#var: Attack4DPS}} }}&lt;br /&gt;
;Attack 4&lt;br /&gt;
:{{{attack4part|Body part?}}}&amp;lt;br&amp;gt;{{{attack4dmg|?}}} dmg ({{{attack4type|type?}}})&amp;lt;br&amp;gt;{{#expr:  ({{{attack1dmg|}}}*1.5-0.001) round 0}}% AP&amp;lt;br&amp;gt;{{ticks|{{{attack4cool|0}}}}} on first strike}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{attack4stun|}}}|{{#set:Attack 4 Stun = {{{attack4stun|}}}}}&amp;lt;br&amp;gt;Stun for {{ticks|{{{attack4stun|0}}}*20}}}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: Attack4DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}} + {{#var: Attack4DPS}})/4 * 0.62 round 2}} }}|&lt;br /&gt;
{{#ifeq: {{#varexists: Attack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}} + {{#var: Attack3DPS}})/3 * 0.62 round 2}} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: Attack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MobAverageDPS | {{#expr: ({{#var: Attack1DPS}} + {{#var: Attack2DPS}})/2 * 0.62 round 2}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: Attack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MobAverageDPS | {{#expr: {{#var: Attack1DPS}} * 0.62 round 2}} }} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MobAverageDPS}}|1|&lt;br /&gt;
;Average DPS&lt;br /&gt;
:{{#var: MobAverageDPS}}&lt;br /&gt;
{{#set: Mob Average DPS = {{#var: MobAverageDPS}} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage|}}}|{{#set:Melee Damage Base = {{{mobdamage|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype|}}}|{{#set:Melee Damage Def = {{{mobdamagetype|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage2|}}}|{{#set:Melee Damage Base = {{{mobdamage2|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype2|}}}|{{#set:Melee Damage Def = {{{mobdamagetype2|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype2|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamage3|}}}|{{#set:Melee Damage Base = {{{mobdamage3|}}} }}&lt;br /&gt;
;Damage&lt;br /&gt;
:{{{mobdamage3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamagetype3|}}}|{{#set:Melee Damage Def = {{{mobdamagetype3|}}} }}&lt;br /&gt;
;Damage Type&lt;br /&gt;
:{{{mobdamagetype3|}}}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{mobdamageaverage|}}}|{{#set:Average Melee Damage = {{{mobdamageaverage|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- New melee starting from Beta 18 --&amp;gt;&lt;br /&gt;
{{#ifeq: {{lc:{{{mode|}}}}} | melee |&lt;br /&gt;
;Mode&lt;br /&gt;
:{{{mode|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack1dmg|}}}{{{meleeattack1type|}}}{{{meleeattack1part|}}}{{{meleeattack1cool|}}}|&lt;br /&gt;
  {{#set:Attack 1 Damage = {{{meleeattack1dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Type = {{{meleeattack1type|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Part = {{{meleeattack1part|}}} }}&lt;br /&gt;
  {{#set:Attack 1 Cooldown = {{{meleeattack1cool|}}} }}&lt;br /&gt;
  {{#set:Attack 1 AP = {{{meleeattack1ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1DPS | {{#expr: {{{meleeattack1dmg|}}} / ({{{meleeattack1cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack1Chance | {{#expr: {{{meleeattack1dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack{{#if: {{{meleeattack1dmg|}}}|&amp;amp;nbsp;1}}&lt;br /&gt;
:{{{meleeattack1part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack1dmg|?}}} dmg ({{{meleeattack1type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack1cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack1ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack2dmg|}}}{{{meleeattack2type|}}}{{{meleeattack2part|}}}{{{meleeattack2cool|}}}|&lt;br /&gt;
  {{#set:Attack 2 Damage = {{{meleeattack2dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Type = {{{meleeattack2type|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Part = {{{meleeattack2part|}}} }}&lt;br /&gt;
  {{#set:Attack 2 Cooldown = {{{meleeattack2cool|}}} }}&lt;br /&gt;
  {{#set:Attack 2 AP = {{{meleeattack2ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2DPS | {{#expr: {{{meleeattack2dmg|}}} / ({{{meleeattack2cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack2Chance | {{#expr: {{{meleeattack2dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 2{{#if: {{{meleeattack2dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack2part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack2dmg|?}}} dmg ({{{meleeattack2type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack2cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack2ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack3dmg|}}}{{{meleeattack3type|}}}{{{meleeattack3part|}}}{{{meleeattack3cool|}}}|&lt;br /&gt;
  {{#set:Attack 3 Damage = {{{meleeattack3dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Type = {{{meleeattack3type|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Part = {{{meleeattack3part|}}} }}&lt;br /&gt;
  {{#set:Attack 3 Cooldown = {{{meleeattack3cool|}}} }}&lt;br /&gt;
  {{#set:Attack 3 AP = {{{meleeattack3ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3DPS | {{#expr: {{{meleeattack3dmg|}}} / ({{{meleeattack3cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack3Chance | {{#expr: {{{meleeattack3dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 3{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack3part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack3dmg|?}}} dmg ({{{meleeattack3type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack3cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack3ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{meleeattack4dmg|}}}{{{meleeattack4type|}}}{{{meleeattack4part|}}}{{{meleeattack4cool|}}}|&lt;br /&gt;
  {{#set:Attack 4 Damage = {{{meleeattack4dmg|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Type = {{{meleeattack4type|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Part = {{{meleeattack4part|}}} }}&lt;br /&gt;
  {{#set:Attack 4 Cooldown = {{{meleeattack4cool|}}} }}&lt;br /&gt;
  {{#set:Attack 4 AP = {{{meleeattack4ap|}}} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4DPS | {{#expr: {{{meleeattack4dmg|}}} / ({{{meleeattack4cool}}}) }} }}&lt;br /&gt;
  {{#vardefine: MeleeAttack4Chance | {{#expr: {{{meleeattack4dmg|}}} ^ 2 }} }}&lt;br /&gt;
;Melee Attack 4{{#if: {{{meleeattack3dmg|}}}|&amp;amp;nbsp;}}&lt;br /&gt;
:{{{meleeattack4part|Body part?}}}&amp;lt;br&amp;gt;{{{meleeattack4dmg|?}}} dmg ({{{meleeattack4type|type?}}})&amp;lt;br&amp;gt;{{{meleeattack4cool|0}}} seconds cooldown &amp;lt;br&amp;gt;{{{meleeattack4ap|0}}}% armor penetration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageDPS|}}}|{{#set:MeleeDPS= {{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
;Melee Average DPS&lt;br /&gt;
:{{{MeleeWeaponAverageDPS|}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{MeleeWeaponAverageAP|}}}|{{#set:MeleeAP= {{{MeleeWeaponAverageAP|}}} }}&lt;br /&gt;
;Melee Average AP&lt;br /&gt;
:{{{MeleeWeaponAverageAP|}}}%}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- was supposed to calculate stuff but then decided it's just better to use the value provided by the game &lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3Chance}}|1|&lt;br /&gt;
  {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3Chance}}) }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2Chance}}|1|&lt;br /&gt;
      {{#vardefine: TotalChance | {{#expr: ({{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2Chance}})}} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1Chance}}|1|&lt;br /&gt;
        {{#vardefine: TotalChance | {{#expr: {{#var: MeleeAttack1Chance}}}} }} }} }} }}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq: {{#varexists: MeleeAttack3DPS}}|1|&lt;br /&gt;
  {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: MeleeAttack2DPS}} * {{#var: MeleeAttack2Chance}} + {{#var: MeleeAttack3DPS}} * {{#var: MeleeAttack3Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
    {{#ifeq: {{#varexists: MeleeAttack2DPS}}|1|&lt;br /&gt;
      {{#vardefine: MeleeWeaponAverageDPS | {{#expr: ({{#var: MeleeAttack1DPS}} * {{#var: MeleeAttack1Chance}} + {{#var: meleeattack2dmg}} * {{#var: MeleeAttack2Chance}} ) / {{#var: TotalChance}} }} }}|&lt;br /&gt;
      {{#ifeq: {{#varexists: MeleeAttack1DPS}}|1|&lt;br /&gt;
        {{#vardefine: MeleeWeaponAverageDPS | {{#expr: {{#var: MeleeAttack1DPS}} }} }} }} }} }} &lt;br /&gt;
&lt;br /&gt;
 ---------- Line to separate the mess above from the other stuff below ---------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- Creation ---&amp;gt;&lt;br /&gt;
{{#IF: {{{work to make|}}} {{{resources to make|}}} {{{stuff tags|}}} {{{deconstruct yield|}}} {{{resource 1|}}} {{{resource 2|}}}{{{resource 3|}}} {{{resource 4|}}} {{{resource 5|}}} {{{resource 6|}}} {{{resource 1 amount|}}} {{{resource 2 amount|}}} {{{resource 3 amount|}}} {{{resource 4 amount|}}} {{{resource 5 amount|}}} {{{resource 6 amount|}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;p class='subheading' style='height: 1.75em !important; padding: 0.25em 0 0.5em !important; margin: 0.5em 0 0.5em !important'&amp;gt;'''Creation'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|{{#set:Skill 1 = {{{skill 1|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2|}}}|{{#set:Skill 2 = {{{skill 2|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 1 level|}}}|{{#set:Skill 1 Level = {{{skill 1 level|}}} }}}}&lt;br /&gt;
{{#if: {{{skill 2 level|}}}|{{#set:Skill 2 Level = {{{skill 2 level|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{skill 1|}}}|&lt;br /&gt;
;Skill{{#if:{{{skill 2|}}}|s}} required&lt;br /&gt;
:[[Skills#{{{skill 1|}}}|{{{skill 1|}}}]] {{{skill 1 level|}}} {{#if: {{{skill 2|}}}|&amp;amp; [[Skills#{{{skill 2|}}}|{{{skill 2|}}}]] {{{skill 2 level|}}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Work to make should be specified in *ticks*, like in the game files.  This has been inconsistent in the past --&amp;gt;&lt;br /&gt;
{{#if: {{{work to make|}}}|{{#set:Work To Make = {{{work to make|}}} }}&lt;br /&gt;
;Work To Make&lt;br /&gt;
:{{ticks|{{{work to make|}}}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resources to make|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{{resources to make|}}} [[Category:Resource Update Needed]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{stuff tags|}}}|{{#set:Stuff Tags = {{{stuff tags}}}}}&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:{{{stuff tags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|{{#set:Resource 1 = {{{resource 1|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2|}}}|{{#set:Resource 2 = {{{resource 2|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3|}}}|{{#set:Resource 3 = {{{resource 3|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4|}}}|{{#set:Resource 4 = {{{resource 4|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5|}}}|{{#set:Resource 5 = {{{resource 5|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6|}}}|{{#set:Resource 6 = {{{resource 6|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 1 amount|}}}|{{#set:Resource 1 Amount = {{{resource 1 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 2 amount|}}}|{{#set:Resource 2 Amount = {{{resource 2 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 3 amount|}}}|{{#set:Resource 3 Amount = {{{resource 3 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 4 amount|}}}|{{#set:Resource 4 Amount = {{{resource 4 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 5 amount|}}}|{{#set:Resource 5 Amount = {{{resource 5 amount|}}} }}}}&lt;br /&gt;
{{#if: {{{resource 6 amount|}}}|{{#set:Resource 6 Amount = {{{resource 6 amount|}}} }}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{resource 1|}}}|&lt;br /&gt;
;Resources to make&lt;br /&gt;
:{{#ifeq: Stuff | {{{resource 1|}}} |{{Icon|buildingmat}}|{{Icon Small|{{{resource 1|}}}|16}}}} {{{resource 1 amount|}}} {{#if: {{{resource 2|}}}| + {{Icon Small|{{{resource 2|}}}|16}} {{{resource 2 amount|}}}|}} {{#if: {{{resource 3|}}}| + {{Icon Small|{{{resource 3|}}}|16}} {{{resource 3 amount|}}}|}}{{#if: {{{resource 4|}}}| + {{Icon Small|{{{resource 4|}}}|16}} {{{resource 4 amount|}}}|}}{{#if: {{{resource 5|}}}| + {{Icon Small|{{{resource 5|}}}|16}} {{{resource 5 amount|}}}|}}{{#if: {{{resource 6|}}}| + {{Icon Small|{{{resource 6|}}}|16}} {{{resource 6 amount|}}}|}}&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---If resource 1 is set to stuff, but theres no stuff tags, make note of it---&amp;gt;&lt;br /&gt;
{{#ifeq: Stuff | {{{resource 1|}}} |  {{#if: {{{stuff tags|}}}| |&lt;br /&gt;
;{{H:title|link=no|The types of resource that can be substituted for the generic resource type|Stuff tags}}&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ERROR: NO STUFF TAGS'''&amp;lt;/span&amp;gt;&lt;br /&gt;
}}  &lt;br /&gt;
|}} &lt;br /&gt;
&lt;br /&gt;
{{#if: {{{deconstruct yield|}}}|&lt;br /&gt;
;{{H:title|link=no|Resources recovered when deconstructing|Deconstruct yield}}&lt;br /&gt;
:{{{deconstruct yield|}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{page verified for version|}}}|{{Verified|{{{page verified for version|}}}}}| {{Verified}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{defName|}}} {{{thingCategories|}}} {{{file|}}} {{{weaponTags|}}} {{{thingSetMakerTags|}}} {{{defaultOutfitTags}}} {{{factionPrerequisiteTags}}} {{{harvestTag}}} {{{recipePrerequisiteTags}}} {{{ResearchProjectTagDef}}} {{{sowTag}}} {{{sowTags}}} {{{tag}}} {{{tags}}} {{{techHediffsTags}}} {{{thingSetMakerTagsToAllow}}} {{{thingSetMakerTagsToDisallow}}} {{{tradeTag}}} {{{tradeTags}}} {{{tradeTagsBuy}}} {{{tradeTagsSell}}} {{{tradeTagsToAllow}}} {{{tutorHighlightTag}}} {{{apparelTags}}} {{{buildingTags}}} |&lt;br /&gt;
&amp;lt;/dl&amp;gt;{{clear}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;subheading mw-customtoggle-myDivision&amp;quot;  style='height: 1.75em !important; padding: 0.25em 0em 0.25em !important; margin: 0.5em 0 0.5em !important; width:300px'&amp;gt; '''Technical'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-myDivision&amp;quot;&amp;gt; &amp;lt;span style='color: #504f54; text-align: left; text-shadow: 0px 0px; font-family: Arial; font-size: 0.8em; height: 0em !important; padding: 0em 0em 0em !important; margin: 0em 0 0em !important;'&amp;gt;&lt;br /&gt;
{{#if: {{{defName|}}}|&lt;br /&gt;
; defName&lt;br /&gt;
: {{{defName|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
{{#if: {{{file|}}}|&lt;br /&gt;
; File&lt;br /&gt;
: {{{file|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingCategories|}}}|&lt;br /&gt;
; thingCategories&lt;br /&gt;
: {{{thingCategories|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{weaponTags|}}}|{{#set:  weaponTags = {{{weaponTags|}}}}}&lt;br /&gt;
; weaponTags&lt;br /&gt;
: {{{weaponTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTags|}}}|&lt;br /&gt;
; thingSetMakerTags&lt;br /&gt;
: {{{thingSetMakerTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{defaultOutfitTags|}}} |&lt;br /&gt;
; defaultOutfitTags&lt;br /&gt;
: {{{defaultOutfitTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{factionPrerequisiteTags|}}} |&lt;br /&gt;
; factionPrerequisiteTags&lt;br /&gt;
: {{{factionPrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{harvestTag|}}} |&lt;br /&gt;
; harvestTag&lt;br /&gt;
: {{{harvestTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{recipePrerequisiteTags|}}} |&lt;br /&gt;
;recipePrerequisiteTags&lt;br /&gt;
: {{{recipePrerequisiteTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{ResearchProjectTagDef|}}} |&lt;br /&gt;
;ResearchProjectTagDef&lt;br /&gt;
:{{{ResearchProjectTagDef|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTag|}}} |&lt;br /&gt;
;sowTag&lt;br /&gt;
:{{{sowTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{sowTags|}}} |&lt;br /&gt;
;sowTags&lt;br /&gt;
:{{{sowTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tag|}}} |{{#set:  tag = {{{tag|}}}}}&lt;br /&gt;
;tag&lt;br /&gt;
:{{{tag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tags|}}} |{{#set:  tags = {{{tags|}}}}}&lt;br /&gt;
;tags&lt;br /&gt;
:{{{tags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{techHediffsTags|}}} | {{#set:  techHediffsTags = {{{techHediffsTags|}}}}}&lt;br /&gt;
;techHediffsTags&lt;br /&gt;
:{{{techHediffsTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToAllow|}}} |&lt;br /&gt;
;thingSetMakerTagsToAllow&lt;br /&gt;
:{{{thingSetMakerTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{thingSetMakerTagsToDisallow|}}} |&lt;br /&gt;
;thingSetMakerTagsToDisallow&lt;br /&gt;
:{{{thingSetMakerTagsToDisallow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTag|}}} |{{#set:  tradeTag = {{{tradeTag|}}}}}&lt;br /&gt;
;tradeTag&lt;br /&gt;
:{{{tradeTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTags|}}} |{{#set:  tradeTags = {{{tradeTags|}}}}}&lt;br /&gt;
;tradeTags&lt;br /&gt;
:{{{tradeTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsBuy|}}} |&lt;br /&gt;
;tradeTagsBuy&lt;br /&gt;
:{{{tradeTagsBuy|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsSell|}}} |&lt;br /&gt;
;tradeTagsSell&lt;br /&gt;
:{{{tradeTagsSell|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tradeTagsToAllow|}}} |&lt;br /&gt;
;tradeTagsToAllow&lt;br /&gt;
:{{{tradeTagsToAllow|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{tutorHighlightTag|}}} |&lt;br /&gt;
;tutorHighlightTag&lt;br /&gt;
:{{{tutorHighlightTag|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{apparelTags|}}} |{{#set:  apparelTags = {{{apparelTags|}}}}}&lt;br /&gt;
;apparelTags&lt;br /&gt;
:{{{apparelTags|}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{buildingTags|}}} |{{#set:  buildingTags = {{{buildingTags|}}}}}&lt;br /&gt;
;buildingTags&lt;br /&gt;
:{{{buildingTags|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/span&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both; height: 0px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86100</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86100"/>
		<updated>2021-05-17T14:13:14Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    args = {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if not ibPropValue then&lt;br /&gt;
    for i,v in ipairs(pFrame.args) do&lt;br /&gt;
      if i &amp;gt; 0 then&lt;br /&gt;
        table.insert(qFrame, v)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = label&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86099</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86099"/>
		<updated>2021-05-17T14:12:30Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {&lt;br /&gt;
    frame = {&lt;br /&gt;
      args = {}&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if not ibPropValue then&lt;br /&gt;
    for i,v in ipairs(pFrame.args) do&lt;br /&gt;
      if i &amp;gt; 0 then&lt;br /&gt;
        table.insert(qFrame, v)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.args.label = label&lt;br /&gt;
&lt;br /&gt;
  local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  if pFrame.args.SMWP then&lt;br /&gt;
    frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local sOutputText&lt;br /&gt;
&lt;br /&gt;
  if ibPropValue == '' then&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  else&lt;br /&gt;
    sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86098</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86098"/>
		<updated>2021-05-17T14:11:37Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {}&lt;br /&gt;
&lt;br /&gt;
  if not ibPropValue then&lt;br /&gt;
    for i,v in ipairs(pFrame.args) do&lt;br /&gt;
      if i &amp;gt; 0 then&lt;br /&gt;
        table.insert(qFrame, v)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  qFrame.label = label&lt;br /&gt;
&lt;br /&gt;
  -- local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  -- if pFrame.args.SMWP then&lt;br /&gt;
  --   frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  -- end&lt;br /&gt;
&lt;br /&gt;
  -- local sOutputText&lt;br /&gt;
&lt;br /&gt;
  -- if ibPropValue == '' then&lt;br /&gt;
  --   sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  -- else&lt;br /&gt;
  --   sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  -- end&lt;br /&gt;
&lt;br /&gt;
  -- return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
	<entry>
		<id>https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86097</id>
		<title>Module:Test</title>
		<link rel="alternate" type="text/html" href="https://rimworldwiki.com/index.php?title=Module:Test&amp;diff=86097"/>
		<updated>2021-05-17T14:11:20Z</updated>

		<summary type="html">&lt;p&gt;Dr. Strangelove: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DefInfo = {}&lt;br /&gt;
local wiki = {}&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
-- deal with differences between MediaWiki and dev environments --&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  Data   = mw.loadData('Module:Test/data')&lt;br /&gt;
  Util   = require(&amp;quot;Module:Test/lib/util&amp;quot;)&lt;br /&gt;
  Search = require(&amp;quot;Module:Test/lib/search&amp;quot;)&lt;br /&gt;
  VF     = require(&amp;quot;Module:Test/data/virtual&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  frame = mw and mw.getCurrentFrame()&lt;br /&gt;
&lt;br /&gt;
  log = mw.log&lt;br /&gt;
  logObject = mw.logObject&lt;br /&gt;
else&lt;br /&gt;
  Data    = require &amp;quot;data/data&amp;quot;&lt;br /&gt;
  Util    = require &amp;quot;lib/util&amp;quot;&lt;br /&gt;
  Search  = require &amp;quot;lib/search&amp;quot;&lt;br /&gt;
  Inspect = require &amp;quot;lib/inspect&amp;quot;&lt;br /&gt;
  VF      = require &amp;quot;data/virtual2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  logStore = {}&lt;br /&gt;
&lt;br /&gt;
  function pp(tbl, title) -- pretty print tables&lt;br /&gt;
    Util.hl(title)&lt;br /&gt;
    print(Inspect(tbl))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log = function(str)&lt;br /&gt;
    table.insert(logStore, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  logObject = function(obj, prefix)&lt;br /&gt;
    if prefix then&lt;br /&gt;
      assert(type(prefix) == &amp;quot;string&amp;quot;)&lt;br /&gt;
      table.insert(logStore, prefix .. &amp;quot; = &amp;quot; .. Inspect(obj))&lt;br /&gt;
    else&lt;br /&gt;
      table.insert(logStore, Inspect(obj))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
-- private functions --&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
local function runTime()&lt;br /&gt;
  local clock = string.format(&amp;quot;%i&amp;quot;, os.clock() * 1000)&lt;br /&gt;
  return clock&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.vardefine(name, value)&lt;br /&gt;
  assert(name, &amp;quot;vardefine: missing argument #1 (variable to definePrefix)&amp;quot;)&lt;br /&gt;
  assert(type(name) == &amp;quot;string&amp;quot;, string.format(&amp;quot;vardefine: bad argument #1 (string expected, got %s)&amp;quot;, type(name)))&lt;br /&gt;
  assert(value, &amp;quot;vardefine: missing argument #2 (value to assign)&amp;quot;)&lt;br /&gt;
  assert(type(value) == &amp;quot;string&amp;quot; or type(value) == &amp;quot;number&amp;quot; or type(value) ==&amp;quot;boolean&amp;quot;, string.format(&amp;quot;vardefine: bad argument #2 (string, number or boolean expected, got %s)&amp;quot;, type(value)))&lt;br /&gt;
  frame:callParserFunction('#vardefine', name, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.expandDef(def, doMe)&lt;br /&gt;
  if not doMe then return nil end&lt;br /&gt;
  local vFuncs = VF&lt;br /&gt;
&lt;br /&gt;
  for _,func in ipairs(vFuncs) do&lt;br /&gt;
    func(def)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
  local ancestorIDs = {}&lt;br /&gt;
  local mergedDef = {}&lt;br /&gt;
  local def = baseDef&lt;br /&gt;
&lt;br /&gt;
  while def._.ParentName do&lt;br /&gt;
    local parentID = def._.DefCategory .. &amp;quot;:&amp;quot; .. def._.ParentName&lt;br /&gt;
    table.insert(ancestorIDs, parentID)&lt;br /&gt;
    def = Data[parentID]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  ancestorIDs = Util.table.reverse(ancestorIDs)&lt;br /&gt;
  table.insert(ancestorIDs, baseDef._.DefCategory .. &amp;quot;:&amp;quot; .. baseDef.defName)&lt;br /&gt;
&lt;br /&gt;
  for _,parentID in ipairs(ancestorIDs) do&lt;br /&gt;
    Util.table.overwrite(mergedDef, Data[parentID], ignoreKeys)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return mergedDef&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DefInfo.getDef(defID)&lt;br /&gt;
  local ignoreKeys = {&amp;quot;Abstract&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;ParentName&amp;quot;}&lt;br /&gt;
  local baseDef&lt;br /&gt;
  local def&lt;br /&gt;
&lt;br /&gt;
  if not defID then return nil end&lt;br /&gt;
&lt;br /&gt;
  for _,def in pairs(Data) do&lt;br /&gt;
    if def.defName == defID then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    elseif string.upper(def.label or '') == string.upper(defID) then&lt;br /&gt;
      baseDef = def&lt;br /&gt;
      break&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not baseDef then return nil end&lt;br /&gt;
&lt;br /&gt;
  def = DefInfo.mergeParents(baseDef, ignoreKeys)&lt;br /&gt;
&lt;br /&gt;
  DefInfo.expandDef(def, true)&lt;br /&gt;
&lt;br /&gt;
  return def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function setPrefix(tbl, parentKey)&lt;br /&gt;
  local mt = getmetatable(tbl) or {}&lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    local prefix = parentKey .. &amp;quot;_&amp;quot; .. k&lt;br /&gt;
    if type(v) == 'table' then&lt;br /&gt;
      setPrefix(v, prefix)&lt;br /&gt;
    else&lt;br /&gt;
      mt[k] = prefix&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  setmetatable(tbl, mt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function definePrefixed(tbl)&lt;br /&gt;
  for k,v in pairs(tbl) do&lt;br /&gt;
    if type(v) ~= 'table' then&lt;br /&gt;
      local mt = getmetatable(tbl)&lt;br /&gt;
      log(string.format('%s = %s', mt[k], tostring(v)))&lt;br /&gt;
      if mw then DefInfo.vardefine(mt[k], v) end&lt;br /&gt;
    else&lt;br /&gt;
      definePrefixed(v)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
-- public interface --&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
function wiki.getDefName(frame)&lt;br /&gt;
  local defName&lt;br /&gt;
  local label = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
  if not label then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: missing argument #1 (label)\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for defID,def in pairs(Data) do&lt;br /&gt;
    if string.upper(def.label or &amp;quot;&amp;quot;) == string.upper(label) then&lt;br /&gt;
      defName = def.defName&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not defName then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;getDefName @ %ims: '%s' not found\nframe.args&amp;quot;, runTime(), label))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, getDefName: retrieved defName&amp;quot;, runTime()))&lt;br /&gt;
  return defName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.count(frame)&lt;br /&gt;
  local query = wiki.query(frame)&lt;br /&gt;
  if queried then&lt;br /&gt;
    return #queried&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.query(frame)&lt;br /&gt;
&lt;br /&gt;
  local argLen = Util.table.count(frame.args, &amp;quot;number&amp;quot;) -- #frame.args won't work as expected, check the doc&lt;br /&gt;
&lt;br /&gt;
  if not frame.args['defName'] and not frame.args['label'] then&lt;br /&gt;
    logObject(frame.args, string.format('query @ %ims: missing an identifying argument (defName or label)\nframe.args', runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local def = DefInfo.getDef(frame.args['defName']) or DefInfo.getDef(frame.args['label'])&lt;br /&gt;
&lt;br /&gt;
  if not def then&lt;br /&gt;
    logObject(frame.args, string.format(&amp;quot;query @ %ims: Def not found\nframe.args&amp;quot;, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if def and argLen == 0 then&lt;br /&gt;
    logObject(def, string.format(&amp;quot;['%s:%s'] @ %ims&amp;quot;, def._.DefCategory, def.defName, runTime()))&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local prune = def&lt;br /&gt;
&lt;br /&gt;
  for i,arg in ipairs(frame.args) do -- arguments&lt;br /&gt;
    arg = tonumber(arg) or arg -- frame.args are always strings on MediaWiki so convert back the numbers&lt;br /&gt;
&lt;br /&gt;
    if i == argLen and frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find({nil, frame.args[&amp;quot;sibling&amp;quot;]} , prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument 'sibling' ('%s' not found')\nframe.args&amp;quot;, runTime(), frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        prune = Search.meta.parent.table[arg]&lt;br /&gt;
        if not prune then&lt;br /&gt;
          logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' is not a sibling of '%s')&amp;quot;, runTime(), i, arg, frame.args[&amp;quot;sibling&amp;quot;]))&lt;br /&gt;
          return nil&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if i &amp;lt; argLen or i == argLen and not frame.args[&amp;quot;sibling&amp;quot;] then&lt;br /&gt;
      prune = Search.find(arg, prune)&lt;br /&gt;
      if not prune then&lt;br /&gt;
        logObject(frame.args, string.format(&amp;quot;query @ %ims: bad argument #%i ('%s' not found)\nframe.args&amp;quot;, runTime(), i, frame.args[i]))&lt;br /&gt;
        return nil&lt;br /&gt;
      else&lt;br /&gt;
        if type(prune) ~= 'table' and i &amp;lt; argLen then&lt;br /&gt;
          log(string.format(&amp;quot;query @ %ims: warning Def ['%s'] argument #%i ('%s' returns a value, all extra arguments ignored)&amp;quot;, runTime(), def['label'], i, frame.args[i]))&lt;br /&gt;
          return prune&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end -- for arguments&lt;br /&gt;
&lt;br /&gt;
  if type(prune) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    log(string.format(&amp;quot;@%ims, query: table vardefined&amp;quot;, runTime()))&lt;br /&gt;
    setPrefix(prune, frame.args[argLen])&lt;br /&gt;
    definePrefixed(prune)&lt;br /&gt;
    queried = prune&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  log(string.format(&amp;quot;@%ims, query: %s printed&amp;quot;, runTime(), type(prune)))&lt;br /&gt;
  return prune&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wiki.print(frame)&lt;br /&gt;
  local subpagename = frame.args[1]&lt;br /&gt;
  local pFrame = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
  if not pFrame.args then return &amp;quot;no arguments passed&amp;quot; end&lt;br /&gt;
  if not pFrame.args[1] then return &amp;quot;missing argument #1&amp;quot; end&lt;br /&gt;
  if not pFrame.args.title then return &amp;quot;missing named argument 'title'&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local ibPropValue = pFrame.args[1]&lt;br /&gt;
&lt;br /&gt;
  local qFrame = {}&lt;br /&gt;
&lt;br /&gt;
  -- if not ibPropValue then&lt;br /&gt;
  --   for i,v in ipairs(pFrame.args) do&lt;br /&gt;
  --     if i &amp;gt; 0 then&lt;br /&gt;
  --       table.insert(qFrame, v)&lt;br /&gt;
  --     end&lt;br /&gt;
  --   end&lt;br /&gt;
  -- end&lt;br /&gt;
&lt;br /&gt;
  -- qFrame.label = label&lt;br /&gt;
&lt;br /&gt;
  -- local q = wiki.query(qFrame)&lt;br /&gt;
&lt;br /&gt;
  -- if pFrame.args.SMWP then&lt;br /&gt;
  --   frame:callParserFunction('#set', pFrame.args.SMWP, ibPropValue)&lt;br /&gt;
  -- end&lt;br /&gt;
&lt;br /&gt;
  -- local sOutputText&lt;br /&gt;
&lt;br /&gt;
  -- if ibPropValue == '' then&lt;br /&gt;
  --   sOutputText = string.format(';%s\n:%s', pFrame.args.title, q)&lt;br /&gt;
  -- else&lt;br /&gt;
  --   sOutputText = string.format(';%s\n:%s', pFrame.args.title, ibPropValue)&lt;br /&gt;
  -- end&lt;br /&gt;
&lt;br /&gt;
  -- return sOutputText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------&lt;br /&gt;
-- simulate module invocation  --&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  local simframe = { [&amp;quot;args&amp;quot;] = {} }&lt;br /&gt;
  simframe.args[1] = 'fennec fox'&lt;br /&gt;
--~   simframe.args[1] = 'verbs'&lt;br /&gt;
--~   simframe.args[2] = 'label'&lt;br /&gt;
  local query = wiki.print(simframe)&lt;br /&gt;
  if query then print(query) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
-- simulate wiki log while developing --&lt;br /&gt;
----------------------------------------&lt;br /&gt;
&lt;br /&gt;
if not mw then&lt;br /&gt;
  Util.hl(&amp;quot;DefInfo log&amp;quot;)&lt;br /&gt;
  for _,v in ipairs(logStore) do&lt;br /&gt;
    print(v)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if mw then&lt;br /&gt;
  return wiki&lt;br /&gt;
else&lt;br /&gt;
  return DefInfo&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Dr. Strangelove</name></author>
	</entry>
</feed>