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