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

来自Arcaea中文维基
(烂泥)
无编辑摘要
 
(未显示同一用户的42个中间版本)
第3行: 第3行:
local getData = require("Module:data")
local getData = require("Module:data")
local p = {}
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 bgCov(bg)
if bg==nil
then
return nil
else
return '[[:分类:采用'..bg..'背景的曲目|'..bg..']]'
end
end
function bydMark(byd,name)
local diff,mark = mw.html.create( 'div' ),mw.html.create( 'div' )
diff:wikitext('[Beyond]')
mark:wikitext('仅移动版')
if byd and name~='Tempestissimo'
then
return tostring(tostring(diff)..tostring(mark))
else
return tostring(diff)
end
end


function labelText(text,class)
function labelText(text,class)
第53行: 第11行:
end
end


function getImage(id,all,pst,prs,ftr,byd,second,normalJacketArgs,bydJacketArgs,normalJacketData,bydJacketData,bydyes,type)
function update(version,device,awakenyes,version2)
local container,tab=mw.html.create('div'),mw.html.create('div')
if device == 'ns'
local tab1,tab2,tab3,part1,part2,part3,jacket1,jacket2
container:addClass( 'container' )
tab:attr( 'id','tab-'..type ) tab:addClass( 'img-tab' )
local normalJacket,bydJacket
if normalJacketArgs
then
then
if bydJacketArgs
return '<div class="date-box"><div>'..labelText('NS版')..'</div><div>'..version..'</div><div></div></div>'
then
normalJacket,bydJacket=normalJacketArgs,bydJacketArgs
else
normalJacket,bydJacket=normalJacketArgs,normalJacketArgs
end
else
else
if normalJacketData=="" or normalJacketData==nil
if awakenyes
then
then 
normalJacket,bydJacket=' 未知',' 未知'
return '<div class="date-box"><div>'..labelText(' 移动版')..'</div><div>搭档:'..version..'<br />觉醒形态:'..version2..'</div><div></div></div>'
else
normalJacket,bydJacket=link({' 画师',tostring(normalJacketData)}),link({' 画师',tostring(bydJacketData)})
end
end
   return '<div class="date-box"><div>'..labelText('移动版')..'</div><div>'..version..'</div><div></div></div>'
end
end
end


if pst and prs and ftr
function getImage(normal,awaken,JacketArgs,awakenyes,type,size)
then
local container,tab=mw.html.create('div'),mw.html.create('div')
tab1,tab2,tab3,part1,part2,part3=mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div')
local tab1,tab2,part1,part2,jacket
 
