Module:Minion/Templates

local string, table, minion = require('Module:String'), require('Module:Table'), require('Module:Minion') local minionData = mw.loadData('Module:Minion/Data')

local function to(a, b)	local arrow = '➜' return ('%s%s%s'):format(a, arrow, b) end

local function slots local ret = {} table.each(table.keys(minionData), function(name)		local stats = minionData[name].stats		local description = 		table.merge(description, table.deepCopy(minionData[name].abilities or {}, true))		local max = table.length(stats)		local max_ = string._toRoman(max)		for i, v in ipairs(stats) do			local desc = table.concat(table.map(description, function (d)				if (i >= d.req) then return d[1] end			end), '//')			if (v.tba and v.storage) then				table.push(ret, { name, string._toRoman(i), desc, v.tba, v.storage, id = '{o} Minion {0}' })			end		end		local f, l = stats[1], stats[max]		if (f.tba and f.storage and l.tba and l.storage) then			local desc = table.concat(table.map(description, function (d)				return d[1]			end), '//')			table.push(ret, { name, to('I', max_), desc, to(f.tba, l.tba), to(f.storage, l.storage), id = '{o} Minion', name = '{o} Minion', image = '{o} Minion ' .. max_ })		end	end) return ret end

return { slots = slots, }