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

来自Arcaea中文维基
无编辑摘要
无编辑摘要
 
(未显示同一用户的39个中间版本)
第4行: 第4行:
local p = {}
local p = {}


function timeCov(t)
function labelText(text,class)
return os.date("(%Y/%m/%d)", t)
local span = mw.html.create( 'span' )
span:addClass( 'label-text' )
span:wikitext(text)
return tostring(span)
end
end


function dateCov(v,d,t,type)
function update(version,device,awakenyes,version2)
if not(v and d) then return nil end
if device == 'ns'
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
then
b:wikitext(v..'<br>'..'('..tostring(d)..')')
return '<div class="date-box"><div>'..labelText('NS版')..'</div><div>'..version..'</div><div></div></div>'
else
else
b:wikitext('v'..v..'<br>'..tostring(timeCov(d)))
if awakenyes
then
return '<div class="date-box"><div>'..labelText(' 移动版')..'</div><div>搭档:'..version..'<br />觉醒形态:'..version2..'</div><div></div></div>'
end
   return '<div class="date-box"><div>'..labelText('移动版')..'</div><div>'..version..'</div><div></div></div>'
end
end
box:wikitext(tostring(a))
  :wikitext(tostring(b))
  :wikitext(tostring(c))
return tostring(box)
end
end


function labelText(text,class)
function getImage(normal,awaken,JacketArgs,awakenyes,type,size)
local span = mw.html.create( 'span' )
span:addClass( 'label-text' )
span:wikitext(text)
return tostring(span)
end
 
function getImage(normal,awaken,JacketArgs,awakenyes,type)
local container,tab=mw.html.create('div'),mw.html.create('div')
local container,tab=mw.html.create('div'),mw.html.create('div')
local tab1,tab2,part1,part2,jacket
local tab1,tab2,part1,part2,jacket
第42行: 第34行:
if awaken
if awaken
then
then
tab1,tab2,part1,part2=mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div')
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:wikitext('Normal') tab2:wikitext('Awaken')
第49行: 第41行:
container:wikitext(tostring(tab))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:'..all..'|256px|none]]'..labelText('画师')..Jacket) part2:wikitext('[[文件:'..awaken..'|256px|none]]'..labelText('画师')..tostring(Jacket)) 
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) 
part1:addClass('active tab-text-'..type) part2:addClass('tab-text-'..type) 
container:wikitext(tostring(part1)) container:wikitext(tostring(part2)) 
container:wikitext(tostring(part1)) container:wikitext(tostring(part2)) 
第55行: 第47行:
return tostring(container)
return tostring(container)
end
end
end
 
return '<div><div class="floatnone">[[文件:'..normal..'|'..size..'px]]</div><div>'..labelText('画师')..Jacket..'</div></div>'
function re0()
return nil
end
end


第67行: 第57行:


