Module:沙盒/Chronowar/partnertable:修订间差异

来自Arcaea中文维基
无编辑摘要
无编辑摘要
第117行: 第117行:
        '[Future]',
        '[Future]',
      {class = 'ftr-label'}},
      {class = 'ftr-label'}},
      [18] = {
      [18] = {args['曲名'],{class = 'byd-label'}},
       bydMark(byd, args['曲名']),
     {class = 'byd-label'}},
      [19] = {
      [19] = {
        '等级',
        '等级',

2021年7月22日 (四) 13:49的版本

可在Module:沙盒/Chronowar/partnertable/doc创建此模块的帮助文档

local getArgs = require('Module:Arguments').getArgs
local link = require('Module:Link')._link
local getData = require("Module:data")
local p = {}

function timeCov(t)
	return os.date("(%Y/%m/%d)", t)
end

function dateCov(v,d,t,type)
	if not(v and d) then return nil end
	local box,a,b,c = mw.html.create( 'div' ),mw.html.create( 'div' ),mw.html.create( 'div' ),mw.html.create( 'div' )
	box:addClass( "date-box" )
	a:wikitext(t)
	if type=="arg" 
	then
		b:wikitext(v..'<br>'..'('..tostring(d)..')')
	else
		b:wikitext('v'..v..'<br>'..tostring(timeCov(d)))
	end
	box:wikitext(tostring(a))
	   :wikitext(tostring(b))
	   :wikitext(tostring(c))
	return tostring(box)	
end

function labelText(text,class)
	local span = mw.html.create( 'span' )
	span:addClass( 'label-text' )
	span:wikitext(text)
	return tostring(span)
end

function getImage(normal,awaken,JacketArgs,awakenyes,type,size)
	local container,tab=mw.html.create('div'),mw.html.create('div')
	local tab1,tab2,part1,part2,jacket
	container:addClass( 'container' )
	tab:attr( 'id','tab-'..type ) tab:addClass( 'img-tab' )
	
	local Jacket=JacketArgs
	
	if awaken
	then
		 	tab1,tab2,part1,part2=mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div')

		tab1:wikitext('Normal') tab2:wikitext('Awaken')
		tab1:addClass('img-tab-part normal') tab2:addClass('img-tab-part awaken')
		tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
		container:wikitext(tostring(tab))
		
		part1:wikitext('[[文件:'..normal..'|'..size..'px|none]]'..labelText('画师')..Jacket) part2:wikitext('[[文件:'..awaken..'|'..size..'px|none]]'..labelText('画师')..tostring(Jacket)) 
		part1:addClass('active tab-text-'..type) part2:addClass('tab-text-'..type) 
		container:wikitext(tostring(part1)) container:wikitext(tostring(part2)) 
		
		return tostring(container)
	end
end

function re0()
	return nil
end

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	local category=''
	local data,dataNs
	local argsLength = 0
	for _,_ in pairs(args) do  argsLength=argsLength+1 end
	
	if argsLength>=16
	then
		data,dataNs=re0,getData.getNS(args['曲名'])
	else
		data,dataNs=getData.getMobile(args['曲名']),getData.getNS(args['曲名'])
	end
	
	local awaken
	local size
	if args['名称'] == '白姬' then size=200 else size=300 end
	if args['觉醒形态'] == '有' then awaken=true else awaken=false end
	local imageA=getImage(args['图片'],args['觉醒图片'],args['画师'],awaken,'a',size)
	local imageB=getImage(args['图片'],args['觉醒图片'],args['画师'],awaken,'b',size)
	local infoList = {
        [1] = { args['名称'], {id = 'title'}},
        [2] = { imageA, {id = 'top-image'}},
        [3] = { imageB, {id = 'right-image'}},
        [4] = { '搭档信息', {class = 'header'}},
        [5] = { '类型', {class = 'label'}},
        [6] = { args['类型'], {class = 'data'}},
        [7] = { '所属曲包', {class = 'label'}},
        [8] = { args['所属曲包'] or args['所属单曲'] or '-', {class = 'data'}},
        [9] = { '觉醒形态', {class = 'label'}},
        [10] = { args['觉醒形态'] or '无', {class = 'data'}},
        [11] = {
            'BPM',
        {class = 'label'}},
        [12] = {
            args['BPM'] or data('bpm') or dataNs('bpm'),
        {class = 'data'}},
        [13] = {
            '谱面信息',
        {class = 'header'}},
        [14] = {
            '难度',
        {class = 'label'}},
        [15] = {
            '[Past]',
        {class = 'pst-label'}},
        [16] = {
            '[Present]',
        {class = 'prs-label'}},
        [17] = {
            '[Future]',
        {class = 'ftr-label'}},
        [18] = {args['曲名'],{class = 'byd-label'}},
        [19] = {
            '等级',
        {class = 'label'}},
        [20] = {
            args['Past等级'] or data('pstRating'),
        {class = 'pst-data'}},
        [21] = {
            args['Present等级'] or data('prsRating'),
        {class = 'prs-data'}},
        [22] = {
            args['Future等级'] or data('ftrRating'),
        {class = 'ftr-data'}},
        [23] = {
            args['Beyond等级'] or data('bydRating'),
        {class = 'byd-data'}},
        [24] = {
            'note数量',
        {class = 'label'}},
        [25] = {
            args['PastNote'] or '空',
        {class = 'pst-data'}},
        [26] = {
            args['PresentNote'] or '空',
        {class = 'prs-data'}},
        [27] = {
        args['FutureNote'] or '空', {class = 'ftr-data'}},
        [28] = {
            args['BeyondNote'] or '空',
        {class = 'byd-data'}},
        [29] = {
            '谱面设计',
        {class = 'label'}},
        [30] = {
            chartDesigner[1] or '空',
        {class = 'pst-data'}, span[1]},
        [31] = {
            chartDesigner[2] or '空',
        {class = 'prs-data'}, span[2]},
        [32] = {
            chartDesigner[3] or '空',
        {class = 'ftr-data'}, span[3]},
        [33] = {
            chartDesigner[4] or '空',
        {class = 'byd-data'}, span[4]},
        [34] = {
            '谱面信息(Joy-Con)',
        {class = 'header ns', id = 'ns-play-header'}},
        [35] = {
            '难度',
        {class = 'label ns'}},
        [36] = {
            '[Past]',
        {class = 'pst-label ns'}},
        [37] = {
            '[Present]',
        {class = 'prs-label ns'}},
        [38] = {
            '[Future]',
        {class = 'ftr-label ns'}},
        [39] = {
            bydMark(byd, args['曲名']),
        {class = 'byd-label ns'}},
        [40] = {
            'note数量',
        {class = 'label ns'}},
        [41] = {
            args['PastNoteNS'] or args['PastNote'],
        {class = 'pst-data ns'}},
        [42] = {
            args['PresentNoteNS'] or args['PresentNote'],
        {class = 'prs-data ns'}},
        [43] = {
            args['FutureNoteNS'] or args['FutureNote'],
        {class = 'ftr-data ns'}},
        [44] = {
            args['BeyondNoteNS'] or '空',
        {class = 'byd-data ns'}},
        [45] = {
            '背景',
        {class = 'label'}},
        [46] = {
            bgCov(args['背景']) or bgCov(data('bg')) or bgCov(dataNs('bg')),
        {class = 'data'}},
        [47] = {
            '更新时间',
        {id = 'update-data-label', class = 'label'}},
        [48] = {
            dateCov(args['更新版本'], args['更新时间'], labelText('移动版'), 'arg') or dateCov(data('version'), tonumber(data('date')), labelText('移动版'), 'data'),
        {id = 'mobile-date-normal', class = 'data'}},
        [49] = {
            dateCov(args['Beyond更新版本'], args['Beyond更新时间'], labelText('移动版'), 'arg') or '空',
        {id = 'mobile-date-byd', class = 'data'}},
        [50] = {
            dateCov(args['更新版本NS'], args['更新时间NS'], labelText('NS版'), 'arg') or dateCov(dataNs('version'), tonumber(dataNs('date')), labelText('NS版'), 'data'),
        {id = 'ns-date-normal', class = 'data ns'}},
        [51] = {
            '空',
        {id = 'ns-date-byd', class = 'data ns'}}}

	local box = mw.html.create( 'div' )
	
	--样式控制
	box:addClass( "partnerbox" )
	if awaken then box:addClass( "awaken" ) end
	if args['类型']=='支援型'
	then
		box:addClass( "support" )
	else
		if args['类型']=='挑战型' then box:addClass( "challenge" ) else box:addClass( "balance" ) end
	end

	if args['更新版本NS']
	then
		box:addClass( "ns-box" )
	end
	
	--表格生成
	local boxList={}
	
	for i,o in ipairs(infoList) do
		boxList[i] = mw.html.create( 'div' )
		boxList[i]
			:attr( infoList[i][3] )
			:cssText( infoList[i][4] )
		if infoList[i][1]
		then
			boxList[i]:wikitext( infoList[i][1] )
		else
			boxList[i]:wikitext( infoList[i][2] )
		end
		box:wikitext(tostring(boxList[i]))
	end
	
	return tostring(box)..category
end

return p