Module:ItemData: Difference between revisionsGive feedback
Gammaton32 (talk | contribs) separated headcount for street brawl items |
Added bonusbasehealth for colossus |
||
| (5 intermediate revisions by 3 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 property = frame.args[2] | |||
local raw = frame.args.raw == 'true' | |||
local item = get_json_item(item_name) | |||
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] | |||
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 366: | Line 378: | ||
local tbl = get_similar_items("IsDisabled") | local tbl = get_similar_items("IsDisabled") | ||
for _, v in ipairs(tbl) do | for _, v in ipairs(tbl) do | ||
if item_type == | if item_type == "Standard" then | ||
-- return only regular items | -- return only regular items | ||
if (v["IsDisabled"] == false and v["StreetBrawl"] == false and v["Name"] ~= nil) then | if (v["IsDisabled"] == false and v["Slot"] ~= nil and v["StreetBrawl"] == false and v["Name"] ~= nil) then | ||
iter = iter + 1 | iter = iter + 1 | ||
end | end | ||
elseif item_type == "Street Brawl" then | elseif item_type == "Street Brawl" then | ||
-- return only street brawl items | -- return only street brawl items | ||
if (v["IsDisabled"] == false and v["StreetBrawl"] == true and v["Name"] ~= nil) then | if (v["IsDisabled"] == false and v["Slot"] ~= nil and v["StreetBrawl"] == true and v["Name"] ~= nil) then | ||
iter = iter + 1 | iter = iter + 1 | ||
end | end | ||
| 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] .. " | 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, ", ") .. ", | return table.concat(parts, ", ") .. ", " .. and_word .. " " .. last | ||
end | end | ||
return p | return p | ||