Module:ItemData: Difference between revisions

headcount correction and disabled classless items (cosmetics)
LVL (talk | contribs)
Added bonusbasehealth for colossus
 
(4 intermediate revisions by 2 users not shown)
Line 25: Line 25:
BonusAbilityDurationPercent = true,
BonusAbilityDurationPercent = true,
BonusAttackRangePercent = true,
BonusAttackRangePercent = true,
BonusBaseHealth = true,
BonusBulletSpeedPercent = true,
BonusBulletSpeedPercent = true,
BonusClipSizePercent = true,
BonusClipSizePercent = true,
Line 129: Line 130:
WeaponDamagePerStack = true,
WeaponDamagePerStack = true,
WeaponPowerPerStack = true,
WeaponPowerPerStack = true,
}
-- Mappings from placeholder tokens (used in descriptions) to the actual
-- flat property keys in Data:ItemData.json
local PROPERTY_KEY_OVERRIDES = {
    ["ArcaneSurgeWindow"] = "AbilityDuration",
    -- Add any other mismatches here as they appear
}
}


Line 276: Line 284:
--check Data:ItemData.json for properties
--check Data:ItemData.json for properties
p.get_prop = function(frame)
p.get_prop = function(frame)
local item_name = frame.args[1]
    local item_name = frame.args[1]
local property = frame.args[2]
    local property = frame.args[2]
local raw = frame.args.raw == 'true'
    local raw = frame.args.raw == 'true'
local item = get_json_item(item_name)
    local item = get_json_item(item_name)
if(item == nil) then return "<span style=\"color:red;\">Item Not Found.</span>" end
    if(item == nil) then return "<span style=\"color:red;\">Item Not Found.</span>" end


local prop_value = item[property]
    -- Look up property directly; if missing, try the override table
if (prop_value == nil) then return nil end
    local prop_value = item[property]
    if prop_value == nil and PROPERTY_KEY_OVERRIDES[property] then
        prop_value = item[ PROPERTY_KEY_OVERRIDES[property] ]
    end
    if (prop_value == nil) then return nil end


local display_value
local display_value
Line 527: Line 539:
local parents = get_component_of(item)
local parents = get_component_of(item)
if #parents == 0 then return "" end
if #parents == 0 then return "" end
 
local and_word = frame:preprocess("{{#invoke:Dictionary|translate|And}}")
and_word = mw.ustring.lower(and_word)
 
local parts = {}
local parts = {}
for _, key in ipairs(parents) do
for _, key in ipairs(parents) do
Line 534: Line 549:
table.insert(parts, icon)
table.insert(parts, icon)
end
end
 
if #parts == 1 then return parts[1] end
if #parts == 1 then return parts[1] end
if #parts == 2 then return parts[1] .. " and " .. parts[2] end
if #parts == 2 then
return parts[1] .. " " .. and_word .. " " .. parts[2]
end
 
local last = table.remove(parts)
local last = table.remove(parts)
return table.concat(parts, ", ") .. ", and " .. last
return table.concat(parts, ", ") .. ", " .. and_word .. " " .. last
end
end


return p
return p