4,951
edits
Falterfire (talk | contribs) (Added getAreaStat) |
Falterfire (talk | contribs) (Tweaked processArea code to make sure a type is always added properly) |
||
(One intermediate revision by the same user not shown) | |||
Line 6: | Line 6: | ||
local Shared = require('Module:Shared') | local Shared = require('Module:Shared') | ||
local Icons = require('Module:Icons') | local Icons = require('Module:Icons') | ||
local Items = require('Module:Items') | |||
function processArea(area, index) | function processArea(area, index, type) | ||
local result = Shared.clone(area) | local result = Shared.clone(area) | ||
result.id = index - 1 | result.id = index - 1 | ||
Line 13: | Line 14: | ||
result.name = result.areaName | result.name = result.areaName | ||
end | end | ||
result.type = type | |||
return result | return result | ||
end | end | ||
Line 21: | Line 20: | ||
function p.getArea(name) | function p.getArea(name) | ||
local result = nil | local result = nil | ||
--There are three types of areas but the lists are pretty short so looping all of them isn't a real issue | --There are three types of areas but the lists are pretty short so looping all of them isn't a real issue | ||
for i, area in pairs(AreaData.combatAreas) do | for i, area in pairs(AreaData.combatAreas) do | ||
if area.areaName == name then | if area.areaName == name then | ||
return processArea(area, i) | return processArea(area, i, 'combat') | ||
end | end | ||
end | end | ||
Line 31: | Line 29: | ||
for i, area in pairs(AreaData.slayerAreas) do | for i, area in pairs(AreaData.slayerAreas) do | ||
if area.areaName == name then | if area.areaName == name then | ||
return processArea(area, i) | return processArea(area, i, 'slayer') | ||
end | end | ||
end | end | ||
Line 37: | Line 35: | ||
for i, area in pairs(AreaData.dungeons) do | for i, area in pairs(AreaData.dungeons) do | ||
if area.name == name then | if area.name == name then | ||
return processArea(area, i) | return processArea(area, i, 'dungeon') | ||
end | end | ||
end | end | ||
Line 58: | Line 56: | ||
return "ERROR: Could not find an area named "..areaName | return "ERROR: Could not find an area named "..areaName | ||
end | end | ||
if statName == 'slayerLevel' then | |||
return Icons._SkillReq('Slayer', area.slayerLevel) | |||
end | |||
if statName == 'slayerItem' then | |||
if area.slayerItem ~= nil and area.slayerItem > 0 then | |||
local slayItem = Items.getItemByID(area.slayerItem) | |||
return Icons.Icon({slayItem.name, type='item'}) | |||
else | |||
return 'None' | |||
end | |||
end | |||
return area[statName] | return area[statName] | ||
end | end | ||
Line 66: | Line 76: | ||
for i, area in pairs(AreaData.combatAreas) do | for i, area in pairs(AreaData.combatAreas) do | ||
if Shared.contains(area.monsters, monsterID) then | if Shared.contains(area.monsters, monsterID) then | ||
table.insert(areaArray, processArea(area, i)) | table.insert(areaArray, processArea(area, i, 'combat')) | ||
end | end | ||
end | end | ||
Line 72: | Line 82: | ||
for i, area in pairs(AreaData.slayerAreas) do | for i, area in pairs(AreaData.slayerAreas) do | ||
if Shared.contains(area.monsters, monsterID) then | if Shared.contains(area.monsters, monsterID) then | ||
table.insert(areaArray, processArea(area, i)) | table.insert(areaArray, processArea(area, i, 'slayer')) | ||
end | end | ||
end | end | ||
Line 78: | Line 88: | ||
for i, area in pairs(AreaData.dungeons) do | for i, area in pairs(AreaData.dungeons) do | ||
if Shared.contains(area.monsters, monsterID) then | if Shared.contains(area.monsters, monsterID) then | ||
table.insert(areaArray, processArea(area, i)) | table.insert(areaArray, processArea(area, i, 'dungeon')) | ||
end | end | ||
end | end |