function p._main(args)
function p._main(args)
local category=''
local data,dataNs
local argsLength = 0
for _,_ in pairs(args) do  argsLength=argsLength+1 end
if argsLength>=16
local awaken
local size
local belongs
if args['觉醒形态'] == '有' then awaken=true else awaken=false end
if args['名称'] == '白姬' or args['名称'] == '凛可' then size=200 else size=300 end
if args['所属曲包']
then
then
data,dataNs=re0,getData.getNS(args['曲 '])
belongs=' 所属 '
else
else
data,dataNs=getData.getMobile(args['曲 ']),getData.getNS(args['曲 '])
if args[' 所属单 曲'] then belongs='所属单曲' else belongs=' 所属单 /曲包' end
end
end
local imageA=getImage(args['图片'],args['觉醒图片'],args['画师'],awaken,'a',size)
local awaken
local imageB=getImage(args['图片'],args['觉醒图片'],args['画师'],awaken,'b',size)
if args['Beyond 等级'] or data('awakenRating') then awaken=true else awaken=false end
local infoList = {
     [1] = { args[' 名称'], {id = 'title'}},
local imageA=getImage(args[' 图片'],args['Beyond曲绘'],args[' 第二曲绘图片'],args[' 画师'],args['Beyond画师'],data('ftrJacketDesigner'),data('awakenJacketDesigner'),awaken,'a')
     [2] = { imageA, {id = 'top-image'}},
local imageB=getImage(args[' 图片'],args['Past曲绘'],args['Present曲绘'],args['Future曲绘'],args['Beyond曲绘'],args[' 第二曲绘图片'],args[' 画师'],args['Beyond画师'],data('ftrJacketDesigner'),data('awakenJacketDesigner'),awaken,'b')
     [3] = { imageB, {id = 'right-image'}},
local infoList={
     [4] = { '搭档信息', {class = 'header'}},
[1]={
     [5] = { '类型', {class = 'label'}},
args[' 曲名'],data('title'),{ ['id']='title' }
     [6] = { args['类型'], {class = 'data'}},
}
     [7] = { belongs, {class = 'label'}},
     [8] = { args['所属曲包'] or args['所属单曲'] or '-', {class = 'data'}},
     [9] = { '觉醒形态', {class = 'label'}},
     [10] = { args['觉醒形态'] or '无', {class = 'data'}},
     [11] = { '搭档数据', {class = 'header', id='all-play-header'}},
     [12] = { '搭档数据 (移动版)', {class = 'header', id='mobile-play-header'}},
     [13] = { ' 等级', {class = 'label'}},
     [14] = { 'Lv1', {class = 'level-data'}},
     [15] = { 'Lv20', {class = 'level-data'}},
     [16] = { 'Lv30', {class = 'awaken-data'}},
     [17] = { 'Frag', {class = 'label'}},
     [18] = { args['Frag1'], {class = 'level-data'}},
     [19] = { args['Frag20'], {class = 'level-data'}},
     [20] = { args['Frag30'], {class = 'awaken-data'}},
     [21] = { 'Step', {class = 'label'}},
     [22] = { args['Step1'], {class = 'level-data'}},
     [23] = { args['Step20'], {class = 'level-data'}},
     [24] = { args['Step30'], {class = 'awaken-data'}},
     [25] = { 'Over', {class = 'label over'}},
     [26] = { args['Over1'], {class = 'level-data over'}},
     [27] = { args['Over20'], {class = 'level-data over'}},
     [28] = { args['Over30'], {class = 'awaken-data over'}},
     [29] = { '搭档数据 (Nintendo Switch版)', {class = 'header ns', id='ns-play-header'}},
     [30] = { '等级', {class = 'label ns'}},
     [31] = { 'Lv1', {class = 'level-data ns'}},
     [32] = { 'Lv20', {class = 'level-data ns'}},
     [33] = { 'Lv30', {class = 'awaken-data ns'}},
     [34] = { 'Frag', {class = 'label ns'}},
     [35] = { args['Frag1NS'], {class = 'level-data ns'}},
     [36] = { args['Frag20NS'], {class = 'level-data ns'}},
     [37] = { args['Frag30NS'], {class = 'awaken-data ns'}},
     [38] = { 'Step', {class = 'label ns'}},
     [39] = { args['Step1NS'], {class = 'level-data ns'}},
     [40] = { args['Step20NS'], {class = 'level-data ns'}},
     [41] = { args['Step30NS'], {class = 'awaken-data ns'}},
     [42] = { '技能', {class = 'label', id='skill-label'}},
     [43] = { args[' 技能'] or '-', {class = 'data', id = 'skill-normal'}},
     [44] = { args[' 觉醒技能'], {class = 'data', id = 'skill-awaken'}},
     [45] = { '更新时间', {id='update-data-label' ,class = 'label'}},
     [46] = { update(args[' 更新时间'] or '无','mobile',awaken,args['觉醒更新时间'] or args[' 更新时间']), {id='mobile-date-normal', class = 'data'}},
     [47] = { update(args[' 更新时间NS'] or '无','ns',awaken,' '), {id='ns-date-normal', class = 'data'}}
}
}


第93行: 第124行:
--样式控制
--样式控制
box:addClass( "songbox" )
box:addClass( "partnerbox" )
if awaken then box:addClass( "awaken" ) end
if awaken then box:addClass( "awaken" ) end
if dataNs('side')==1 or args[' ']=='1' then box:addClass( "conflict" ) else box:addClass( "light" ) end
if args['名称'] == '白姬' or args['名称'] == '凛可' then box:addClass( "ns-only" ) end
if args['更新 版本NS'] or dataNs('id')
if awaken and args['技能'] ~= args[' 觉醒技能'] and args['觉醒技能'] ~= nil then box:addClass( "skill-different" ) end
if args['类型']=='支援型'
then
box:addClass( "support" )
else
if args[' 类型']==' 挑战型' then box:addClass( "challenge" ) else box:addClass( "balance" ) end
end
 
if args['更新 时间NS']
then
then
box:addClass( "ns-box" )
box:addClass( "ns-box" )
if not( dataNs('pstChange') or dataNs('prsChange') or dataNs('ftrChange') ) --(or awaken) -- bdy单独分栏禁用
then
box:addClass( "ns-same" )
end
end
end
if args['Beyond更新版本'] and args['Beyond更新时间'] then box:addClass( 'mobile-awaken-date' ) end
if args['曲名']=='Tempestissimo' then box:addClass( 'ns-awaken-date' ) box:addClass( 'ns-date-span' )  end
if not(args['更新版本'] or args['更新时间'] or data('id')) then box:addClass( 'no-mobile' )  end
--表格生成
--表格生成
local boxList={}
local boxList={}
   for i, o in ipairs(infoList) do
     boxList[i] = mw.html.create('div')
     boxList[i]
     :attr(infoList[i][2])
     :cssText(infoList[i][3])
     :wikitext(infoList[i][1])
     box:wikitext(tostring(boxList[i]))
   end
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
return tostring(box)
end
end


