No edit summary |
No edit summary |
||
| Line 20: | Line 20: | ||
end | end | ||
function p.area_enemy_tabber(enemies) | function p.area_enemy_tabber(areaEnemies) | ||
result = [[ | local enemies = {} | ||
< | local result = "" | ||
]] | if type(areaEnemies) == 'string' then | ||
for _, enemy in ipairs(edb) do | |||
if enemy[2] == areaEnemies then | |||
result = result .. | table.insert(enemies, enemy) | ||
end | |||
end | |||
else | |||
enemies = areaEnemies | |||
end | |||
for index, e in ipairs(enemies) do | |||
result = result .. [[<htmltag tagname="input" type="radio" class="dTabsRadio" name="]] .. e[2] .. [[" id="]] .. e[1] .. [["]] | |||
if index == 1 then | |||
result = result .. ' checked' | |||
end | end | ||
result = result .. [[></htmltag><htmltag tagname="label" for="]] .. e[1] .. [[" class="dTabsLabel">]] .. e[1] .. [[</htmltag> | |||
<div class="dTabsContent dTabsSubcontent"> | |||
]] .. et.enemy_table(e) .. [[ | ]] .. et.enemy_table(e) .. [[ | ||
</div> | </div>]] | ||
]] | |||
end | end | ||
return result | return result | ||
Revision as of 21:52, 6 August 2024
This Module handles the creation of Area Pages, it uses the data from Module:Area_DB and Module:Enemy_DB.
It also is responsible for creating the tabs with all enemies of the game in Monsters page.
u = require("Module:Util")
adb = require("Module:Area_DB")
edb = require("Module:Enemy_DB")
lt = require("Module:Loot_Table")
et = require("Module:Enemies")
local p = {}
function p.enemies_in_area(name)
j = 1
while edb[j] and edb[j][2] ~= name do
j = j + 1
end
result = {}
while edb[j] and edb[j][2] == name do
table.insert(result, edb[j])
j = j + 1
end
return result
end
function p.area_enemy_tabber(areaEnemies)
local enemies = {}
local result = ""
if type(areaEnemies) == 'string' then
for _, enemy in ipairs(edb) do
if enemy[2] == areaEnemies then
table.insert(enemies, enemy)
end
end
else
enemies = areaEnemies
end
for index, e in ipairs(enemies) do
result = result .. [[<htmltag tagname="input" type="radio" class="dTabsRadio" name="]] .. e[2] .. [[" id="]] .. e[1] .. [["]]
if index == 1 then
result = result .. ' checked'
end
result = result .. [[></htmltag><htmltag tagname="label" for="]] .. e[1] .. [[" class="dTabsLabel">]] .. e[1] .. [[</htmltag>
<div class="dTabsContent dTabsSubcontent">
]] .. et.enemy_table(e) .. [[
</div>]]
end
return result
end
function p.area_page(name)
i = 0
area = nil
for j, e in ipairs(adb) do
if e[1] == name then
i = j
area = e
break
end
end
enemies = p.enemies_in_area(name)
enemies_string = ''
for _, e in ipairs(enemies) do
enemies_string = enemies_string .. '[[File: ' .. (e['raw_image'] and e['raw_image'] or ((e['image'] or e[1]:gsub(' ', ''):gsub('%(', ''):gsub('%)', '')) .. 'Monster.png')) .. '|40x40px|link=' .. e[1] .. ']]'
end
result = [[
{{Infobox Areas
|title= ]] .. name .. [[
|image= ]] .. name:gsub(' ', ''):gsub('%(', ''):gsub('%)', '') .. '.png' .. [[
|energy= ]] .. area[2] .. [[
|fightPoints= ]] .. area[3] .. [[
|encounters= ]] .. enemies_string .. [[
}}]]
result = [[
<div class="float" style="float:right; width:340px; padding-left: 35px;">
]] .. result .. [[
</div>]]
return result .. [[
<h2 style="clear:both">Enemies</h2>
]] .. p.area_enemy_tabber(enemies) .. [[
{{Navbox Monsters}}
]] .. '[[Category:Combat Areas]]' .. [[
]]
end
function p.area_all_tabber()
result = [[
<tabber>
]]
for _, e in ipairs(adb) do
if table.getn(e) > 4 then
result = result .. e[1] .. [[=
|-|
]]
end
end
return result:sub(1, -5) .. [[</tabber>
]]
end
function p.ap(frame)
return p.area_page(frame.args[1] or frame:getParent():getTitle())
end
function p.taet(frame)
return p.area_enemy_tabber(p.enemies_in_area(frame.args[1] or frame:getParent():getTitle()))
end
return p