置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:Pokemon Game

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [创建] [刷新]
local p = {}
local getArgs = require('Module:Arguments').getArgs
local data = require('Module:Pokemon Game/Data')

function p._link(frame, args)
	local showpokemon = false
	local output = {}
	local error = {}
	for _, v in ipairs(args) do
		v = string.upper(v)
		if data.keywords[v] then
			if data.keywords[v] == "Pokemon" then
				showpokemon = true
			end
		elseif data.games[v] then
			if type(data.games[v][1]) == "table" then
				for k2, v2 in ipairs(data.games[v][1]) do
					if #output > 0 and output[#output][1] == v2 then
						output[#output][2] = output[#output][2] + data.separator + (data.games[v][2] or data.games[v][1])[k2]
					else
						table.insert(output, {v2, (data.games[v][2] or data.games[v][1])[k2], prefix = (data.games[v].prefix or ""), series = (data.games[v].series or "")})
					end
				end
			else
				if #output > 0 and output[#output][1] == data.games[v][1] then
					output[#output][2] = output[#output][2] .. data.separator .. (data.games[v][2] or data.games[v][1])
				else
					table.insert(output, {data.games[v][1], data.games[v][2] or data.games[v][1], prefix = (data.games[v].prefix or ""), series = (data.games[v].series or "")})
				end
			end
		else
			table.insert(error, v)
		end
	end
	local outputstring = ""
	for k, v in ipairs(output) do
		outputstring = outputstring .. "[[" .. (v.series ~= "" and v.series or (v.prefix .. data.series)) .. v[1] .. "|" .. (showpokemon and (v.series ~= "" and v.series or (v.prefix .. data.series)) or "") .. v[2] .. "]]"
		showpokemon = false
		if k ~= #output then
			outputstring = outputstring .. data.separator
		end
	end
	return outputstring
end

function p.link(frame)
	return p._link(frame, getArgs(frame, {wrappers = "Template:Pokemon Game"}))
end

return p