Module:ItemData/nav: Difference between revisions

Active Items table: plain wikilinks for inline attributes, var(--color-base) for off-white styling, em dash for missing stats, add Duration and Cast Range columns (with help from vergir-bot LLM)
Joe Rippa (talk | contribs)
Undo revision 146582 by Joe Rippa (talk) This is unnecessary for the change I wanted to make
Tag: Undo
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:


local p = {}
local p = {}
Line 11: Line 12:
     ["Spirit Lifesteal"] = "Spirit Lifesteal (item)"
     ["Spirit Lifesteal"] = "Spirit Lifesteal (item)"
}
}
-- The card navboxes put every item on a single page, so their cards opt into
-- the cheaper ItemBox rendering via lowGraphics. This swaps the paper texture
-- from the normal-mode multiply (which blends two images and is re-rasterised
-- every scrolled frame) to a transparent-paper overlay that is a single
-- cacheable image, the one change that carried the navbox scroll cost. The wear
-- and icon masks stay at full detail, since a single-image mask caches fine.
-- See [[Template:ItemBox]]. Only the ItemBox branch of write_wrapped_item_list
-- uses this; the ItemIcon lists are unaffected.
local LOW_GRAPHICS = "|lowGraphics=true"


-- Cached items grouped by slot to prevent redundant full-table evaluations
-- Cached items grouped by slot to prevent redundant full-table evaluations
Line 94: Line 105:
                     if lang_code == "en" then
                     if lang_code == "en" then
                         if is_street_brawl then
                         if is_street_brawl then
                             item_template = "{{ItemBox|itemName=" .. item_name_english .. "|overrideLinkClick=" .. item_link .. "|overrideTier=5}}"
                             item_template = "{{ItemBox|itemName=" .. item_name_english .. "|overrideLinkClick=" .. item_link .. "|overrideTier=5" .. LOW_GRAPHICS .. "}}"
                         else
                         else
                             item_template = "{{ItemBox|itemName=" .. item_name_english .. "|overrideLinkClick=" .. item_link .. "}}"
                             item_template = "{{ItemBox|itemName=" .. item_name_english .. "|overrideLinkClick=" .. item_link .. LOW_GRAPHICS .. "}}"
                         end
                         end
                     else
                     else
                         local link_local = item_link .. "/" .. lang_code
                         local link_local = item_link .. "/" .. lang_code
                         if is_street_brawl then
                         if is_street_brawl then
                             item_template = "{{ItemBox|itemName=" .. item_name_english .. "|overrideLinkClick=" .. link_local .. "|item_price={{#invoke:Lang|get_string|Citadel_ItemDraft_Legendary}}}}"
                             item_template = "{{ItemBox|itemName=" .. item_name_english .. "|overrideLinkClick=" .. link_local .. "|item_price={{#invoke:Lang|get_string|Citadel_ItemDraft_Legendary}}" .. LOW_GRAPHICS .. "}}"
                         else
                         else
                             item_template = "{{ItemBox|itemName=" .. item_name_english .. "|overrideLinkClick=" .. link_local .. "}}"
                             item_template = "{{ItemBox|itemName=" .. item_name_english .. "|overrideLinkClick=" .. link_local .. LOW_GRAPHICS .. "}}"
                         end
                         end
                     end
                     end
Line 237: Line 248:
local RANGE_PROPERTIES = { "AbilityCastRange", "Radius", "EndRadius" }
local RANGE_PROPERTIES = { "AbilityCastRange", "Radius", "EndRadius" }


-- Strips the icon markup from inline attributes, leaving plain wikilinks
-- Rewrites the description markup [[Module:Lang]] produces
local function restyle_inline_attributes(text)
local function restyle_description(text)
     text = text:gsub(INLINE_ATTRIBUTE_PATTERN, '[[%1|%2]]')
     text = text:gsub(INLINE_ATTRIBUTE_PATTERN, '[[%1|%2]]')
     -- Attributes with an icon but no link keep their span; follow the site text color
     -- Attributes with an icon but no link keep their span; follow the site text color
     return (text:gsub('color:#ffefd7;', 'color:var(--color-base);'))
     text = text:gsub('color:#ffefd7;', 'color:var(--color-base);')
    -- Diminished notes ("Cannot be used while Stunned...")
    return (text:gsub('color:#C0C0C0', 'color:var(--color-subtle)'))
end
end


Line 349: Line 362:
      
      
     table.insert(rows, "\n|}")
     table.insert(rows, "\n|}")
     return restyle_inline_attributes(frame:preprocess(table.concat(rows, "\n")))
     return restyle_description(frame:preprocess(table.concat(rows, "\n")))
end
end


return p
return p