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.)
(The last change fixed hitstop for utility items, where applicable. Accidentally hit ctrl+enter to type additional changes, but that saved the changes before I could type them out.)
 
(14 intermediate revisions by the same user not shown)
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 interaction time data for installables.
- 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 Penalty</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 Penalty</th>
|lightsource
|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=
<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%">Action Movement Penalty</th>
<th style="width:10%">Slowdown On Hit</th>
|throwable=
|throwable=
<th style="width:5%">Class</th>
<th style="width:5%">Class</th>
Line 17: Line 36:
<th style="width:10%">Damage on Hit</th>
<th style="width:10%">Damage on Hit</th>
<th style="width:20%">Effect</th>
<th style="width:20%">Effect</th>
<th style="width:10%">Action Movement Speed</th>
<th style="width:10%">Action Movement Penalty</th>
<th style="width:10%">Slowdown On Hit</th>
<th style="width:10%">Slowdown On Hit</th>
|musicalinstrument
|musicalinstrument
|mining=
|mining=
<th style="width:5%">Class</th>
<th style="width:5%">Movement Speed</th>
<th style="width:5%">Movement Speed</th>
<th style="width:10%">Damage on Hit</th>
<th style="width:10%">Damage on Hit</th>
<th style="width:10%">Stats</th>
<th style="width:10%">Stats</th>
<th style="width:20%">Effect</th>
<th style="width:20%">Effect</th>
<th style="width:10%">Action Movement Speed</th>
<th style="width:10%">Action Movement Penalty</th>
<th style="width:10%">Slowdown On Hit</th>
<th style="width:10%">Slowdown On Hit</th>
|soulheart=
|soulheart=
Line 37: Line 55:
<th style="width:20%">Effect</th>
<th style="width:20%">Effect</th>
<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 Penalty</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}}}}} }}<!--
-->{{#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}} }}<!--
-->{{#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 Base 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}}{{#var:is_lightsource}}{{#var:is_mining}}{{#var:is_musicalinstrument}}<!--
-->||<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="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 Base Weapon Damage}} }}|1|}}=<!--
-->{{#var:utility_stat}}<!--
-->|{{#if:{{#vardefineecho:utility_stat|{{Utility Data|{{#var:current}}|Stats|Physical Base Weapon Damage 5}} }}|1|}}=<!--
--><span class="colorrarity1">{{Utility Data|{{#var:current}}|Stats|Physical Base Weapon Damage 1}}</span><br><!--
--><span class="colorrarity2">{{Utility Data|{{#var:current}}|Stats|Physical Base Weapon Damage 2}}</span><br><!--
--><span class="colorrarity3">{{Utility Data|{{#var:current}}|Stats|Physical Base Weapon Damage 3}}</span><br><!--
--><span class="colorrarity4">{{Utility Data|{{#var:current}}|Stats|Physical Base Weapon Damage 4}}</span><br><!--
--><span class="colorrarity5">{{Utility Data|{{#var:current}}|Stats|Physical Base Weapon Damage 5}}</span><br><!--
--><span class="colorrarity6">{{Utility Data|{{#var:current}}|Stats|Physical Base Weapon Damage 6}}</span><br><!--
--><span class="colorrarity7">{{Utility Data|{{#var:current}}|Stats|Physical Base Weapon Damage 7}}</span><!--
-->|{{#ifeq:{{lc:{{#var:current}} }}|hunting trap|1}}=<!--
-->{{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Poor|Effects|huntingtraphit|truephysicalbasedamage}} }}</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}} }} }}<!--
--><div style="display:inline-block; vertical-align:top; margin-left:15px; margin-right:15px;"><!--
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="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>}}</div>}}</td>}}<!--
 
Effect
--><td><!--
-->{{#switch:1<!--
-->|{{#ifeq:{{#var:current}}|Potion of Luck|1}}=<!--
-->{{Effects|Potion of Luck|3}}<br><!--
-->{{Effects|Potion of Luck|5}}<!--
 
-->|{{#if:{{#var:is_consumable}}|1}}=<!--
-->{{#switch:{{lc:{{#var:current}} }}<!--
-->|skull key=Opens the [[Skull Stone Door|Skull Door]]. This door can only be found on the Inferno map that features Ghost King, in the Demon Gate module.<!--
-->|frozen iron key=Opens the [[Frozen Iron Door]]. This door can only be found in Ice Abyss, in the Charnel House 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=Allows the player to disable 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;}}<!--
 
-->|{{#if:{{#var:is_installable}}|1}}=<!--
-->{{#switch:{{lc:{{#var:current}} }}<!--
-->|campfire kit=<!--
-->Build a Campfire which will release a healing aura that [[Healing#Physical_Base_Healing|recovers 3 HP]] and [[Spell_Restoration#Campfire|34 Skill Points per second]] for<br><!--
--><span class="colorrarity1">{{Prop Data|Campfire|Global|Abilities|Campfire Aura Poor|Effects|campfireturnonstate_poor|Duration}}</span> {{!}} <!--
--><span class="colorrarity2">{{Prop Data|Campfire|Global|Abilities|Campfire Aura Common|Effects|campfireturnonstate_Common|Duration}}</span> {{!}} <!--
--><span class="colorrarity3">{{Prop Data|Campfire|Global|Abilities|Campfire Aura Uncommon|Effects|campfireturnonstate_Uncommon|Duration}}</span> {{!}} <!--
--><span class="colorrarity4">{{Prop Data|Campfire|Global|Abilities|Campfire Aura Rare|Effects|campfireturnonstate_Rare|Duration}}</span> {{!}} <!--
--><span class="colorrarity5">{{Prop Data|Campfire|Global|Abilities|Campfire Aura Epic|Effects|campfireturnonstate_Epic|Duration}}</span> {{!}} <!--
--><span class="colorrarity6">{{Prop Data|Campfire|Global|Abilities|Campfire Aura Legend|Effects|campfireturnonstate_Legend|Duration}}</span> {{!}} <!--
--><span class="colorrarity7">{{Prop Data|Campfire|Global|Abilities|Campfire Aura Unique|Effects|campfireturnonstate_Unique|Duration}}</span> <!--
-->|hunting trap=<!--
-->Set a hunting trap that applies a {{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Poor|Effects|trapped_player_Poor|movespeedbonus}} debuff and damages the target until it expires or until it is disarmed.<br><br>1 [[Damage#True_Base_Damage|True Physical Base Damage]]<br>2 [[Damage#True_Base_Damage|True Physical Base Damage]] per step<br><br><!--
-->Players are trapped for <!--
--><span class="colorrarity1">{{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Poor|Effects|trapped_player_Poor|Duration}}</span> {{!}} <!--
--><span class="colorrarity2">{{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Common|Effects|trapped_player_Common|Duration}}</span> {{!}} <!--
--><span class="colorrarity3">{{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Uncommon|Effects|trapped_player_Uncommon|Duration}}</span> {{!}} <!--
--><span class="colorrarity4">{{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Rare|Effects|trapped_player_Rare|Duration}}</span> {{!}} <!--
--><span class="colorrarity5">{{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Epic|Effects|trapped_player_Epic|Duration}}</span> {{!}} <!--
--><span class="colorrarity6">{{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Legend|Effects|trapped_player_legend|Duration}}</span> {{!}} <!--
--><span class="colorrarity7">{{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Unique|Effects|trapped_player_Unique|Duration}}</span> <!--
--><br>Monsters are trapped for {{Prop Data|Hunting Trap|Global|Abilities|hunting trap activate Unique|Effects|trapped_monster|Duration}}<br><!--
-->|#default=TODO_ADD_MISSING_INFORMATION}}<!--
 
-->|{{#if:{{#var:is_mining}}|1}}=<!--
-->Enables the player to interact with [[Containers-Global#Ore|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}}{{#var:is_soulheart}}<!--
-->||<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|DrinkPotionActivateState|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=<!--
-->10 s<br>100% Scaling<!--
-->|hunting trap=<!--
--><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=<!--
-->4 s<br>50% Scaling<!--
-->|surgical kit=<!--
--><span class="colorrarity1">15</span> {{!}} <!--
--><span class="colorrarity2">13</span> {{!}} <!--
--><span class="colorrarity3">11</span> {{!}} <!--
--><span class="colorrarity4">9</span> {{!}} <!--
--><span class="colorrarity5">7</span> {{!}} <!--
--><span class="colorrarity6">5</span> {{!}} <!--
--><span class="colorrarity7">3</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
-->{{#vardefine:ability|{{#if:{{#pos:{{Utility Data|{{#var:current}}|Abilities|All}}|Primary}}|Primary|Other}} }}<!--
-->{{#arraydefine:all_attacks|{{Utility Data|{{#var:current}}|Abilities|{{#var:ability}}|all}} }}{{#arraydefine:global|Global,Play,Dissonance,PartyMaker,Riposte,Activate Ability,Throw}}{{#arraydiff:all_attacks|all_attacks|global}}<!--
-->{{#vardefine:global_hitslow|{{Utility Data|{{#var:current}}|Abilities|{{#var:ability}}|Global|Effects|HitSlow|Rarity|Global|Move Speed Bonus}} }}<!--
-->{{#vardefine:global_hitslow_duration|{{Utility Data|{{#var:current}}|Abilities|{{#var:ability}}|Global|Effects|HitSlow|Rarity|Global|Duration}} }}<!--
 
-->{{#if:{{#var:is_drink}}{{#var:is_consumable}}{{#var:is_healing_consumable}}{{#var:is_soulheart}}{{#var:is_installable}}<!--
-->||<td><!--
-->{{#if:{{#var:global_hitslow}}<!--
-->|<span style="color:#eee8;">Hitslow</span><br>{{#var:global_hitslow}}<!--
-->|{{#loop:i|0|{{#arraysize:all_attacks}}<!--
-->|{{#vardefine:current_attack|{{#arrayindex:all_attacks|{{#var:i}} }} }}<!--
-->{{#ifeq:{{#var:i}}|0|<span style="color:#eee8;">Hitslow</span><br>|/}}<!--
-->{{Utility Data|{{#var:current}}|Abilities|{{#var:ability}}|{{#var:current_attack}}|Effects|HitSlow|Rarity|Global|Move Speed Bonus}} }} }}<!--
-->{{#if:{{#var:global_hitslow_duration}}<!--
-->|&nbsp;for&nbsp;{{#var:global_hitslow_duration}}s<!--
-->|{{#loop:i|0|{{#arraysize:all_attacks}}<!--
-->|{{#vardefine:current_attack|{{#arrayindex:all_attacks|{{#var:i}} }} }}<!--
-->{{#ifeq:{{#var:i}}|0|&nbsp;for&nbsp;|/}}<!--
-->{{Utility Data|{{#var:current}}|Abilities|{{#var:ability}}|{{#var:current_attack}}|Effects|HitSlow|Rarity|Global|Duration}}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>

Latest revision as of 00:38, 25 August 2024

List Utilities and generate rows with them

Example

{{GenerateUtilityTable|Drink}}
Name Movement Speed Effect Action Time Action Movement Penalty
-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%

-20While sitting, recharge spells for 17 spell points per second for 4 | 6 | 8 | 10 | 12 | 14 | 16 seconds. The recovery amount 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%

-20Increases Luck by 20(45%) or 50(35%) or 80(20%)
Increases Luck by 50(33.33%) or 100(33.33%) or 150(33.33%)
3 s
100% Scaling
Self
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 Penalty
-20Provides 15 | 19 | 24 | 30 | 37 | 45 | 54 recoverable base healing. 4 s
50% Scaling
Consume
Always: 50%

Opens the Frozen Iron Door. This door can only be found in Ice Abyss, in the Charnel House module.
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.
Opens locked doors and chests. Will not work on doors that require special keys.
Opens the Goblin Stone Door. This door can only be found in Goblin Caves, in the Goblin Rooms module.
Opens the Rusty Iron Door. This door can only be found in Ruins.
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. 15 | 13 | 11 | 9 | 7 | 5 | 3 s
50% Scaling
Consume
Always: 50%

Allows the player to disable environmental traps.
{{GenerateUtilityTable|Installable}}
Name Class Movement Speed Damage on Hit Effect Interaction Time
-20Build a Campfire which will release a healing aura that recovers 3 HP and 34 Skill Points per second for
18s | 21s | 24s | 27s | 30s | 33s | 36s
10 s
100% Scaling
Ranger-205 True Physical Base DamageSet a hunting trap that applies a -40% Move Speed Bonus debuff and damages the target until it expires or until it is disarmed.

1 True Physical Base Damage
2 True Physical Base Damage per step

Players are trapped for 3s | 4s | 5s | 6s | 7s | 8s | 9s
Monsters are trapped for 7s
6 | 5 | 4 | 3 | 2 | 1 | 1 s
100% Scaling
{{GenerateUtilityTable|MusicalInstrument}}
Name Movement Speed Damage on Hit Stats Effect Action Movement Penalty Slowdown On Hit
-29
-29~-28
-28~-27
-27~-26
-26~-25
-25~-24
-24~-23
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%

Hitslow
-25% for 1s
-1322
23~24
25~26
27~28
29
30
31~32
Agility
1
2
2
3
3
4
4
Dexterity
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%

Hitslow
-10% for 1s
-15
-15
-14
-14~-13
-13~-12
-12~-11
-11~-10
20
21~22
23~24
25~26
27
28
29~30
Knowledge
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%

Hitslow
-17% for 1s
-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 Movement Speed Damage on Hit Effect Action Movement Penalty 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%

10Throw
Always: 97%

Primary Attacks
Mid Attack: 98.5%
Otherwise: 97%

Hitslow
-7% for 0.5s
LanternThrow
Always: 97%

Hitslow
 for s
{{GenerateUtilityTable|Throwable}}
Name Class Movement Speed Damage on Hit Effect Action Movement Penalty Slowdown On Hit
Barbarian
Fighter
Bard
-1010
11
12
13
14
15
16
Throw a francisca axe at the target location.Primary Attack 1
Always: 75%

Hitslow
-35% for 1s
Rogue
Wizard
Bard
-1010
11
12
13
14
15
16
Throw a throwing knife at the target location.Primary Attack 1
Always: 85%

Hitslow
-25% for 1s
{{GenerateUtilityTable|Mining}}
Name Movement Speed Damage on Hit Stats Effect Action Movement Penalty Slowdown On Hit
-4525
26~27
28~29
30~31
32
33
35~36
Regular 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%

Hitslow
-7% for 0.5s