Module:InfoboxHero: Difference between revisionsGive feedback
m Categories are also required for other heroes |
m Attempt to only add 2 categories for removed/unreleased heroes |
||
| Line 328: | Line 328: | ||
-- name: literal, or function(ctx) -> string. when: function(ctx) -> boolean. | -- name: literal, or function(ctx) -> string. when: function(ctx) -> boolean. | ||
local CATEGORIES = { | local CATEGORIES = { | ||
{ | |||
name = function(ctx) return ctx.is_disabled and 'Unused heroes' or 'Heroes' end, | |||
always = true, | |||
}, | |||
{ | { | ||
name = function(ctx) return ctx.hero_en end, | name = function(ctx) return ctx.hero_en end, | ||
-- Silver (Transformed) is documented on Silver's page and shares her category. | -- Silver (Transformed) is documented on Silver's page and shares her category. | ||
when = function(ctx) return ctx.hero_en ~= 'Silver (Transformed)' end, | when = function(ctx) return ctx.hero_en ~= 'Silver (Transformed)' end, | ||
always = true, | |||
}, | }, | ||
{ | { | ||
| Line 676: | Line 680: | ||
return '' | return '' | ||
end | end | ||
local is_disabled = get_stat(ctx.hero, 'IsDisabled') | |||
if is_disabled == nil then return '' end | |||
ctx.is_disabled = is_disabled | |||
local out = {} | local out = {} | ||
for _, category in ipairs(CATEGORIES) do | for _, category in ipairs(CATEGORIES) do | ||
if is_disabled and not category.always then | |||
elseif category.when == nil or category.when(ctx) then | |||
local name = category.name | local name = category.name | ||
if type(name) == 'function' then name = name(ctx) end | if type(name) == 'function' then name = name(ctx) end | ||