Module:Sandbox/Moxian/OmenOfFortune
Jump to navigation
Jump to search
You might want to create a documentation page for this module.
Editors can experiment in this module's sandbox and testcases pages.
Please add categories to the /doc subpage. Subpages of this module.
Editors can experiment in this module's sandbox and testcases pages.
Please add categories to the /doc subpage. Subpages of this module.
require('Module:No globals')
local m_util = require('Module:Util')
local cargo = mw.ext.cargo
-- local m_cargo = require('Module:Cargo')
local p = {}
function p.guaranteed_uniques_table(frame)
local tables = "items=items_u,items=items_b"
local fields = "COUNT(items_u.name)=cnt, items_b.class=class_b, items_b._pageName=page_b, items_u._pageName=page_u, items_u.inventory_icon=icon_u, items_b.inventory_icon=icon_b"
local args = {
where = 'items_u.rarity="unique" AND items_u.drop_enabled AND NOT items_u.is_drop_restricted AND items_b.drop_enabled',
join = 'items_u.base_item_id=items_b.metadata_id',
groupBy = 'items_b.metadata_id',
-- limit = 10,
}
local results = cargo.query(tables, fields, args)
local out_chunks = {}
-- table header
table.insert(out_chunks, '{| class="wikitable sortable mw-collapsible mw-collapsed"\n! scope="col" |Class\n! scope="col" |Basetype\n! scope="col" |Result\n')
for r=1, #results do
local result = results[r]
if result["cnt"] == "1" then -- filtering to only the items that have a single base
-- <base item class>
table.insert(out_chunks, "\n|-\n| ")
table.insert(out_chunks, result["class_b"])
-- {{il|page=<base item here>}}
table.insert(out_chunks, "\n| ")
table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result["page_b"]}})
-- {{il|page=<unique item here>}}
table.insert(out_chunks, "\n| ")
table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result ["page_u"]}})
end
end
table.insert(out_chunks, "\n|}") -- table footer
local out = table.concat(out_chunks,"")
return out
end
return p