Editing Module:AbilityHintsGive feedback
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
| Latest revision | Your text | ||
| Line 1: | Line 1: | ||
-- | -- Ability interaction hints: small item icons on ability cards showing how an | ||
-- | -- ability interacts with items (dispellable, reduced, blocked, etc.). | ||
-- Membership is decided by Module:AbilityTable.is_member so these icons always | |||
-- agree with the dynamic ability-interaction tables. | |||
-- | |||
local AbilityTable = require("Module:AbilityTable") | local AbilityTable = require("Module:AbilityTable") | ||
local | local ability_data = mw.loadJsonData("Data:AbilityData.json") | ||
local p = {} | local p = {} | ||
-- Display order: | -- Display order. Each entry: { list, file, link, tip } | ||
-- list AbilityTable list whose membership shows the icon | |||
-- file image file to display, e.g. "Reactive Barrier.png" | |||
-- link URL opened when the icon is clicked. Use a full/absolute URL: it keeps | |||
-- the anchor title-less, so MediaWiki Page Previews (Popups) ignores it. | |||
-- tip hover tooltip text (may contain simple HTML such as <br> or <b>) | |||
local CONFIG = { | |||
{ list = "melee", file = "Melee Lifesteal.png", link = "https://deadlock.wiki/Melee_Lifesteal", tip = "Benefits from melee items" }, | |||
{ list = "movementbased", file = "Slowing Hex.png", link = "https://deadlock.wiki/Slowing_Hex", tip = "Disabled by Slowing Hex" }, | |||
{ list = "debuffresist", file = "Debuff Reducer.png", link = "https://deadlock.wiki/Debuff_Reducer", tip = "Debuff duration reduced by Debuff Resist" }, | |||
{ list = "heal", file = "Healing Booster.png", link = "https://deadlock.wiki/Healing_Booster", tip = "Healing amplified by Healing Booster and affected by healing reduction" }, | |||
{ list = "reactivebarrier", file = "Reactive Barrier.png", link = "https://deadlock.wiki/Reactive_Barrier", tip = "Triggers Reactive Barrier" }, | |||
{ list = "dispelmagic", file = "Dispel Magic.png", link = "https://deadlock.wiki/Dispel_Magic", tip = "Effect can be dispelled" }, | |||
{ list = "indomitable", file = "Indomitable.png", link = "https://deadlock.wiki/Indomitable", tip = "Disable prevented by Indomitable" }, | |||
{ list = "unstoppable", file = "Unstoppable.png", link = "https://deadlock.wiki/Unstoppable", tip = "Disable prevented by Unstoppable" }, | |||
{ list = "platedarmor", file = "Plated Armor.png", link = "https://deadlock.wiki/Plated_Armor", tip = "On-shot effect prevented by Plated Armor" }, | |||
{ list = "summons", file = "Monster Rounds.png", link = "https://deadlock.wiki/Monster_Rounds", tip = "Summons affected by Monster Rounds and Heroic Aura" }, | |||
} | |||
-- Renders one icon: a 24px image linking to `link`. A full URL as the link keeps | |||
-- the anchor title-less so Page Previews / Popups ignores it. The wrapper span | |||
-- nudges the icon up 2px to match how the card renders inline icons. | |||
local function icon_img(file, link) | |||
return '<span style="position:relative;bottom:2px;">[[File:' .. file .. '|24px|link=' .. link .. ']]</span>' | |||
-- | |||
-- | |||
local function icon_img(file, link | |||
end | end | ||
-- One full-size hint icon with a tooltip. | |||
local function hint_icon(def) | local function hint_icon(def) | ||
return '<span class="ability-hint">' .. icon_img(def.file) | return '<span class="ability-hint">' .. icon_img(def.file, def.link) | ||
.. '<span class="ability-hint-tip">' .. | .. '<span class="ability-hint-tip">' .. def.tip .. '</span></span>' | ||
end | end | ||
-- Renders the interaction icon rail for one ability. | |||
-- ability_key the ability's internal key (AbilityCards .Key) | |||
-- ability_num the ability's slot (1-4); coerced to number | |||
-- Returns rail HTML, or '' when the ability has no interactions. | |||
function p.get_icons(ability_key, ability_num) | |||
local record = ability_data[ability_key] | |||
if record == nil then return '' end | |||
local num = tonumber(ability_num) | |||
local | |||
local icons = {} | |||
local | |||
for _, def in ipairs(CONFIG) do | for _, def in ipairs(CONFIG) do | ||
if AbilityTable.is_member(def.list, | if AbilityTable.is_member(def.list, record, num) then | ||
table.insert(icons, hint_icon(def)) | |||
end | end | ||
end | end | ||
if # | if #icons == 0 then return '' end | ||
return '<div class="ability-section-hints">' .. table.concat(icons) .. '</div>' | return '<div class="ability-section-hints">' .. table.concat(icons) .. '</div>' | ||
end | end | ||
return p | return p | ||