Module:Items: Difference between revisions

Added soul points to ItemBox
(getEquipRequirementRow: Support requirement type 'AbyssDepthCompletion')
(Added soul points to ItemBox)
(7 intermediate revisions by 2 users not shown)
Line 27: Line 27:
-- List of item IDs that should typically not be included within outputs, usually
-- List of item IDs that should typically not be included within outputs, usually
-- because they are not fully implemented despite existing within the game data
-- because they are not fully implemented despite existing within the game data
p.HiddenItems = {'melvorTotH:Meteorite_Dust'}
p.HiddenItems = {}
 
local function populateHiddenItems()
local hiddenItems = GameData.getEntities('items',
function(item)
return item.name == nil or Shared.contains({'melvorTotH:Meteorite_Dust'}, item.id)
end
)
for _, item in ipairs(hiddenItems) do
table.insert(p.HiddenItems, item.id)
end
end
populateHiddenItems()


function p.getItemByID(ID)
function p.getItemByID(ID)
Line 39: Line 51:


function p.getItems(checkFunc)
function p.getItems(checkFunc)
return GameData.getEntities('items', checkFunc)
return GameData.getEntities('items',
function(obj)
return not Shared.contains(p.HiddenItems, obj.id) and checkFunc(obj)
end
)
end
end


Line 191: Line 207:
end
end
local result = p._getItemStat(item, StatName, ZeroIfNil)
local result = p._getItemStat(item, StatName, ZeroIfNil)
if formatNum then result = Shared.formatnum(result) end
if formatNum then result = Num.formatnum(result) end
return result
return result
end
end
Line 378: Line 394:
val1, val2 = levelReqs[1][skillID] or 0, levelReqs[2][skillID] or 0
val1, val2 = levelReqs[1][skillID] or 0, levelReqs[2][skillID] or 0
if val1 ~= val2 then
if val1 ~= val2 then
table.insert(changeArray, Shared.numStrWithSign(val1 - val2) .. ' ' .. Icons.Icon({skillData.data.name, type='skill', notext=true}) .. (statDef.suffix or ''))
table.insert(changeArray, Num.numStrWithSign(val1 - val2) .. ' ' .. Icons.Icon({skillData.data.name, type='skill', notext=true}) .. (statDef.suffix or ''))
end
end
end
end
Line 385: Line 401:
val1, val2 = equipStats[1][statDef.stat] or 0, equipStats[2][statDef.stat] or 0
val1, val2 = equipStats[1][statDef.stat] or 0, equipStats[2][statDef.stat] or 0
if val1 ~= val2 then
if val1 ~= val2 then
table.insert(changeArray, Shared.numStrWithSign(val1 - val2) .. (statDef.suffix or ''))
table.insert(changeArray, Num.numStrWithSign(val1 - val2) .. (statDef.suffix or ''))
end
end
end
end
Line 457: Line 473:
-- For Summoning combat familiars, show the max hit
-- For Summoning combat familiars, show the max hit
if item.equipmentStats ~= nil and item.equipmentStats.summoningMaxhit ~= nil then
if item.equipmentStats ~= nil and item.equipmentStats.summoningMaxhit ~= nil then
table.insert(resultPart, "\r\n|-\r\n|'''Max Hit:''' " .. Shared.formatnum(item.equipmentStats.summoningMaxhit * 10))
table.insert(resultPart, "\r\n|-\r\n|'''Max Hit:''' " .. Num.formatnum(item.equipmentStats.summoningMaxhit * 10))
end
end
--For potions, show the number of charges
--For potions, show the number of charges
Line 470: Line 486:
if item.prayerPoints ~= nil then
if item.prayerPoints ~= nil then
table.insert(resultPart, "\r\n|-\r\n|'''"..Icons.Icon({'Prayer', type='skill'}).." Points:''' "..item.prayerPoints)
table.insert(resultPart, "\r\n|-\r\n|'''"..Icons.Icon({'Prayer', type='skill'}).." Points:''' "..item.prayerPoints)
end
if item.soulPoints ~= nil then
table.insert(resultPart, "\r\n|-\r\n|'''"..Icons.Icon({'Prayer', 'Soul', type='item', img='Lesser Soul'}).." Points:''' "..item.soulPoints)
end
end
--For items that provide runes, show which runes are provided
--For items that provide runes, show which runes are provided
Line 639: Line 658:
["dataKey"] = 'abyssDepths',
["dataKey"] = 'abyssDepths',
["IDKey"] = 'depthID',
["IDKey"] = 'depthID',
["imgType"] = 'abyssDepth'
["imgType"] = 'combatArea'
}
}
}
}
Line 650: Line 669:
local areaIcon = Icons.Icon({area.name, type=reqDefn.imgType, notext=true})
local areaIcon = Icons.Icon({area.name, type=reqDefn.imgType, notext=true})
result = '\r\n!style="text-align:right;"| '..areaIcon..' Completions'
result = '\r\n!style="text-align:right;"| '..areaIcon..' Completions'
result = result..'\r\n|style="text-align:right;"| '..Shared.formatnum(req.count)
result = result..'\r\n|style="text-align:right;"| '..Num.formatnum(req.count)
end
end
end
end
Line 693: Line 712:


table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| Attack Speed')
table.insert(resultPart, '\r\n|-\r\n!style="text-align:right;"| Attack Speed')
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. Shared.round(p._getItemStat(item, 'attackSpeed', true) / 1000, 3, 1) .. 's')
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. Num.round(p._getItemStat(item, 'attackSpeed', true) / 1000, 3, 1) .. 's')
table.insert(resultPart, '\r\n!style="text-align:right;"| ' .. ico['Defence'] .. ' Defence Bonus')
table.insert(resultPart, '\r\n!style="text-align:right;"| ' .. ico['Defence'] .. ' Defence Bonus')
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'meleeDefenceBonus', true))
table.insert(resultPart, '\r\n|style="text-align:right;"| ' .. p._getItemStat(item, 'meleeDefenceBonus', true))