container:addClass( 'container' )
tab1:wikitext('Past') tab2:wikitext('Present') tab3:wikitext('Future')
tab:attr( 'id','tab-'..type ) tab:addClass( 'img-tab' )
tab1:addClass('img-tab-part pst') tab2:addClass('img-tab-part prs') tab3:addClass('img-tab-part ftr')
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2)) tab:wikitext(tostring(tab3))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:'..pst..'|256px|none]]'..labelText('画师')..normalJacket) part2:wikitext('[[文件:'..prs..'|256px|none]]'..labelText('画师')..normalJacket)  part3:wikitext('[[文件:'..ftr..'|256px|none]]'..labelText('画师')..normalJacket)
part1:addClass('tab-text-'..type) part2:addClass('tab-text-'..type)  part3:addClass('active tab-text-'..type)
container:wikitext(tostring(part1)) container:wikitext(tostring(part2)) container:wikitext(tostring(part3))
return tostring(container)
end
if byd
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('Beyond')
tab1:addClass('img-tab-part normal') tab2:addClass('img-tab-part byd')
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:'..all..'|256px|none]]'..labelText('画师')..normalJacket) part2:wikitext('[[文件:'..byd..'|256px|none]]'..labelText('画师')..tostring(bydJacket))
part1:addClass('active tab-text-'..type) part2:addClass('tab-text-'..type)
container:wikitext(tostring(part1)) container:wikitext(tostring(part2)
return tostring(container)
end
if second
local Jacket=JacketArgs
then
tab1,tab2,part1,part2=mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div')
 
tab1:wikitext('第一曲绘') tab2:wikitext('第二曲绘')
tab1:addClass('img-tab-part normal') tab2:addClass('img-tab-part normal')
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:'..all..'|256px|none]]'..labelText('画师')..normalJacket) part2:wikitext('[[文件:'..second..'|256px|none]]'..labelText('画师')..normalJacket)
part1:addClass('active tab-text-'..type) part2:addClass('tab-text-'..type)
container:wikitext(tostring(part1)) container:wikitext(tostring(part2))
return tostring(container)
end
if id and bydyes
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('Beyond')
tab1:wikitext('Normal') tab2:wikitext('Awaken')
tab1:addClass('img-tab-part normal') tab2:addClass('img-tab-part byd')
tab1:addClass('img-tab-part normal') tab2:addClass('img-tab-part awaken')
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
container:wikitext(tostring(tab))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:Songs '..id..'.jpg|256px|none]]'..labelText('画师')..normalJacket) part2:wikitext('[[文件:Songs '..id..' byd.jpg|256px|none]]'..labelText('画师')..tostring(bydJacket)) 
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)) 
第141行: 第48行:
end
end
if id
return '<div><div class="floatnone">[[文件:'..normal..'|'..size..'px]]</div><div>'..labelText('画师')..Jacket..'</div></div>'
then
return '<div>[[文件:Songs '..id..'.jpg|256px|none]]'..labelText('画师')..normalJacket..'</div>'
end
return '<div>[[文件:'..all..'|256px|none]]'..labelText('画师')..normalJacket..'</div>'
end
 
function merge(list)
local merge
if list[4] then merge={1,1,1,1} else merge={1,1,1} end
local o
if list[4] then o=4 else o=3 end
 
if list[4] then
if list[4]==list[3] then merge[3]=merge[3]+merge[4] merge[4]=0 end
end
 
if list[3]==list[2] then merge[2]=merge[2]+merge[3] merge[3]=0 end
 
if list[2]==list[1] then merge[1]=merge[1]+merge[2] merge[2]=0 end
 
for i=1,o do
if merge[i]==0 then
merge[i]='display:none'
else
merge[i]='grid-column-start: span '..merge[i]..';'
end
end
return merge
end
 
function re0()
return nil
end
end


