Anonymous
×
Create a new article
Write your page title here:
We currently have 496 articles on WIKI - Idle Pixel. Type your article name above or click on one of the titles below and start writing!



WIKI - Idle Pixel
Revision as of 18:51, 9 December 2023 by Dounford (talk | contribs) (Created page with "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(enemies) res...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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(enemies)
    result = [[
{{#tag:tabber|
]]
    for _, e in ipairs(enemies) do
        result = result .. e[1] .. [[=
]] .. et.enemy_table(e) .. [[
{{!}}-{{!}}
]]
    end
    return result:sub(1, -13) .. [[
}}
]]
end
 
function p.area_table(area)
    result = [[]]
    for _, e in ipairs(area[4]) do
        -- TODO: refactor 1 - 1 -> 1 conversion to loot table module if possible
        result = result .. lt.ltr({args= {e[1], (e[2] == e[3] and u.c(e[2]) or (u.c(e[2]) .. ' - ' .. u.c(e[3]))), e[4], e[6], e[5], e[7], e[8], e[9] and area[1], image=e['image']}})
    end
    return lt.lt({args= {result, name=area[1], area=area[1]}}) .. [[
 
]]
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 Area
|title1= ]] .. name .. [[
 
|image1= ]] .. name:gsub(' ', ''):gsub('%(', ''):gsub('%)', '') .. '.png' .. [[
  
|cost= ]] .. area[2] .. [[
 
|fp= ]] .. 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) .. [[
 
 
==Exploring Loot==
]] .. p.area_table(area) .. [[
 
{{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] .. [[=
]] .. p.area_table(e) .. [[

|-|
]]
        end
    end
    return result:sub(1, -5) .. [[</tabber>
]]
end
 
function p.area_requirements_table()
    result = [[
{| class="article-table"
!Area
!Energy cost
!Time
]]
    for _, e in ipairs(adb) do
        result = result .. [[
|-
|]] .. '[[' .. e[1] .. ']]' .. [[
 
|]] .. '[[File: Energy.png|22px|link=Energy]] ' .. u.c(e[2]) .. [[
 
|]] .. '[[File: Clock.png|22px|link=]] ' .. u.d(e[3]) .. [[
 
]]
    end
    return result .. [[
|}
]]
end
 
function p.ap(frame)
    return p.area_page(frame.args[1] or frame:getParent():getTitle())
end
 
function p.tat(frame)
    for _, e in ipairs(adb) do
        if e[1] == frame.args[1] then
            return p.area_table(e)
        end
    end
end
 
return p