return p
return p

2021年7月26日 (一) 00:33的最新版本

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

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

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

function update(version,device,awakenyes,version2)
	if device == 'ns'
	then
		return '<div class="date-box"><div>'..labelText('NS版')..'</div><div>'..version..'</div><div></div></div>'
	else
		if awakenyes
		then 
			return '<div class="date-box"><div>'..labelText('移动版')..'</div><div>搭档:'..version..'<br />觉醒形态:'..version2..'</div><div></div></div>'
		end
	    return '<div class="date-box"><div>'..labelText('移动版')..'</div><div>'..version..'</div><div></div></div>'
	end
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
	
	return '<div><div class="floatnone">[[文件:'..normal..'|'..size..'px]]</div><div>'..labelText('画师')..Jacket..'</div></div>'
end

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

function p._main(args)
	
	local awaken
	local size
	local belongs
	if args['觉醒形态'] == '有' then awaken=true else awaken=false end
	if args['名称'] == '白姬' or args['名称'] == '凛可' then size=200 else size=300 end
	if args['所属曲包']
	then
		belongs='所属曲包'
	else
		if args['所属单曲'] then belongs='所属单曲' else belongs='所属单曲/曲包' end
	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] = { belongs, {class = 'label'}},
        [8] = { args['所属曲包'] or args['所属单曲'] or '-', {class = 'data'}},
        [9] = { '觉醒形态', {class = 'label'}},
        [10] = { args['觉醒形态'] or '无', {class = 'data'}},
        [11] = { '搭档数据', {class = 'header', id='all-play-header'}},
        [12] = { '搭档数据 (移动版)', {class = 'header', id='mobile-play-header'}},
        [13] = { '等级', {class = 'label'}},
        [14] = { 'Lv1', {class = 'level-data'}},
        [15] = { 'Lv20', {class = 'level-data'}},
        [16] = { 'Lv30', {class = 'awaken-data'}},
        [17] = { 'Frag', {class = 'label'}},
        [18] = { args['Frag1'], {class = 'level-data'}},
        [19] = { args['Frag20'], {class = 'level-data'}},
        [20] = { args['Frag30'], {class = 'awaken-data'}},
        [21] = { 'Step', {class = 'label'}},
        [22] = { args['Step1'], {class = 'level-data'}},
        [23] = { args['Step20'], {class = 'level-data'}},
        [24] = { args['Step30'], {class = 'awaken-data'}},
        [25] = { 'Over', {class = 'label over'}},
        [26] = { args['Over1'], {class = 'level-data over'}},
        [27] = { args['Over20'], {class = 'level-data over'}},
        [28] = { args['Over30'], {class = 'awaken-data over'}},
        [29] = { '搭档数据 (Nintendo Switch版)', {class = 'header ns', id='ns-play-header'}},
        [30] = { '等级', {class = 'label ns'}},
        [31] = { 'Lv1', {class = 'level-data ns'}},
        [32] = { 'Lv20', {class = 'level-data ns'}},
        [33] = { 'Lv30', {class = 'awaken-data ns'}},
        [34] = { 'Frag', {class = 'label ns'}},
        [35] = { args['Frag1NS'], {class = 'level-data ns'}},
        [36] = { args['Frag20NS'], {class = 'level-data ns'}},
        [37] = { args['Frag30NS'], {class = 'awaken-data ns'}},
        [38] = { 'Step', {class = 'label ns'}},
        [39] = { args['Step1NS'], {class = 'level-data ns'}},
        [40] = { args['Step20NS'], {class = 'level-data ns'}},
        [41] = { args['Step30NS'], {class = 'awaken-data ns'}},
        [42] = { '技能', {class = 'label', id='skill-label'}},
        [43] = { args['技能'] or '-', {class = 'data', id = 'skill-normal'}},
        [44] = { args['觉醒技能'], {class = 'data', id = 'skill-awaken'}},
        [45] = { '更新时间', {id='update-data-label' ,class = 'label'}},
        [46] = { update(args['更新时间'] or '无','mobile',awaken,args['觉醒更新时间'] or args['更新时间']), {id='mobile-date-normal', class = 'data'}},
        [47] = { update(args['更新时间NS'] or '无','ns',awaken,'无'), {id='ns-date-normal', class = 'data'}}
	}

	local box = mw.html.create( 'div' )
	
	--样式控制
	box:addClass( "partnerbox" )
	if awaken then box:addClass( "awaken" ) end
	if args['名称'] == '白姬' or args['名称'] == '凛可' then box:addClass( "ns-only" ) end
	if awaken and args['技能'] ~= args['觉醒技能'] and args['觉醒技能'] ~= nil then box:addClass( "skill-different" ) 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][2])
        :cssText(infoList[i][3])
        :wikitext(infoList[i][1])
        box:wikitext(tostring(boxList[i]))
    end
	
	--分类添加咕了,不想做
	
	return tostring(box)
end

return p