第185行: 第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 byd
local imageB=getImage(args['图片'],args['觉醒图片'],args['画师'],awaken,'b',size)
if args['Beyond 等级'] or data('bydRating') then byd=true else byd=false end
local infoList = {
     [1] = { args[' 名称'], {id = 'title'}},
local getChartDesigner={
     [2] = { imageA, {id = 'top-image'}},
[1]={ 'mobile' , 'PastNote编写' , 'note编写' , 'pstChartDesigner' },
     [3] = { imageB, {id = 'right-image'}},
[2]={ 'mobile' , 'PresentNote编写' , 'note编写' , 'prsChartDesigner' },
     [4] = { '搭档信息', {class = 'header'}},
[3]={ 'mobile' , 'FutureNote编写' , 'note编写' , 'ftrChartDesigner' },
     [5] = { '类型', {class = 'label'}},
[4]={ 'mobile' , 'BeyondNote编写' , 'note编写' , 'bydChartDesigner' },
     [6] = { args['类型'], {class = 'data'}},
[5]={ 'ns' , 'PastNote编写NS' , 'note编写NS' , 'pstChartDesigner' },
     [7] = { belongs, {class = 'label'}},
[6]={ 'ns' , 'PresentNote编写NS' , 'note编写NS' , 'prsChartDesigner' },
     [8] = { args['所属曲包'] or args['所属单曲'] or '-', {class = 'data'}},
[7]={ 'ns' , 'FutureNote编写NS' , 'note编写NS' , 'ftrChartDesigner' }
     [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' )
local chartDesigner={}
--样式控制
for i,k in ipairs(getChartDesigner)
box:addClass( "partnerbox" )
do
if awaken then box:addClass( "awaken" ) end
if args[k[2]]
if args['名称'] == '白姬' or args['名称'] == '凛可' then box:addClass( "ns-only" ) end
then
if awaken and args['技能'] ~= args['觉醒技能'] and args['觉醒技能'] ~= nil then box:addClass( "skill-different" ) end
chartDesigner[i]=args[k[2]]
if args[' 类型']==' 支援型'
else
then
if args[k[3]]
box:addClass( "support" )
then
chartDesigner[i]=args[k[3]]
else
if chartDesigner[i-1] and argsLength>=16 and i~=5 and i~=6 and i~=7
then
chartDesigner[i]=chartDesigner[i-1]
else
if k[1]=='mobile'
then
chartDesigner[i]=link({ '谱师',tostring(data(k[4])) })
else
chartDesigner[i]=link({ ' 谱师',tostring(dataNs(k[4])) })
end
end
end
end
end
local span,spanNs
if byd then
span=merge({ chartDesigner[1],chartDesigner[2],chartDesigner[3],chartDesigner[4] })
else
else
span=merge({ chartDesigner[1],chartDesigner[2],chartDesigner[3] })
if args['类型']=='挑战型' then box:addClass( "challenge" ) else box:addClass( "balance" ) end
end
end
spanNs=merge({ chartDesigner[1],chartDesigner[2],chartDesigner[3] })
if args['曲名']=='Tempestissimo' then spanNs={'grid-column-start: span 1','grid-column-start: span 1','grid-column-start: span 1','grid-column-start: span 1'}  end
local imageA=getImage(data('id'),args['图片'],args['Past曲绘'],args['Present曲绘'],args['Future曲绘'],args['Beyond曲绘'],args['第二曲绘图片'],args['画师'],args['Beyond画师'],data('ftrJacketDesigner'),data('bydJacketDesigner'),byd,'a')
local imageB=getImage(data('id'),args['图片'],args['Past曲绘'],args['Present曲绘'],args['Future曲绘'],args['Beyond曲绘'],args['第二曲绘图片'],args['画师'],args['Beyond画师'],data('ftrJacketDesigner'),data('bydJacketDesigner'),byd,'b')
local infoList={
[1]={
args['曲名'],data('title'),{ ['id']='title' }
},
[2]={
imageA,'image',{ ['id']='top-image' }
},
[3]={
imageB,'image',{ ['id']='right-image' }
},
[4]={
'曲目信息','',{ ['class']='header' }
},
[5]={
'曲师','',{ ['class']='label' }
},
[6]={
args['编曲'],link({ '曲师',tostring(data('artist')) }),{ ['class']='data' }
},
[7]={
'曲包','',{ ['class']='label' }
},
[8]={
args['曲包'],getData.pack({data('set')}),{ ['class']='data' }
},
[9]={
'时长','',{ ['class']='label' }
},
[10]={
args['时长'],'空',{ ['class']='data' }
},
[11]={
'BPM','',{ ['class']='label' }
},
[12]={
args['BPM'],data('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]={
bydMark(byd,args['曲名']),'',{ ['class']='byd-label' }
},
[19]={
'等级','',{ ['class']='label' }
},
[20]={
args['Past等级'],data('pstRating'),{ ['class']='pst-data' }
},
[21]={
args['Present等级'],data('prsRating'),{ ['class']='prs-data' }
},
[22]={
args['Future等级'],data('ftrRating'),{ ['class']='ftr-data' }
},
[23]={
args['Beyond等级'],data('bydRating'),{ ['class']='byd-data' }
},
[24]={
'note数量','',{ ['class']='label' }
},
[25]={
args['PastNote'],'空',{ ['class']='pst-data' }
},
[26]={
args['PresentNote'],'空',{ ['class']='prs-data' }
},
[27]={
args['FutureNote'],'空',{ ['class']='ftr-data' }
},
[28]={
args['BeyondNote'],'空',{ ['class']='byd-data' }
},
[29]={
'谱面设计','',{ ['class']='label' }
},
[30]={
chartDesigner[1],'无',{ ['class']='pst-data' },span[1]
},
[31]={
chartDesigner[2],'无',{ ['class']='prs-data' },span[2]
},
[32]={
chartDesigner[3],'无',{ ['class']='ftr-data' },span[3]
},
[33]={
chartDesigner[4],'无',{ ['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' }
},
--[[   暂时无用部分,如有用则启用
[41]={
'等级','',{ ['class']='label ns' }
},
[42]={
args['Past等级NS'],dataNs('pstRating'),{ ['class']='pst-data ns' }
},
[43]={
args['Present等级NS'],dataNs('prsRating'),{ ['class']='prs-data ns' }
},
[44]={
args['Future等级NS'],dataNs('ftrRating'),{ ['class']='ftr-data ns' }
},
[45]={
args['Beyond等级NS'],'无',{ ['class']='byd-data ns' }
},  ]]--
[40]={
'note数量','',{ ['class']='label ns' }
},
[41]={
args['PastNoteNS'],args['PastNote'],{ ['class']='pst-data ns' }
},
[42]={
args['PresentNoteNS'],args['PresentNote'],{ ['class']='prs-data ns' }
},
[43]={
args['FutureNoteNS'],args['FutureNote'],{ ['class']='ftr-data ns' }
},
[44]={
args['BeyondNoteNS'],'无',{ ['class']='byd-data ns' }
},
--[[   暂时无用部分,如有用则启用
[51]={
'谱面设计','',{ ['class']='label ns' }
},
[52]={
chartDesigner[5],chartDesigner[1],{ ['class']='pst-data ns' },spanNs[1]
},
[53]={
chartDesigner[6],chartDesigner[2],{ ['class']='prs-data ns' },spanNs[2]
},
[54]={
chartDesigner[7],chartDesigner[3],{ ['class']='ftr-data ns' },spanNs[3]
},
[55]={
args['BeyondNote编写NS'],'无',{ ['class']='byd-data ns' },spanNs[4]
},  ]]--
[45]={
'背景','',{ ['class']='label' }
},
[46]={
bgCov(args['背景']),bgCov(data('bg')),{ ['class']='data' }
},
[47]={
'更新时间','',{ ['id']='update-data-label',['class']='label' }
},
[48]={
dateCov(args['更新版本'] , args['更新时间'] , labelText('移动版') , 'arg' ) , dateCov( data('version') , tonumber(data('date')) , labelText('移动版') , 'data' ) ,{ ['id']='mobile-date-normal',['class']='data'}
},
[49]={
dateCov(args['Beyond更新版本'] , args['Beyond更新时间'] ,labelText('移动版') , 'arg'  ) ,'空',{ ['id']='mobile-date-byd',['class']='data'}
},
[50]={
dateCov(args['更新版本NS'] , args['更新时间NS'] , labelText('NS版') , 'arg' ),dateCov('v1.0.0c' ,'2021/05/18' , labelText('NS版') , 'arg' ),{ ['id']='ns-date-normal',['class']='data ns'}
},
[51]={
'无','',{ ['id']='ns-date-byd',['class']='data ns'}
}
}


local box = mw.html.create( 'div' )
if args['更新 时间NS']
--样式控制
box:addClass( "songbox" )
if byd then box:addClass( "byd" ) end
if dataNs('side')==1 or args['侧']=='1' then box:addClass( "conflict" ) else box:addClass( "light" ) end
if args['更新 版本NS'] or dataNs('id')
then
then
box:addClass( "ns-box" )
box:addClass( "ns-box" )
if not( dataNs('pstChange') or dataNs('prsChange') or dataNs('ftrChange') ) --(or byd) -- bdy单独分栏禁用
then
box:addClass( "ns-same" )
end
end
end
if args['Beyond更新版本'] and args['Beyond更新时间'] then box:addClass( 'mobile-byd-date' ) end
if args['曲名']=='Tempestissimo' then box:addClass( 'ns-byd-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