local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.chsize( char )
if not char then
--print("not char")
return 0
elseif char > 240 then
return 4
elseif char > 225 then
return 3
elseif char > 192 then
return 2
else
return 1
end
end
function p.utf8sub( str, startChar, numChars )
local startIndex = 1
while startChar > 1 do
local char = string.byte(str, startIndex)
startIndex = startIndex + p.chsize(char)
startChar = startChar - 1
end
local currentIndex = startIndex
while numChars > 0 and currentIndex <= #str do
local char = string.byte(str, currentIndex)
currentIndex = currentIndex + p.chsize(char)
numChars = numChars -1
end
return str:sub(startIndex, currentIndex - 1), numChars
end
function p.main(frame)
local args = getArgs(frame)
return frame:preprocess(p._main(args))
end
function p._main(args)
-- local arg1 = args[1]
-- local arg2 = args[2]
-- local arg3 = args[3]
local res = ""
local skins = 0
for k, v in pairs(args) do
if p.utf8sub(k, 1, 3) == "皮肤s" then
local index = p.utf8sub(k, 4, #k)
skins = skins + 1
end
end
-- table.sort(skins, function(a, b)
-- if a < b then
-- return true
-- end
-- return false
-- end)
-- res = res .. table.concat(skins)
-- print("12345")
-- print(res)
-- for index, v in pairs(skins) do
for index = 1, skins do
res = res .. "<div class=\"Tab\"><div class=\"TabLabelText\">"
if args["皮肤icon" .. index] ~= nil then
res = res .. "[[File:" .. args["皮肤icon".. index] .. "|40px|link=]]"
else
res = res .. "皮肤" .. index
end
res = res .. "</div><div class=\"TabContentText\"><table><tr><td colspan=4>{{灰烬战线立绘|id=s" .. index .. "|中1=" .. args["皮肤战斗形象" .. index] .. "|中2=" .. args["皮肤普通形象" .. index]
if args["皮肤战斗形象日" .. index] ~= nil then
res = res .. "|日1=" .. args["皮肤战斗形象日" .. index]
end
if args["皮肤普通形象日" .. index] ~= nil then
res = res .. "|日2=" .. args["皮肤普通形象日" .. index]
end
res = res .."}} <td rowspan=4><div class=\"rightHolder\"><div class=\"dollsSD\">[[File:" .. args["皮肤动画" .. index] .. "|150px]]</div></div></td></tr><tr><td colspan=4 align=center class=\"dollsName\">" .. args["皮肤s" .. index] .. "</td></tr><tr><td align=right>画师:</td><td>"
if args["皮肤画师" .. index] ~= nil then
res = res .. args["皮肤画师" .. index]
else
res = res .. args["画师"]
end
res = res .. "</td><td align=right>声优:</td><td>" .. args["配音"] .."</td></tr><tr><td colspan=4><div class=\"bottomHolder\"></div></td></tr></table></div></div>"
end
return res
end
return p