模块:EnemyCategory
跳转到导航
跳转到搜索
此模块的文档可以在模块:EnemyCategory/doc创建
local p = {}
local getArgs = require("Module:Arguments").getArgs
function output(enemys, lc, width)
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 and k ~= #(enemys) then
result = result .. '\n|-\n|'
elseif k ~= #(enemys) then
result = result .. '\n|'
else result = result .. '\n'
end
end
local flag = #(enemys) % lc
if flag == 0 then
flag = lc
end
for i=flag, lc - 1, 1 do
result = result .. '|\n'
end
return result
end
function p.enemy(frame)
local args = getArgs(frame)
local lc = args['数量'] or 6
local width = args['宽度'] or 120
local extraEnemy = args['敌人'] or ""
local events = mw.text.split(args[1] or "", ";;");
local exEnemys = mw.text.split(extraEnemy, ";;")
local enemys = {}
for k,v in ipairs(events) do
local enemysdata = mw.getCurrentFrame():callParserFunction('#ask', '[[分类:'..v..'登场的敌人]]', '?', '?编号', '?无头像', 'format=array', 'limit=100', 'link=none', 'sep=;', 'propsep=:', 'sort=id')
enemysdata = mw.text.split(enemysdata, ';')
for ki,vi in ipairs(enemysdata) do
if vi ~= nil and vi ~= "" then
table.insert(enemys, mw.text.split(vi, ":"))
end
end
end
for k,v in ipairs(exEnemys) do
local enemysdata = mw.getCurrentFrame():callParserFunction('#show', v, '?', '?编号', '?无头像', 'format=array', 'link=none', 'sep=;', 'propsep=:')
enemysdata = mw.text.split(enemysdata, ';')
for ki,vi in ipairs(enemysdata) do
if vi ~= nil and vi ~= "" then
table.insert(enemys, mw.text.split(vi, ":"))
end
end
end
--mw.logObject(enemys)
return output(enemys, lc, width)
end
function p.enemyFreeInput(frame)
local args = getArgs(frame)
local lc = args['数量'] or 6
local width = args['宽度'] or 120
local enemySrcData = mw.text.split(args[1], ";;");
local enemys = {}
for k,v in ipairs(enemySrcData) do
local enemysdata = mw.getCurrentFrame():callParserFunction('#show', v, '?', '?编号', '?无头像', 'format=array', 'link=none', 'sep=;', 'propsep=:')
enemysdata = mw.text.split(enemysdata, ';')
for ki,vi in ipairs(enemysdata) do
if vi ~= nil and vi ~= "" then
table.insert(enemys, mw.text.split(vi, ":"))
end
end
end
--mw.logObject(enemys)
return output(enemys, lc, width)
end
function p.bg(frame)
local args = getArgs(frame)
local event = args[1]
local data = mw.text.jsonDecode(mw.title.new( '光荣之路/data' ):getContent())
local groups = data['medalGroup']
for k,v in pairs(groups) do
local binds = v['bindEvent']
for i,e in pairs(binds) do
if e == event then
return v['background']
end
end
end
return ""
end
return p