Editing Module:ItemData

Warning: You are not logged in. Once you make an edit, a temporary account will be created for you. Learn more. Log in or create an account to continue receiving notifications after this account expires, and to access other features.
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 25: Line 25:
BonusAbilityDurationPercent = true,
BonusAbilityDurationPercent = true,
BonusAttackRangePercent = true,
BonusAttackRangePercent = true,
BonusBaseHealth = true,
BonusBulletSpeedPercent = true,
BonusBulletSpeedPercent = true,
BonusClipSizePercent = true,
BonusClipSizePercent = true,
Line 130: Line 129:
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 284: Line 276:
--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


    -- Look up property directly; if missing, try the override table
local prop_value = item[property]
    local prop_value = item[property]
if (prop_value == nil) then return nil end
    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 447: Line 435:
end
end


-- Helping function for [[Module:Enhanced]]
-- Helping functions for [[Module:Enhanced]]
local function get_postfix_from_lang(item_name, property)
 
local key1 = item_name .. "_" .. property .. "_postfix"
local key2 = property .. "_postfix"
 
local v = lang.get_string(key1)
if v and v ~= "" then return v end
 
v = lang.get_string(key2)
if v and v ~= "" then return v end
 
return nil
end
 
 
function p.get_prop_meta(item_name, property)
function p.get_prop_meta(item_name, property)
local item = get_json_item(item_name)
local item = get_json_item(item_name)
Line 456: Line 459:


local meta = {
local meta = {
unit = nil,     -- "%", "m", "s" or nil
unit = nil,
scale = nil    -- { type = "Ss"/"Boon", value = number } or nil
scale = nil
}
}


if percentage_properties[property] then
if percentage_properties[property] then
meta.unit = "%"
meta.unit = "%"
end
if not meta.unit then
local postfix = get_postfix_from_lang(item_name, property)
if postfix and postfix ~= "" then
meta.unit = postfix
end
end
end


Line 539: Line 549:
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 549: Line 556:
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
if #parts == 2 then return parts[1] .. " and " .. parts[2] end
return parts[1] .. " " .. and_word .. " " .. parts[2]
end
 
local last = table.remove(parts)
local last = table.remove(parts)
return table.concat(parts, ", ") .. ", " .. and_word .. " " .. last
return table.concat(parts, ", ") .. ", and " .. last
end
end


return p
return p
Please note that all contributions to The Deadlock Wiki are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see Deadlock:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)
Preview page with this template