◆少前百科是非盈利性、非官方的少女前线维基百科。
◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科
◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科
◆To foreigners,You can use twitter to contact us.
Icon Nyto Silver.png

模块:Skin class info

来自少前百科GFwiki
跳转至: 导航搜索

此模块的文档可以在模块:Skin class info/doc创建

local p = {}
local args
local root
local data = mw.loadData('Module:Gun info/skin data')
local gdata = mw.loadData('Module:Gun info/data')
local params
local rcolors = {'dfb6ff', 'ddd', '6bdfce', 'd6e35a', 'ffcd4a'}
local scolors = {'cae', 'ccc', '6bdfce', 'd6e35a', 'ffbd0d'}
local gtypes = {'HG', 'SMG', 'RF', 'AR', 'MG', 'SG'}
local stypes = {'Live2D', 'Animated'}
local hd = false

local function nameMiddle(name, gtype, rank)
	return string.format('[[%s|<span style="color:#%s;text-shadow:0 0 2px #%s;display:inline-block"><span style="vertical-align:middle;">%s</span>&nbsp;<small>[%s]</small></span>]]',
		name,
		rcolors[rank],
		scolors[rank],
		name,
		gtypes[gtype])
end

local function addParams(id, num)
	local sdata = data[id]
	local gd = gdata[sdata.fit_gun]
	local illucv = sdata.illustrator_cv
	local addp = {
		['编号' .. num] = id,
		['英文' .. num] = gd.code,
		['名称' .. num] = sdata.name,
		['人形' .. num] = gd.name,
		['人形编号' .. num] = sdata.fit_gun,
		['人形代码' .. num] = nameMiddle(gd.name, gd.guntype, gd.rank),
		['动态' .. num] = sdata['type'] and stypes[sdata['type']] or '',
		['画师' .. num] = illucv and illucv[1] or (gd.illu or ''),
		['声优' .. num] = illucv and illucv[2] or (gd.cv or ''),
		['台词' .. num] = sdata.dialog
	}
	if not hd then
		local picf = string.format('Pic_%s_%d', gd.code, id)
		addp['正常立绘' .. num] = picf .. '.png'
		addp['重创立绘' .. num] = picf .. '_D.png'
	end
	for k, v in pairs(addp) do params[k] = v end
end

local function _skinClassInfo()
	local cid = tonumber(args[1])
	assert(cid)
	local cdata = mw.loadData('Module:Gun info/skinclass data')
	params = {
		['编号'] = cid,
		['实装时间'] = args.launch,
		['主题类型'] = cdata[cid].theme_type
	}
	local ks = {}
	for i,v in pairs(data) do if v.class_id == cid then ks[#ks+1] = i end end
	table.sort(ks)
	for n,i in ipairs(ks) do addParams(i, tostring(n)) end
	for k,v in pairs(args) do params[k] = v end
	local f = mw.getCurrentFrame()
	return f:expandTemplate{title = '装扮展示', args=params}
end

function p.skinClassInfo(frame)
	if frame == mw.getCurrentFrame() then
		args = frame:getParent().args
	else
		args = frame
	end
	if args.hd then hd = true end
	return _skinClassInfo()
end
return p