local getArgs = require('Module:Arguments').getArgs
local data = require('Module:KirarafCardData').data
local p = {}
-- 获取角色数据
local function getData(chara)
return data[chara] or {}
end
function p.main(frame)
local args = getArgs(frame)
local chara = args[1]
local charaList = getData(chara)
if #charaList == 0 then
return error('未找到对应角色')
end
local out = {}
table.insert(out, '<div class="kirarafCharaList-wrapper">')
table.insert(out, '<div class="mw-customtoggle-kirarafCharaList" style="width:300px; padding:5px 0; background:#FF9AB7; color:white; font-size:18px; text-shadow:1px 1px 0.1em #666; text-align:center; ' .. frame:expandTemplate{ title = 'prefix', args = { 'user-select:none' } } .. '">点击展开角色卡片列表</div>')
table.insert(out, '<div class="mw-collapsible mw-collapsed" id="mw-customcollapsible-kirarafCharaList">')
table.insert(out, '<table style="display:table !important; border-collapse:collapse; width:300px !important; background:#FF9AB7; color:white; text-shadow:1px 1px 0.1em #666; text-align:center; margin-top:5px;">')
table.insert(out, '<tr><th>稀有度</th><th>卡片</th></tr>')
for _, charaInfo in ipairs(charaList) do
local rarity = mw.ustring.rep('★', charaInfo[1])
local card = mw.ustring.match(charaInfo[2], '([^(]+)')
local suff = mw.ustring.match(charaInfo[2], '[^(]+(%(?[^)]*%)?)')
table.insert(out, '<tr style="border-top:1px white solid;">')
table.insert(out, '<td>' .. rarity .. '</td>')
table.insert(out, '<td>[[闪耀幻想曲:' .. chara .. '(' .. card .. ')' .. suff .. '|<span style="text-shadow:none">' .. card .. suff .. '</span>]]</td>')
table.insert(out, '</tr>')
end
table.insert(out, '</table></div></div>')
return table.concat(out)
end
return p