<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://deadlock.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=~2026-RescueMajesticParry631</id>
	<title>The Deadlock Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://deadlock.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=~2026-RescueMajesticParry631"/>
	<link rel="alternate" type="text/html" href="https://deadlock.wiki/Special:Contributions/~2026-RescueMajesticParry631"/>
	<updated>2026-09-01T14:26:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://deadlock.wiki/Module:AbilityHints?diff=92048</id>
		<title>Module:AbilityHints</title>
		<link rel="alternate" type="text/html" href="https://deadlock.wiki/Module:AbilityHints?diff=92048"/>
		<updated>2026-07-12T21:51:49Z</updated>

		<summary type="html">&lt;p&gt;~2026-RescueMajesticParry631: wording for debuff resist: &amp;quot;duration&amp;quot; =&amp;gt; &amp;quot;debuff duration&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Ability interaction hints: small item icons on ability cards showing how an&lt;br /&gt;
-- ability interacts with items (dispellable, reduced, blocked, etc.).&lt;br /&gt;
-- Membership is decided by Module:AbilityTable.is_member so these icons always&lt;br /&gt;
-- agree with the dynamic ability-interaction tables.&lt;br /&gt;
&lt;br /&gt;
local AbilityTable = require(&amp;quot;Module:AbilityTable&amp;quot;)&lt;br /&gt;
local icon_module  = require(&amp;quot;Module:Icon&amp;quot;)&lt;br /&gt;
local ability_data = mw.loadJsonData(&amp;quot;Data:AbilityData.json&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Display order. Each entry: { list = &amp;quot;...&amp;quot;, item = &amp;quot;...&amp;quot;, tip = &amp;quot;...&amp;quot; }&lt;br /&gt;
-- The icon is shown when the ability is a member of `list`.&lt;br /&gt;
local CONFIG = {&lt;br /&gt;
    { list = &amp;quot;melee&amp;quot;,           item = &amp;quot;Melee Lifesteal&amp;quot;,  tip = &amp;quot;Benefits from melee items&amp;quot; },&lt;br /&gt;
    { list = &amp;quot;movementbased&amp;quot;,   item = &amp;quot;Slowing Hex&amp;quot;,      tip = &amp;quot;Disabled by Slowing Hex&amp;quot; },&lt;br /&gt;
	{ list = &amp;quot;debuffresist&amp;quot;,    item = &amp;quot;Debuff Reducer&amp;quot;,   tip = &amp;quot;Debuff duration reduced by Debuff Resist&amp;quot; },&lt;br /&gt;
    { list = &amp;quot;heal&amp;quot;,            item = &amp;quot;Healing Booster&amp;quot;,  tip = &amp;quot;Healing amplified by Healing Booster and affected by healing reduction&amp;quot; },&lt;br /&gt;
    { list = &amp;quot;reactivebarrier&amp;quot;, item = &amp;quot;Reactive Barrier&amp;quot;, tip = &amp;quot;Triggers Reactive Barrier&amp;quot; },&lt;br /&gt;
    { list = &amp;quot;dispelmagic&amp;quot;,     item = &amp;quot;Dispel Magic&amp;quot;,     tip = &amp;quot;Effect can be dispelled&amp;quot; },&lt;br /&gt;
    { list = &amp;quot;indomitable&amp;quot;,     item = &amp;quot;Indomitable&amp;quot;,      tip = &amp;quot;Disable prevented by Indomitable&amp;quot; },&lt;br /&gt;
    { list = &amp;quot;unstoppable&amp;quot;,     item = &amp;quot;Unstoppable&amp;quot;,      tip = &amp;quot;Disable prevented by Unstoppable&amp;quot; },&lt;br /&gt;
    { list = &amp;quot;platedarmor&amp;quot;,     item = &amp;quot;Plated Armor&amp;quot;,     tip = &amp;quot;On-shot effect prevented by Plated Armor&amp;quot; },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Renders one item icon as a title-less external link (so Page Previews / Popups&lt;br /&gt;
-- ignores it) wrapping just the image.&lt;br /&gt;
local function icon_img(item)&lt;br /&gt;
    local url = tostring(mw.uri.canonicalUrl(item))&lt;br /&gt;
    return icon_module._render(item, { size = &#039;24px&#039;, [&#039;icon-only&#039;] = &#039;true&#039;, link = url })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- One full-size hint icon with a tooltip.&lt;br /&gt;
local function hint_icon(item, tip)&lt;br /&gt;
    return &#039;&amp;lt;span class=&amp;quot;ability-hint&amp;quot;&amp;gt;&#039; .. icon_img(item)&lt;br /&gt;
        .. &#039;&amp;lt;span class=&amp;quot;ability-hint-tip&amp;quot;&amp;gt;&#039; .. tip .. &#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Renders the interaction icon rail for one ability.&lt;br /&gt;
--   ability_key  the ability&#039;s internal key (AbilityCards .Key)&lt;br /&gt;
--   ability_num  the ability&#039;s slot (1-4); coerced to number&lt;br /&gt;
-- Returns rail HTML, or &#039;&#039; when the ability has no interactions.&lt;br /&gt;
function p.get_icons(ability_key, ability_num)&lt;br /&gt;
    local record = ability_data[ability_key]&lt;br /&gt;
    if record == nil then return &#039;&#039; end&lt;br /&gt;
    local num = tonumber(ability_num)&lt;br /&gt;
&lt;br /&gt;
    local icons = {}&lt;br /&gt;
    for _, def in ipairs(CONFIG) do&lt;br /&gt;
        if AbilityTable.is_member(def.list, record, num) then&lt;br /&gt;
            table.insert(icons, hint_icon(def.item, def.tip))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #icons == 0 then return &#039;&#039; end&lt;br /&gt;
    return &#039;&amp;lt;div class=&amp;quot;ability-section-hints&amp;quot;&amp;gt;&#039; .. table.concat(icons) .. &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>~2026-RescueMajesticParry631</name></author>
	</entry>
</feed>