17,428
edits
(Remove dependency on Module:CombatAreas so we can use in Module:Shop) |
(Implement getExpansionIcon & add to a number of outputs; More robust guaranteed pet chance logic) |
||
Line 15: | Line 15: | ||
local areas = GameData.getEntities(key, function(area) return area.pet ~= nil end) | local areas = GameData.getEntities(key, function(area) return area.pet ~= nil end) | ||
for i, area in ipairs(areas) do | for i, area in ipairs(areas) do | ||
result[area.pet.petID] = { id = area.id, name = area.name, type = area.type, weight = area.pet.weight } | result[area.pet.petID] = { | ||
id = area.id, | |||
name = area.name, | |||
type = area.type, | |||
weight = area.pet.weight, | |||
fixedChance = (area.fixedPetClears ~= nil and area.fixedPetClears) or area.pet.weight == 1 | |||
} | |||
end | end | ||
end | end | ||
Line 32: | Line 38: | ||
function p.getPets(checkFunc) | function p.getPets(checkFunc) | ||
return GameData.getEntities('pets', checkFunc) | return GameData.getEntities('pets', checkFunc) | ||
end | |||
--Returns the expansion icon for the pet if it has one | |||
function p.getExpansionIcon(frame) | |||
local petName = frame.args ~= nil and frame.args[1] or frame | |||
local pet = p.getPet(petName) | |||
if pet == nil then | |||
return "ERROR: No pet named " .. petName .. " exists in the data module[[Category:Pages with script errors]]" | |||
end | |||
return Icons.getExpansionIcon(pet.id) | |||
end | end | ||
Line 104: | Line 121: | ||
if source ~= nil and source.weight ~= nil then | if source ~= nil and source.weight ~= nil then | ||
-- Pet is from a dungeon or combat/slayer area | -- Pet is from a dungeon or combat/slayer area | ||
if source.fixedChance then | |||
if source. | |||
return 'Guaranteed after ' .. Shared.formatnum(source.weight) .. (source.weight == 1 and ' clear' or ' clears') | return 'Guaranteed after ' .. Shared.formatnum(source.weight) .. (source.weight == 1 and ' clear' or ' clears') | ||
else | else | ||
Line 140: | Line 156: | ||
table.insert(resultPart, '|-') | table.insert(resultPart, '|-') | ||
table.insert(resultPart, '|style="text-align: center;"|' .. Icons.Icon({pet.name, type='pet', size=60, notext=true})) | table.insert(resultPart, '|style="text-align: center;"|' .. Icons.Icon({pet.name, type='pet', size=60, notext=true})) | ||
table.insert(resultPart, '|' .. Icons.Icon({pet.name, type='pet', noicon=true})) | table.insert(resultPart, '|' .. Icons.getExpansionIcon(pet.id) .. Icons.Icon({pet.name, type='pet', noicon=true})) | ||
table.insert(resultPart, '| ' .. p._getPetEffect(pet)) | table.insert(resultPart, '| ' .. p._getPetEffect(pet)) | ||
end | end | ||
Line 176: | Line 192: | ||
local dropChance = p._getPetChance(pet) | local dropChance = p._getPetChance(pet) | ||
result = '{| class="wikitable infobox | result = '{| class="wikitable infobox"\r\n|-\r\n' | ||
result = result..'! '..name..'\r\n|-\r\n| ' | result = result..'! ' .. Icons.getExpansionIcon(pet.id) .. name .. '\r\n|-\r\n| ' | ||
result = result..'style="text-align: center;"|' .. Icons.Icon({name, type='pet', size='250', notext=true}) | result = result..'style="text-align: center;"|' .. Icons.Icon({name, type='pet', size='250', notext=true}) | ||
result = result.."\r\n|-\r\n|'''Pet ID:''' "..pet.id | result = result.."\r\n|-\r\n|'''Pet ID:''' "..pet.id | ||
Line 198: | Line 214: | ||
for i, thisPet in ipairs(GameData.rawData.pets) do | for i, thisPet in ipairs(GameData.rawData.pets) do | ||
result = result..'\r\n|-\r\n|'..Icons.Icon({thisPet.name, type='pet', noicon=true}) | result = result..'\r\n|-\r\n|'..Icons.Icon({thisPet.name, type='pet', noicon=true}) | ||
result = result..'||style="text-align: center;"|'..Icons.Icon({thisPet.name, size='60', type='pet', notext=true}) | result = result..'||style="text-align: center;"|' .. Icons.getExpansionIcon(thisPet.id) .. Icons.Icon({thisPet.name, size='60', type='pet', notext=true}) | ||
result = result..'||'..p._getPetSourceText(thisPet) | result = result..'||'..p._getPetSourceText(thisPet) | ||
result = result..'||'..p._getPetEffect(thisPet) | result = result..'||'..p._getPetEffect(thisPet) |