模块:EnemyCategory

来自PRTS
跳到导航 跳到搜索

可在模块:EnemyCategory/doc创建此模块的帮助文档

local p = {}
local getArgs = require("Module:Arguments").getArgs

function p.enemy(frame)
	local args = getArgs(frame)
	local lc = args['数量'] or 6
	local width = args['宽度'] or 120
	
	local enemys = {}
	local enemysdata = mw.getCurrentFrame():callParserFunction('#ask', '[[分类:'..args[1]..'登场的敌人]]', '?', '?编号', '?无头像', 'format=array', 'limit=100', 'link=none', 'sep=;', 'propsep=:', 'sort=id')
	enemysdata = mw.text.split(enemysdata, ';')
	for k,v in ipairs(enemysdata) do
		enemys[k] = mw.text.split(v, ":")
	end
	--mw.logObject(enemys)
	
	local result = '|'
	for k,v in ipairs(enemys) do
		result = result .. mw.getCurrentFrame():expandTemplate{title = '敌人头像', args={(v[3] == 'true') and '无头像' or v[1], index=v[2], px=width, link=v[1]}}
		if k % lc == 0 then
			result = result .. '\n|-\n|'
		elseif k ~= #(enemys) then
			result = result .. '\n|'
		else result = result .. '\n'
		end
	end
	for i=0, lc-(#(enemys) % lc)-1, 1 do
		result = result .. '|\n'
	end
	return result
end

return p