4,951
edits
Falterfire (talk | contribs) No edit summary |
Falterfire (talk | contribs) (Moving stuff here from CombatAreas/Tables because I totally forgot this page existed.) |
||
Line 11: | Line 11: | ||
local Monsters = require('Module:Monsters') | local Monsters = require('Module:Monsters') | ||
local CombatAreas = require('Module:CombatAreas') | local CombatAreas = require('Module:CombatAreas') | ||
local Pets = require('Module:Pets') | |||
function p.getLowHighLevels(idList) | function p.getLowHighLevels(idList) | ||
Line 113: | Line 114: | ||
result = result..'\r\n|}' | result = result..'\r\n|}' | ||
return result | |||
end | |||
function p._getDungeonRewards(area, asList) | |||
if asList == nil then | |||
asList = true | |||
elseif type(asList) == 'string' then | |||
asList = asList.upper ~= 'FALSE' | |||
end | |||
local bossMonster = Monsters.getMonsterByID(area.monsters[Shared.tableCount(area.monsters)]) | |||
local gpMin = bossMonster.dropCoins[1] | |||
local gpMax = bossMonster.dropCoins[2] - 1 | |||
local chestID = bossMonster.lootTable[1][1] | |||
local chestQty = bossMonster.lootTable[1][3] | |||
local theChest = Items.getItemByID(chestID) | |||
local chr = asList and '* ' or '' | |||
local rewardList = {} | |||
if gpMin > 0 and gpMax > 0 then | |||
table.insert(rewardList, chr..Icons.GP(gpMin, gpMax)) | |||
end | |||
table.insert(rewardList, chr..Icons.Icon({theChest.name, type='item', qty=chestQty})) | |||
if area.name == 'Volcanic Cave' then | |||
table.insert(rewardList, chr..Icons.Icon({'Fire Cape', type='item', qty=1})) | |||
elseif area.name == 'Infernal Stronghold' then | |||
table.insert(rewardList, chr..Icons.Icon({'Infernal Cape', type='item', qty=1})) | |||
end | |||
if asList then | |||
return table.concat(rewardList, '\r\n') | |||
else | |||
return table.concat(rewardList, '<br/>') | |||
end | |||
end | |||
function p.getDungeonRewards(frame) | |||
local areaName = frame.args ~= nil and frame.args[1] or frame | |||
local asList = frame.args ~= nil and frame.args[2] or true | |||
local area = CombatAreas.getArea(areaName) | |||
if area == nil then | |||
return "ERROR: Could not find an area named "..areaName..'[[Category:Pages with script errors]]' | |||
end | |||
if area.type == 'dungeon' then | |||
return p._getDungeonRewards(area, asList) | |||
else | |||
return "ERROR: "..areaName.." is not a dungeon[[Category:Pages with script errors]]" | |||
end | |||
end | |||
function p.getDungeonTable(frame) | |||
local dungeons = CombatAreas.getAreas(function(area) return area.type == 'dungeon' end) | |||
local result = '{| class="wikitable sortable stickyHeader"' | |||
result = result..'\r\n|-class="headerRow-0"' | |||
result = result..'\r\n!colspan="2"|Dungeon!!Difficulty!!Monsters!!Boss Level!!Reward(s)!!Boss Pet' | |||
table.sort(dungeons, function(a, b) | |||
if a.difficulty[1] ~= b.difficulty[1] then | |||
return a.difficulty[1] < b.difficulty[1] | |||
else | |||
return a.id < b.id | |||
end end) | |||
for i, dung in Shared.skpairs(dungeons) do | |||
result = result..'\r\n|-' | |||
result = result..'\r\n|data-sort-value="'..dung.name..'"|'..Icons.Icon({dung.name, type='dungeon', size='50', notext=true}) | |||
result = result..'||[['..dung.name..']]' | |||
result = result..'||data-sort-value="'..dung.difficulty[1]..'"|'..CombatAreas._getAreaStat(dung, 'difficulty') | |||
result = result..'||'..Shared.tableCount(dung.monsters) | |||
local boss = Monsters.getMonsterByID(dung.monsters[Shared.tableCount(dung.monsters)]) | |||
result = result..'||'..Monsters._getMonsterCombatLevel(boss) | |||
result = result..'||'..p._getDungeonRewards(dung, false) | |||
if dung.petID ~= nil then | |||
local pet = Pets.getPetByID(dung.petID) | |||
result = result..'||data-sort-value="'..pet.name..'"|'..Icons.Icon({pet.name, type='pet'}) | |||
else | |||
result = result..'|| ' | |||
end | |||
end | |||
result = result..'\r\n|}' | |||
return result | return result | ||
end | end | ||
return p | return p |