Module:EnchantedChest

--[=[ Lua script replacement for wikitext template



Parameters: 1: Enchanted Chest name 2: Size in pixels optional, defaults to 25 If equal to "N", includes the chest Name Link also If equal to "L", includes the chest Name Link only 3: Enchanted Chest link if diffrent from name -- Unknown is returned if Enchanted Chest is not in data.

--]=]

local p = {}

local chestData = mw.loadData( 'Module:EnchantedChest/data' )

local COLL = require("Module:ItemCollection").getCollection local util = require('Module:Utility')

local function getCollection(item) local cData = mw.loadData("Module:ItemCollection/data") local collName = "" for _, data in pairs(cData.Collections) do		if (data[3] and data[3] == item) or item == data[1] then collName = data[1] end end if collName == "" then collName = COLL({item, "N"}) end return collName end

local function ChestIcon(Chests, size, plural) local outType = ""

if not tonumber(size) then outType = size if outType == "P" then size = 35 else size = 25 end end

local tAll = {} local space = ""

for chest in mw.text.gsplit(Chests, "%s*[!%$]%s*") do		local tChest = {space, "", "", "", "", "",	   				"", "", "", "", ""	    				}		local cName, count, version = mw.ustring.match(chest, "^([^,]-)%s*,%s*(%d+)%s*-*%s*(.-)$") if not cName then cName, version = mw.ustring.match(chest, "^([^,]-)%s*-%s*(.-)$") if not cName then cName = chest end end if not cName then cName = chest end cName = mw.ustring.gsub(cName, " Chests", "") if outType == "S" then version = mw.title.getCurrentTitle.text end local cFile = "work_in_progress" local cLink = "Work In Progress" local cDisp = cName .. " Chest" if chestData[cName] then tChest[ 7] = "ec-" cFile = mw.ustring.lower(mw.ustring.gsub(cName, " ", "_")) cLink = cName .. " Chests" cDisp = cName .. " Chest" if plural or (count and count > "1") then cDisp = cDisp .. "s" end if cName == "Legendary" and version then if outType ~= "S" then cDisp = getCollection(version) .. " " .. cDisp if outType ~= "L" then local bSize = math.floor(size / 3.3) local lSize = math.floor(size / 2.6) local cSize = math.floor(size / 1.6) tChest[ 6] = "" .. COLL({getCollection(version), cSize}) .. " [[File:"					end   			end    			cLink = cLink .. "#" .. getCollection(version)    		elseif (cName == "Sapphire" and version == "Halloween") or (cName == "Red Ribbon" and version == "Christmas") then    				cLink = version .. " Chests"   					cDisp = cDisp .. " (" .. cLink .. ")"    		end	    end		if outType == "N" then			tChest[ 2] = "[["			tChest[ 3] = cLink			tChest[ 4] = "|"			tChest[ 5] = cDisp .. "]] ("			tChest[16] = ")"		elseif outType == "L" then			tChest[ 6] = ""			tChest[10] = cDisp			tChest[11] = ""			tChest[13] = ""			tChest[15] = ""		elseif outType == "P" then			tChest[16] = " "			tChest[19] = cDisp			tChest[20] = " "		elseif outType == "S" then			tChest[ 6] = "FREE ("			tChest[10] = cDisp			tChest[11] = ") "			tChest[13] = ""			tChest[15] = ""			space = " "		end		if outType ~= "L" and outType ~= "S" then			tChest[ 8] = cFile			tChest[12] = cDisp			tChest[14] = cLink			space = " "		end		if count and count > "1" then   			tChest[15] = tChest[15] .. count   		end    	table.insert(tAll, table.concat(tChest))	end    return table.concat(tAll) end

function p.getChest(frame) local tArgs = util.getArgs(frame)

local chest = tArgs[1] or "" local size = tArgs[2] local plural = tArgs[3]

return ChestIcon(chest, size, plural) end

return p