From Dark and Darker Wiki

m (Raw Salad moved page Template:GenerateUtilityRows to Template:GenerateUtilityTable: Merging Rows and Row and Utility Table into one template.)
(Manually added information for installables and interaction time.)
Line 1: Line 1:
<includeonly><!--
<includeonly><!--
-->{{#arraydefine:Utilities|{{Utility Data|AllLists|Types|Utility|{{#if:{{{craftable|}}}|Craftable|Uncraftable}}|{{{1}}}}} }}<!--
TODO
- Automate interaction time data for consumables.
- Automate Potion of Luck data.
- Add missing light source abilities. Need to mention the effect of lighting.
 
--><table cellspacing="0" class="wikitable sortable jquery-tablesorter" style="rgb(220,220,220,0.2); color:#eee; background:transparent; text-align:center; vertical-align:middle;">
--><table cellspacing="0" class="wikitable sortable jquery-tablesorter" style="rgb(220,220,220,0.2); color:#eee; background:transparent; text-align:center; vertical-align:middle;">
<tr style="font-weight:bold;">
<tr style="font-weight:bold;">
<th style="width:5%">Name</th>
<th style="width:5%">Name</th>
{{#switch:{{lc:{{{1}}}}}
{{#switch:{{lc:{{{1}}}}}
|drink
|drink=
<th style="width:5%">Movement Speed</th>
<th style="width:20%">Effect</th>
<th style="width:10%">Action Time</th>
<th style="width:10%">Action Movement Speed</th>
|consumable=
|consumable=
<th style="width:5%">Movement Speed</th>
<th style="width:5%">Movement Speed</th>
<th style="width:20%">Effect</th>
<th style="width:20%">Effect</th>
<th style="width:10%">Action Time</th>
<th style="width:10%">Interaction Time</th>
<th style="width:10%">Action Movement Speed</th>
<th style="width:10%">Action Movement Speed</th>
|installable=
<th style="width:5%">Class</th>
<th style="width:5%">Movement Speed</th>
<th style="width:10%">Damage on Hit</th>
<th style="width:20%">Effect</th>
<th style="width:10%">Interaction Time</th>
|lightsource
|lightsource
|throwable=
|throwable=
Line 30: Line 44:
|soulheart=
|soulheart=
<th style="width:20%">Effect</th>
<th style="width:20%">Effect</th>
<th style="width:10%">Action Time</th>
|#default=
|#default=
<th style="width:5%">Class</th>
<th style="width:5%">Class</th>
Line 38: Line 53:
<th style="width:10%">Action Time</th>
<th style="width:10%">Action Time</th>
<th style="width:10%">Action Movement Speed</th>
<th style="width:10%">Action Movement Speed</th>
<th style="width:10%">Slowdown On Hit</th>
<th style="width:10%">Slowdown On Hit</th>}}</tr><!--
}}<!--
 
-->{{#arraydefine:Utilities|{{Utility Data|AllLists|Types|Utility|Both|{{{1}}}}} }}<!--
Manually filter out Potion of Clarity since it cannot be found in game
-->{{#arraydefine:Filter|Potion of Clarity}}<!--
-->{{#arraydiff:Utilities|Utilities|Filter}}<!--
-->{{#loop:i|0|{{#arraysize:Utilities}}<!--
-->{{#loop:i|0|{{#arraysize:Utilities}}<!--
-->|{{#vardefine:current|{{#arrayindex:Utilities|{{#var:i}} }} }}<!--
-->|{{#vardefine:current|{{#arrayindex:Utilities|{{#var:i}} }} }}<!--
-->{{GenerateUtilityRow|{{#var:current}}}} }}</table><!--
-->{{#vardefine:rarities|{{Utility Data|{{#var:current}}|Rarities}} }}<!--
-->{{#arraydefine:rarities|{{#var:rarities}} }}<!--
-->{{#vardefine:types|{{Utility Data|{{#var:current}}|Types|All}} }}<!--
TODO Separate Bandages and Surgical Kits from Consumables
-->{{#vardefine:is_soulheart|{{#ifeq:Soul Heart|{{#var:current}}|1}} }}<!--
-->{{#vardefine:is_healing_consumable|{{#pos:Surgical Kit,Bandage|{{#var:current}}}} }}{{#if:{{#var:is_healing_consumable}}|{{#vardefine:is_consumable}}|{{#vardefine:is_consumable|{{#pos:{{#var:types}}|Consumable}} }} }}<!--
-->{{#vardefine:is_drink|{{#pos:{{#var:types}}|Drink}} }}<!--
-->{{#vardefine:is_installable|{{#pos:{{#var:types}}|Installable}} }}<!--
-->{{#vardefine:is_musicalinstrument|{{#pos:{{#var:types}}|MusicalInstrument}} }}<!--
-->{{#vardefine:is_throwable|{{#pos:{{#var:types}}|Throwable}} }}<!--
-->{{#vardefine:is_lightsource|{{#pos:{{#var:types}}|LightSource}} }}<!--
-->{{#vardefine:is_mining|{{#pos:{{#var:types}}|Mining}} }}<!--
Create an array that will be filtered out from the stats data cell.
-->{{#arraydefine:stats_filter|Move Speed,Physical Weapon Damage}}<!--
-->{{#arraydefine:allstats|{{Utility Data|{{#var:current}}|Stats|AllStats}} }}{{#arraydiff:allstats|allstats|stats_filter}}<!--
-->{{#arraydefine:all_abilities|{{Utility Data|{{#var:current}}|Abilities|All}} }}<!--
-->{{#arraydefine:effects_filter|Scaling,Duration}}<!--
-->{{#arraydefine:ability_filter|Consume,Throw}}<!--
 
--><tr><!--
Iconbox
--><td><!--
-->{{Iconbox<!--
-->|{{#var:current}}<!--
-->|rarity=<!--
-->{{#if:{{#pos:{{#var:rarities}}|,}}<!--
-->|2<!--
-->|{{#var:rarities}} }}<!--
-->|caption=<!--
-->{{#if:{{#pos:{{#var:rarities}}|,}}<!--
-->||<span class="colorrarity{{#var:rarities}}">{{#var:current}}</span>}} }}</td><!--
 
Classes
-->{{#if:{{#var:is_drink}}{{#var:is_consumable}}{{#var:is_healing_consumable}}{{#var:is_soulheart}}<!--
-->||<td>{{#replace:{{Utility Data|{{#var:current}}|Classes}}|,|<br>}}</td>}}<!--
 
Movement Speed
-->{{#if:{{#var:is_soulheart}}<!--
-->||<td><!--
WARNING: This structure assumes every utility has uniform movement speed stats.
It is possible that in the future, there exists a utility that doesn't have move speed 5.
In such a case, we would have to change the logic of the second switch statement.
-->{{#switch:1<!--
-->|{{#if:{{#vardefineecho:utility_stat|{{Utility Data|{{#var:current}}|Stats|Move speed}} }}|1|}}=<!--
-->{{#var:utility_stat}}<!--
-->|{{#if:{{#vardefineecho:utility_stat|{{Utility Data|{{#var:current}}|Stats|Move speed 5}} }}|1|}}=<!--
--><span class="colorrarity0">{{Utility Data|{{#var:current}}|Stats|Move speed 0}}</span><br><!--
--><span class="colorrarity1">{{Utility Data|{{#var:current}}|Stats|Move speed 1}}</span><br><!--
--><span class="colorrarity2">{{Utility Data|{{#var:current}}|Stats|Move speed 2}}</span><br><!--
--><span class="colorrarity3">{{Utility Data|{{#var:current}}|Stats|Move speed 3}}</span><br><!--
--><span class="colorrarity4">{{Utility Data|{{#var:current}}|Stats|Move speed 4}}</span><br><!--
--><span class="colorrarity5">{{Utility Data|{{#var:current}}|Stats|Move speed 5}}</span><br><!--
--><span class="colorrarity6">{{Utility Data|{{#var:current}}|Stats|Move speed 6}}</span><br><!--
--><span class="colorrarity7">{{Utility Data|{{#var:current}}|Stats|Move speed 7}}</span>}}</td>}}<!--
 
Damages
-->{{#if:{{#var:is_drink}}{{#var:is_consumable}}{{#var:is_healing_consumable}}{{#var:is_soulheart}}<!--
-->||<td><!--
WARNING: This structure assumes every combat utility has uniform weapon damage stats.
It is possible that in the future, there exists a utility that doesn't have phys. wep. damage 5.
In such a case, we would have to change the logic of the second switch statement.
-->{{#switch:1<!--
-->|{{#if:{{#vardefineecho:utility_stat|{{Utility Data|{{#var:current}}|Stats|Physical weapon damage}} }}|1|}}=<!--
-->{{#var:utility_stat}}<!--
-->|{{#if:{{#vardefineecho:utility_stat|{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 5}} }}|1|}}=<!--
--><span class="colorrarity0">{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 0}}</span><br><!--
--><span class="colorrarity1">{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 1}}</span><br><!--
--><span class="colorrarity2">{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 2}}</span><br><!--
--><span class="colorrarity3">{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 3}}</span><br><!--
--><span class="colorrarity4">{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 4}}</span><br><!--
--><span class="colorrarity5">{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 5}}</span><br><!--
--><span class="colorrarity6">{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 6}}</span><br><!--
--><span class="colorrarity7">{{Utility Data|{{#var:current}}|Stats|Physical weapon damage 7}}</span><!--
-->|{{#ifeq:{{lc:{{#var:current}} }}|hunting trap|1}}=<!--
-->15 True Damage}}</td>}}<!--
 
Stats
-->{{#if:{{#var:is_drink}}{{#var:is_consumable}}{{#var:is_healing_consumable}}{{#var:is_lightsource}}{{#var:is_throwable}}{{#var:is_soulheart}}{{#var:is_installable}}<!--
-->||<td><!--
-->{{#loop:i|0|{{#arraysize:allstats}}<!--
-->|{{#vardefine:stat|{{#arrayindex:allstats|{{#var:i}} }} }}<!--
If the stats isn't Physical Utility Damage or Move Speed, display it.
--><span style="color:#eee8;">{{#var:stat}}</span><br><!--
-->{{#switch:1<!--
-->|{{#if:{{#vardefineecho:utility_stat|{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} }} }}|1|}}=<!--
-->{{#var:utility_stat}}<!--
-->|{{#if:{{#vardefineecho:utility_stat|{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 5}} }}|1|}}=<!--
--><span class="colorrarity0">{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 0}}</span><br><!--
--><span class="colorrarity1">{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 1}}</span><br><!--
--><span class="colorrarity2">{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 2}}</span><br><!--
--><span class="colorrarity3">{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 3}}</span><br><!--
--><span class="colorrarity4">{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 4}}</span><br><!--
--><span class="colorrarity5">{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 5}}</span><br><!--
--><span class="colorrarity6">{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 6}}</span><br><!--
--><span class="colorrarity7">{{Utility Data|{{#var:current}}|Stats|{{#var:stat}} 7}}</span>}} }}</td>}}<!--
 
Effect
--><td><!--
-->{{#switch:1<!--
-->|{{#if:{{#var:is_consumable}}|1}}=<!--
--><div style="display:inline-block; border-left:3px solid #FFF8; width:fit-content; padding:10px; margin:20px; background-color:#0008; color:#EEE8"><!--
-->{{Utility Data|{{#var:current}}|FlavorText}}</div><br><!--
-->{{#switch:{{lc:{{#var:current}}}}<!--
-->|skull key=Opens the Skull Door. This door can only be found on the Inferno map that features Ghost King, in the Demon Gate module.<!--
-->|golden key=Opens the Golden Door. This door can be found in various modules of the Crypts maps, specifically: the Treasure Room, the Armory, and the Wheel.<!--
-->|old rusty key=Opens the Rusty Iron Door. This door can only be found in Ruins.<!--
-->|mystical gem=Opens the Goblin Stone Door. This door can only be found in Goblin Caves, in the Goblin Rooms module.<!--
-->|lockpick=Opens locked doors and chests. Will not work on doors that require special keys.<!--
-->|trap disarming kit=Disables environmental traps.<!--
-->|#default=TODO_ADD_MISSING_INFORMATION}}<!--
 
-->|{{#if:{{#var:is_drink}}{{#var:is_healing_consumable}}{{#var:is_soulheart}}{{#var:is_lightsource}}|1}}=<!--
-->{{#arraydefine:other_ability|{{Utility Data|{{#var:current}}|Abilities|Other|All}} }}{{#arrayintersect:other_ability|other_ability|ability_filter}}<!--
-->{{#arraydefine:effects|{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|All}} }}<!--
-->{{#loop:i|0|{{#arraysize:effects}}<!--
Collect the information for the effect
-->|{{#vardefine:effects|{{#arrayindex:effects|{{#var:i}} }} }}<!--
 
Find the effect name
-->{{#arraydefine:effect_data_name|{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|Global|All}} }}<!--
-->{{#arraydiff:effect_data_name|effect_data_name|effects_filter}}<!--
If the effect name is empty, either it's not a global effect or the item doesn't have an effect outside of duration and scaling. We double check the rarity effects.
-->{{#ifexpr:{{#arraysize:effect_data_name}} < 1<!--
-->|{{#arraydefine:effect_data_name|{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|{{#arrayindex:rarities|0}}|All}} }}<!--
-->{{#arraydiff:effect_data_name|effect_data_name|effects_filter}} }}<!--
 
-->{{#vardefine:effect_data|<!--
-->{{#switch:1<!--
-->|{{#if:{{#vardefineecho:global|{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|Global|{{#arrayprint:effect_data_name}} }} }}|1}}=<!--
-->{{#var:global}}<!--
-->|{{#if:{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|{{#arrayindex:rarities|0}}|{{#arrayprint:effect_data_name}} }}|1}}=<!--
-->{{#loop:i|0|{{#arraysize:rarities}}<!--
-->|{{#ifeq:{{#var:i}}|0||&nbsp;{{!}}&nbsp;}}<!--
Need to color by rarity
--><span class="colorrarity{{#arrayindex:rarities|{{#var:i}} }}"><!--
-->{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|{{#arrayindex:rarities|{{#var:i}} }}|{{#arrayprint:effect_data_name}} }}</span>}} }} }}<!--
-->{{#vardefine:duration_data|<!--
-->{{#switch:1<!--
-->|{{#if:{{#vardefineecho:global|{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|Global|Duration}} }}|1}}=<!--
-->{{#var:global}}<!--
-->|{{#if:{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|{{#arrayindex:rarities|0}}|Duration}}|1}}=<!--
-->{{#loop:i|0|{{#arraysize:rarities}}<!--
-->|{{#ifeq:{{#var:i}}|0||&nbsp;{{!}}&nbsp;}}<!--
Need to color by rarity
--><span class="colorrarity{{#arrayindex:rarities|{{#var:i}} }}"><!--
-->{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|{{#arrayindex:rarities|{{#var:i}} }}|Duration}}</span>}} }} }}<!--
-->{{#vardefine:scaling_data|<!--
-->{{#switch:1<!--
-->|{{#if:{{#vardefineecho:global|{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|Global|scaling}} }}|1}}=<!--
-->{{#var:global}}<!--
-->|{{#if:{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|{{#arrayindex:rarities|0}}|scaling}}|1}}=<!--
-->{{#loop:i|0|{{#arraysize:rarities}}<!--
-->|{{#ifeq:{{#var:i}}|0||&nbsp;{{!}}&nbsp;}}<!--
Need to color by rarity
--><span class="colorrarity{{#arrayindex:rarities|{{#var:i}} }}"><!--
-->{{Utility Data|{{#var:current}}|Abilities|Other|{{#arrayprint:other_ability}}|Effects|{{#var:effects}}|Rarity|{{#arrayindex:rarities|{{#var:i}} }}|scaling}}</span>}} }} }}<!--
 
-->{{Effects|{{#var:effects}}<!--
-->|type={{lc:{{#arrayprint:effect_data_name}} }}<!--
-->|effect={{lc:{{#var:effect_data}} }}<!--
-->|duration={{lc:{{#var:duration_data}} }}<!--
-->|scaling={{lc:{{#var:scaling_data}} }} }}&nbsp;}}<!--
 
TODO: Automate information.
-->|{{#if:{{#var:is_installable}}|1}}=<!--
-->{{#switch:{{lc:{{#var:current}}}}<!--
-->|campfire kit=<!--
-->Build a Campfire that will regenerate 3 HP and 34 Skill Points per second for <span class="colorrarity0">15</span> {{!}} <span class="colorrarity1">18</span> {{!}} <span class="colorrarity2">21</span> {{!}} <span class="colorrarity3">24</span> {{!}} <span class="colorrarity4">27</span> {{!}}<span class="colorrarity5">30</span> {{!}} <span class="colorrarity6">33</span> {{!}} <span class="colorrarity7">36</span> s<!--
-->|hunting trap=<!--
-->Set a hunting trap that immobilizes and damages the target until it expires or until it is disarmed.<br><br>1 True Damage per second<br>2 True Damage per step<br><br><!--
-->Players are trapped for <span class="colorrarity0">6</span> {{!}} <span class="colorrarity1">8</span> {{!}} <span class="colorrarity2">10</span> {{!}} <span class="colorrarity3">14</span> {{!}} <span class="colorrarity4">18</span> {{!}} <span class="colorrarity5">22</span> {{!}} <span class="colorrarity6">26</span> {{!}} <span class="colorrarity7">30</span> s<!--
--><br>Monsters are trapped for 7 s<br><!--
-->|#default=TODO_ADD_MISSING_INFORMATION}}<!--
 
-->|{{#if:{{#var:is_mining}}|1}}=<!--
-->Enables the player to interact with [[props#mining_nodes|mining nodes]] to produce [[ore]].<!--
-->|{{#if:{{#var:is_musicalinstrument}}|1}}=<!--
-->Allows one to play [[Bard#Music-0|{{lc:{{#var:current}}}} songs]], if they have the [[Bard#Skills-0|music memory]] and songs equipped.</td><!--
-->|{{#if:{{#var:is_throwable}}|1}}=<!--
-->Throw a {{lc:{{#var:current}}}} at the target location.}}</td><!--
 
Action/Interaction Time
-->{{#if:{{#var:is_musicalinstrument}}{{#var:is_lightsource}}{{#var:is_throwable}}{{#var:is_mining}}<!--
-->||<td><!--
-->{{#vardefine:self_effects|{{Utility Data|{{#var:current}}|Abilities|Other|Self|Effects|All}} }}<!--
-->{{#vardefine:duration|<!--
-->{{#switch:1<!--
-->|{{#if:{{#vardefineecho:global|{{Utility Data|{{#var:current}}|Abilities|Other|Self|Effects|{{#var:self_effects}}|Rarity|Global|Duration}} }}|1}}=<!--
-->{{#var:global}} s<br>100% Scaling<!--
-->|{{#if:{{Utility Data|{{#var:current}}|Abilities|Other|Self|Effects|{{#var:self_effects}}|Rarity|5|Duration}}|1}}=<!--
-->{{#loop:i|0|{{#arraysize:rarities}}<!--
-->|{{#ifeq:{{#var:i}}|0||&nbsp;{{!}}&nbsp;}}<!--
--><span class="colorrarity{{#arrayindex:rarities|{{#var:i}} }}"><!--
-->{{Utility Data|{{#var:current}}|Abilities|Other|Self|Effects|{{#var:self_effects}}|Rarity|{{#arrayindex:rarities|{{#var:i}} }}|Duration}}</span>}} s<br>100% Scaling<!--
-->|#default={{#switch:{{lc:{{#var:current}} }}<!--
-->|campfire kit=<!--
-->15 s<br>100% Scaling<!--
-->|hunting trap=<!--
--><span class="colorrarity0">7</span> {{!}} <span class="colorrarity1">6</span> {{!}} <span class="colorrarity2">5</span> {{!}} <span class="colorrarity3">4</span> {{!}} <span class="colorrarity4">3</span> {{!}} <span class="colorrarity5">2</span> {{!}} <span class="colorrarity6">1</span> {{!}} <span class="colorrarity7">1</span> s<br>100% Scaling<!--
-->|bandage=<!--
-->5.5 s<br>50% Scaling<!--
-->|surgical kit=<!--
--><span class="colorrarity0">30</span> {{!}} <span class="colorrarity1">27</span> {{!}} <span class="colorrarity2">24</span> {{!}} <span class="colorrarity3">20</span> {{!}} <span class="colorrarity4">18</span> {{!}} <span class="colorrarity5">16</span> {{!}} <span class="colorrarity6">12</span> {{!}} <span class="colorrarity7">10</span> s<br>50% Scaling}} }} }}<!--
-->{{#if:{{#var:duration}}|{{#var:duration}} }}</td>}}<!--
 
Action Movement Speed
-->{{#if:{{#var:is_soulheart}}{{#var:is_installable}}<!--
-->||<td><!--
If the utility has abilities, loop through them
-->{{#loop:i|0|{{#arraysize:all_abilities}}<!--
-->|{{#vardefine:ability|{{#arrayindex:all_abilities|{{#var:i}} }} }}<!--
-->{{#if:  {{#vardefineecho:movespeed|{{Utility Data|{{#var:current}}|abilities|{{#var:ability}}|Global|MovementMultiplier}} }}<!--
-->{{#vardefineecho:preparemovespeed|{{Utility Data|{{#var:current}}|abilities|{{#var:ability}}|Global|PrepareMovementMultiplier}} }}<!--
-->|<span style="color:#eee8; font-size:110%; font-weight:bold;"><!--
-->{{#ifeq:{{#var:ability}}|Other<!--
-->|All Actions<!--
-->|{{#var:ability}} Attacks}}<br></span><!--
-->{{#if:{{#var:preparemovespeed}}<!--
-->|<span style="color:#eee8;"><!--
-->Mid Attack: </span><!--
-->{{#var:preparemovespeed}}<br><!--
--><span style="color:#eee8;"><!--
-->Otherwise: </span><!--
-->{{#var:movespeed}}<br><br><!--
 
-->|<span style="color:#eee8;"><!--
-->Always: </span><!--
-->{{#var:movespeed}}<br><br>}}<!--
 
Else loop through all attacks
-->|{{#arraydefine:all_attacks|{{Utility Data|{{#var:current}}|abilities|{{#var:ability}}|all}} }}<!--
-->{{#loop:i|0|{{#arraysize:all_attacks}}<!--
-->|{{#vardefine:attack|{{#arrayindex:all_attacks|{{#var:i}} }} }}<!--
If the attack has a movement multiplier, display it
-->{{#if:  {{#vardefineecho:movespeed|{{Utility Data|{{#var:current}}|abilities|{{#var:ability}}|{{#var:attack}}|MovementMultiplier}} }}<!--
-->{{#vardefineecho:preparemovespeed|{{Utility Data|{{#var:current}}|abilities|{{#var:ability}}|{{#var:attack}}|PrepareMovementMultiplier}} }}<!--
-->|<span style="color:#eee8; font-size:110%; font-weight:bold;"><!--
-->{{#if:{{#pos:{{#var:ability}}|Other}}<!--
-->|{{#var:attack}}<!--
-->|{{#var:ability}} {{#var:attack}} }}<br></span><!--
-->{{#if:{{#var:preparemovespeed}}<!--
-->|<span style="color:#eee8;"><!--
-->Mid Attack: </span><!--
-->{{#var:preparemovespeed}}<br><!--
--><span style="color:#eee8;"><!--
-->Otherwise: </span><!--
-->{{#var:movespeed}}<br><br><!--
 
-->|<span style="color:#eee8;"><!--
-->Always: </span><!--
-->{{#var:movespeed}}<br><br>}} }} }} }} }}</td>}}<!--
Slowdown On Hit
-->{{#if:{{#var:is_drink}}{{#var:is_consumable}}{{#var:is_healing_consumable}}{{#var:is_soulheart}}{{#var:is_installable}}<!--
-->||<td><!--
-->{{#if:{{#vardefineecho:hitslow|{{Utility Data|{{#var:current}}|hitslow}} }}<!--
-->|<span style="color:#eee8;">Hitslow<br></span>{{#var:hitslow}}<br><!--
--><span style="color:#eee8;">Hitslow Duration<br></span>{{Utility Data|{{#var:current}}|hitslowduration}}s}}</td>}}</tr>}}</table><!--


--></includeonly><noinclude>
--></includeonly><noinclude>
List Utilities and generate rows with them
List Utilities and generate rows with them
== Example ==
== Example ==
<pre>{{GenerateUtilityRows|Drink}}</pre>
<pre>{{GenerateUtilityTable|Drink}}</pre>
{{GenerateUtilityRows|Drink}}
{{GenerateUtilityTable|Drink}}
<pre>{{GenerateUtilityRows|Consumable}}</pre>
<pre>{{GenerateUtilityTable|Consumable}}</pre>
{{GenerateUtilityRows|Consumable}}
{{GenerateUtilityTable|Consumable}}
<pre>{{GenerateUtilityRows|Installable}}</pre>
<pre>{{GenerateUtilityTable|Installable}}</pre>
{{GenerateUtilityRows|Installable}}
{{GenerateUtilityTable|Installable}}
<pre>{{GenerateUtilityRows|MusicalInstrument}}</pre>
<pre>{{GenerateUtilityTable|MusicalInstrument}}</pre>
{{GenerateUtilityRows|MusicalInstrument}}
{{GenerateUtilityTable|MusicalInstrument}}
<pre>{{GenerateUtilityRows|LightSource}}</pre>
<pre>{{GenerateUtilityTable|LightSource}}</pre>
{{GenerateUtilityRows|LightSource}}
{{GenerateUtilityTable|LightSource}}
<pre>{{GenerateUtilityRows|Throwable}}</pre>
<pre>{{GenerateUtilityTable|Throwable}}</pre>
{{GenerateUtilityRows|Throwable}}
{{GenerateUtilityTable|Throwable}}
<pre>{{GenerateUtilityRows|Mining}}</pre>
<pre>{{GenerateUtilityTable|Mining}}</pre>
{{GenerateUtilityRows|Mining}}
{{GenerateUtilityTable|Mining}}
<pre>{{GenerateUtilityRows|SoulHeart}}</pre>
{{GenerateUtilityRows|SoulHeart}}
</noinclude>
</noinclude>

Revision as of 22:32, 15 May 2024

List Utilities and generate rows with them

Example

{{GenerateUtilityTable|Drink}}
Name Movement Speed Effect Action Time Action Movement Speed
-20 You gain 4 | 5 | 6 | 7 | 8 | 9 | 10 strength for 15 seconds. You become dizzy for 15 seconds.  3 s
100% Scaling
-20Creates a magical base shield that blocks 10 | 15 | 20 | 25 | 30 | 35 | 40 magical damage for 24 seconds. Damage blocked by the shield will be unaffected by Damage Reduction or limb/headshot multipliers. The shield has no scaling. 3 s
100% Scaling
Consume
Always: 75%

-20Heals 20 health points over 20 | 17.5 | 15 | 12.5 | 10 | 7.5 | 5 seconds. This counts as magical base healingand has 50% scaling. 3 s
100% Scaling
Consume
Always: 75%

-20Makes you invisible for 11 | 14 | 17 | 20 | 23 | 26 | 29 seconds. Invisibility is broken when you move, take action, or get damaged. 3 s
100% Scaling
Consume
Always: 75%

-20Self
Always: 75%

-20Creates a physical base shield that blocks 10 | 15 | 20 | 25 | 30 | 35 | 40 physical damage for 24 seconds. Damage blocked by the shield will be unaffected by Damage Reduction or limb/headshot multipliers. The shield has no scaling. 3 s
100% Scaling
Consume
Always: 75%

-20Heals 100 health points over 100 seconds. This counts as magical base healingand has 50% scaling. 3 s
100% Scaling
Consume
Always: 75%

{{GenerateUtilityTable|Consumable}}
Name Movement Speed Effect Interaction Time Action Movement Speed
-20Provides 15 | 19 | 24 | 30 | 37 | 45 | 54 recoverable base healing. 5.5 s
50% Scaling
Consume
Always: 50%

A weathered iron key encased in frost, hinting at locked mysteries buried in the coldest reaches.

TODO_ADD_MISSING_INFORMATION
An intricate golden key that may lead to priceless treasure.

Opens the Golden Door. This door can be found in various modules of the Crypts maps, specifically: the Treasure Room, the Armory, and the Wheel.
Lockpicks are versatile tools, capable of opening a wide variety of locks.

Opens locked doors and chests. Will not work on doors that require special keys.
A beautiful jewel that shines mysteriously. There are elaborate parts that seem to fit somewhere.

Opens the Goblin Stone Door. This door can only be found in Goblin Caves, in the Goblin Rooms module.
A rusty old key that doubts whether it will open the door.

Opens the Rusty Iron Door. This door can only be found in Ruins.
A mysterious key with an ominous skull embedded in it's core.

Opens the Skull Door. This door can only be found on the Inferno map that features Ghost King, in the Demon Gate module.
-20Provides 100% percent max health healing. 30 | 27 | 24 | 20 | 18 | 16 | 12 | 10 s
50% Scaling
Consume
Always: 50%

A compact kit filled with an assortment of finely crafted specialized tools that make disarming even the most complex traps seem like child's play.

Disables environmental traps.
{{GenerateUtilityTable|Installable}}
Name Class Movement Speed Damage on Hit Effect Interaction Time
-20Build a Campfire that will regenerate 3 HP and 34 Skill Points per second for 15 | 18 | 21 | 24 | 27 |30 | 33 | 36 s15 s
100% Scaling
Ranger-2015 True DamageSet a hunting trap that immobilizes and damages the target until it expires or until it is disarmed.

1 True Damage per second
2 True Damage per step

Players are trapped for 6 | 8 | 10 | 14 | 18 | 22 | 26 | 30 s
Monsters are trapped for 7 s
7 | 6 | 5 | 4 | 3 | 2 | 1 | 1 s
100% Scaling
{{GenerateUtilityTable|MusicalInstrument}}
Name Class Movement Speed Damage on Hit Stats Effect Action Movement Speed Slowdown On Hit

-29
-29~-28
-28~-27
-27~-26
-26~-25
-25~-24
-24~-23
Physical Base Weapon Damage

24
25~26
27~28
29~30
31
32
33~34
Allows one to play drum songs, if they have the music memory and songs equipped.Play
Always: 70%

Attack 1
Always: 75%

-13Physical Base Weapon Damage

22
23~24
25~26
27~28
29
30
31~32Agility

1
2
2
3
3
4
4Dexterity

2
2
3
3
4
4
5
Allows one to play flute songs, if they have the music memory and songs equipped.Play
Always: 70%

Riposte
Always: 70%

Riposte Attack 1
Always: 70%

Block Reaction
Always: 97%


-15
-15
-14
-14~-13
-13~-12
-12~-11
-11~-10
Physical Base Weapon Damage

20
21~22
23~24
25~26
27
28
29~30Knowledge

1
2
3
4
5
6
7
Allows one to play lute songs, if they have the music memory and songs equipped.Primary Attacks
Mid Attack: 85%
Otherwise: 70%

Play
Always: 70%


-17
-16
-15
-14
-13
-12
-10
Resourcefulness

1
2
3
4
5
6
7
Allows one to play lyre songs, if they have the music memory and songs equipped.Play
Always: 70%

{{GenerateUtilityTable|LightSource}}
Name Class Movement Speed Damage on Hit Effect Action Movement Speed Slowdown On Hit
-10While throwing, move speed is reduced by -20.  Throw
Always: 97%

Throw
Always: 97%

-10While throwing, move speed is reduced by -20.  All Actions
Always: 97%

Throw
Always: 97%

Primary Attacks
Mid Attack: 98.5%
Otherwise: 97%

LanternThrow
Always: 97%

{{GenerateUtilityTable|Throwable}}
Name Class Movement Speed Damage on Hit Effect Action Movement Speed Slowdown On Hit
Barbarian
Fighter
Bard
-10Throw a francisca axe at the target location.Primary Attack 1
Always: 75%

Rogue
Wizard
Bard
-10Throw a throwing knife at the target location.Primary Attack 1
Always: 85%

{{GenerateUtilityTable|Mining}}
Name Class Movement Speed Damage on Hit Stats Effect Action Movement Speed Slowdown On Hit
-45Physical Base Weapon Damage

25
26~27
28~29
30~31
32
33
35~36Regular Interaction Speed

1%
3%
5%
10%
15%
20%
25%
Enables the player to interact with mining nodes to produce ore.Attack 1
Mid Attack: 82.5%
Otherwise: 65%