No edit summary |
No edit summary |
||
| (46 intermediate revisions by the same user not shown) | |||
| Line 8: | Line 8: | ||
return n + 0.5 - (n + 0.5) % 1 | return n + 0.5 - (n + 0.5) % 1 | ||
end | end | ||
function p.enemy_table(enemy) | function p.enemy_table(enemy) | ||
result = [[]] | local result = [[]] | ||
if next(enemy[8]) == nil then | |||
return '' | |||
end | end | ||
return lt.lt( | return lt.lt(enemy[1],enemy[8]) | ||
end | end | ||
function p.enemy_stats(enemy) | function p.enemy_stats(enemy) | ||
return [[{{{!}} class="article-table" | |||
!Enemy | ! Enemy | ||
]] .. ' | !]] .. '[[File: Heart.png{{!}}20px]]' .. [[ | ||
!]] .. '[[File: Attack.png{{!}}20px]]' .. [[ | |||
!]] .. '[[File: Accuracy.png{{!}}20px]]' .. [[ | |||
!]] .. '[[File: Speed.png{{!}}20px]]' .. [[ | |||
!]] .. '[[File: Defence.png{{!}}20px]]' .. [[ | |||
{{!}}- | |||
{{!}}]] .. '[[' .. [[File: ]] .. (enemy['raw_image'] and enemy['raw_image'] or ((enemy['image'] or enemy[1]:gsub(' ', ''):gsub('%(', ''):gsub('%)', '')) .. 'Monster.png')) .. [[{{!}}40px{{!}}link=]] .. enemy[1] .. ']]' .. [[ | |||
{{!}}]] .. enemy[7] .. [[ | |||
{{!}}]] .. enemy[3] .. [[ | |||
{{!}}]] .. enemy[4] .. [[ | |||
{{!}}]] .. enemy[5] .. [[ | |||
{{!}}]] .. enemy[6] .. [[ | |||
{{!}}} | |||
]] .. p.enemy_table(enemy) | ]] .. p.enemy_table(enemy) | ||
end | end | ||
function p.enemy_zone_tabber(enemies) | |||
result = [[< | function p.enemy_zone_tabber(areaEnemies) | ||
]] | local enemies = {} | ||
local result = "" | |||
if type(areaEnemies) == 'string' then | |||
result = result .. | 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 | end | ||
result = result .. [[></htmltag><htmltag tagname="label" for="]] .. e[1] .. [[" class="dTabsLabel">]] .. e[1] .. [[</htmltag> | |||
<div class="dTabsContent dTabsSubcontent"> | |||
]] .. p.enemy_stats(e):gsub('|', '{{!}}') .. [[ | ]] .. p.enemy_stats(e):gsub('|', '{{!}}') .. [[ | ||
</div> | </div>]] | ||
]] | |||
end | end | ||
return result | return result | ||
| Line 57: | Line 74: | ||
function p.enemy_all_tabber() | function p.enemy_all_tabber() | ||
result = [[< | local result = [[<div class="dTabs">]] | ||
for idx, a in ipairs(adb) do | for idx, a in ipairs(adb) do | ||
if | if a ~= 'Fields2' then | ||
result = result .. " | result = result .. '<htmltag tagname="input" type="radio" class="dTabsRadio" name="Areas" id="' .. a[1] .. '"' | ||
if idx == 1 then | |||
result = result .. ' checked' | |||
end | |||
result = result .. [[></htmltag><htmltag tagname="label" for="]] .. a[1] .. [[" class="dTabsLabel">]] .. a[1] .. [[</htmltag> | |||
<div class="dTabsContent">]] | |||
result = result .. p.enemy_zone_tabber(a[1]) .. [[</div>]] | |||
end | end | ||
end | end | ||
return result | return result .. [[</div>]] | ||
]] | |||
end | end | ||
function p.enemy_page_before(name) | function p.enemy_page_before(name) | ||
enemy = nil | local enemy = nil | ||
if type(name) == 'table' then | if type(name) == 'table' then | ||
enemy = name | enemy = name | ||
| Line 97: | Line 105: | ||
{{Infobox Monsters | {{Infobox Monsters | ||
| title= ]] .. enemy[1] .. [[ | | title= ]] .. enemy[1] .. [[ | ||
| image= ]] .. (enemy['raw_image'] and enemy['raw_image'] or ((enemy['image'] or enemy[1]:gsub(' ', ''):gsub('%(', ''):gsub('%)', '')) .. ' | | image= ]] .. (enemy['raw_image'] and enemy['raw_image'] or ((enemy['image'] or enemy[1]:gsub(' ', ''):gsub('%(', ''):gsub('%)', '')) .. 'Monster.png')) .. [[ | ||
| imagewidth= 90 | | imagewidth= 90 | ||
| health= ]] .. enemy[7] .. [[ | | health= ]] .. enemy[7] .. [[ | ||
| Line 108: | Line 116: | ||
end | end | ||
function p.enemy_page_after(name) | function p.enemy_page_after(name) | ||
enemy = nil | local enemy = nil | ||
if type(name) == 'table' then | if type(name) == 'table' then | ||
enemy = name | enemy = name | ||
| Line 125: | Line 133: | ||
end | end | ||
function p.enemy_page(name) | function p.enemy_page(name) | ||
enemy = nil | local enemy = nil | ||
for _, e in ipairs(edb) do | for _, e in ipairs(edb) do | ||
if e[1] == name then | if e[1] == name then | ||
| Line 144: | Line 152: | ||
function p.tepa(frame) | function p.tepa(frame) | ||
return p.enemy_page_after(frame.args[1] or frame:getParent():getTitle()) | return p.enemy_page_after(frame.args[1] or frame:getParent():getTitle()) | ||
end | |||
function p.tezt(frame) | |||
return p.enemy_zone_tabber(frame.args[1] or frame:getParent():getTitle()) | |||
end | end | ||
function p.tet(frame) | function p.tet(frame) | ||
name = frame.args[1] or frame:getParent():getTitle() | local name = frame.args[1] or frame:getParent():getTitle() | ||
for _, e in ipairs(edb) do | for _, e in ipairs(edb) do | ||
if e[1] == name then | if e[1] == name then | ||
| Line 156: | Line 167: | ||
end | end | ||
function p.tes(frame) | function p.tes(frame) | ||
name = frame.args[1] or frame:getParent():getTitle() | local name = frame.args[1] or frame:getParent():getTitle() | ||
for _, e in ipairs(edb) do | for _, e in ipairs(edb) do | ||
if e[1] == name then | if e[1] == name then | ||
Latest revision as of 18:52, 19 January 2025
Documentation for this module may be created at Module:Enemies/doc
u = require("Module:Util")
edb = require("Module:Enemy_DB")
adb = require("Module:Area_DB")
inspect = require("Module:InspectLua")
lt = require("Module:Loot_Table")
local p = {}
function round(n)
return n + 0.5 - (n + 0.5) % 1
end
function p.enemy_table(enemy)
local result = [[]]
if next(enemy[8]) == nil then
return ''
end
return lt.lt(enemy[1],enemy[8])
end
function p.enemy_stats(enemy)
return [[{{{!}} class="article-table"
! Enemy
!]] .. '[[File: Heart.png{{!}}20px]]' .. [[
!]] .. '[[File: Attack.png{{!}}20px]]' .. [[
!]] .. '[[File: Accuracy.png{{!}}20px]]' .. [[
!]] .. '[[File: Speed.png{{!}}20px]]' .. [[
!]] .. '[[File: Defence.png{{!}}20px]]' .. [[
{{!}}-
{{!}}]] .. '[[' .. [[File: ]] .. (enemy['raw_image'] and enemy['raw_image'] or ((enemy['image'] or enemy[1]:gsub(' ', ''):gsub('%(', ''):gsub('%)', '')) .. 'Monster.png')) .. [[{{!}}40px{{!}}link=]] .. enemy[1] .. ']]' .. [[
{{!}}]] .. enemy[7] .. [[
{{!}}]] .. enemy[3] .. [[
{{!}}]] .. enemy[4] .. [[
{{!}}]] .. enemy[5] .. [[
{{!}}]] .. enemy[6] .. [[
{{!}}}
]] .. p.enemy_table(enemy)
end
function p.enemy_zone_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">
]] .. p.enemy_stats(e):gsub('|', '{{!}}') .. [[
</div>]]
end
return result
end
function p.enemy_all_tabber()
local result = [[<div class="dTabs">]]
for idx, a in ipairs(adb) do
if a ~= 'Fields2' then
result = result .. '<htmltag tagname="input" type="radio" class="dTabsRadio" name="Areas" id="' .. a[1] .. '"'
if idx == 1 then
result = result .. ' checked'
end
result = result .. [[></htmltag><htmltag tagname="label" for="]] .. a[1] .. [[" class="dTabsLabel">]] .. a[1] .. [[</htmltag>
<div class="dTabsContent">]]
result = result .. p.enemy_zone_tabber(a[1]) .. [[</div>]]
end
end
return result .. [[</div>]]
end
function p.enemy_page_before(name)
local enemy = nil
if type(name) == 'table' then
enemy = name
name = name[1]
else
for _, e in ipairs(edb) do
if e[1] == name then
enemy = e
break
end
end
end
return [[
{{Infobox Monsters
| title= ]] .. enemy[1] .. [[
| image= ]] .. (enemy['raw_image'] and enemy['raw_image'] or ((enemy['image'] or enemy[1]:gsub(' ', ''):gsub('%(', ''):gsub('%)', '')) .. 'Monster.png')) .. [[
| imagewidth= 90
| health= ]] .. enemy[7] .. [[
| damage= ]] .. enemy[3] .. [[
| accuracy= ]] .. enemy[4] .. [[
| speed= ]] .. enemy[5] .. [[
| defence= ]] .. enemy[6] .. [[
| areas= ]] .. enemy[2] .. [[
}}]]
end
function p.enemy_page_after(name)
local enemy = nil
if type(name) == 'table' then
enemy = name
name = name[1]
else
for _, e in ipairs(edb) do
if e[1] == name then
enemy = e
break
end
end
end
return [[{{Navbox Monsters}}
]] .. '[[Category:' .. enemy[2] .. ']] [[Category:Monsters]]' .. [[
]]
end
function p.enemy_page(name)
local enemy = nil
for _, e in ipairs(edb) do
if e[1] == name then
enemy = e
break
end
end
return p.enemy_page_before(enemy) .. [[
== Loot ==
]] .. p.enemy_table(enemy) .. p.enemy_page_after(enemy)
end
function p.tep(frame)
return p.enemy_page(frame.args[1] or frame:getParent():getTitle())
end
function p.tepb(frame)
return p.enemy_page_before(frame.args[1] or frame:getParent():getTitle())
end
function p.tepa(frame)
return p.enemy_page_after(frame.args[1] or frame:getParent():getTitle())
end
function p.tezt(frame)
return p.enemy_zone_tabber(frame.args[1] or frame:getParent():getTitle())
end
function p.tet(frame)
local name = frame.args[1] or frame:getParent():getTitle()
for _, e in ipairs(edb) do
if e[1] == name then
return [[
== Loot ==
]] .. p.enemy_table(e)
end
end
end
function p.tes(frame)
local name = frame.args[1] or frame:getParent():getTitle()
for _, e in ipairs(edb) do
if e[1] == name then
return p.enemy_stats(e)
end
end
end
return p