跳至內容

「Module:Partnertable」:修訂間差異

v6.0
(探索者type)
(v6.0)
 
第1行: 第1行:
local getArgs = require('Module:Arguments').getArgs
local getArgs = require 'Module:Arguments'.getArgs
local link = require('Module:Link')._link
local lang = mw.getContentLanguage()
local getData = require("Module:data")
local p = {}
local p = {}


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


function update(version,device,awakenyes,version2) --更新时间
function update(version, device, awakenyes, version2) --更新时间
if device == 'ns'
   if device == 'ns' then
then
     if awakenyes and version ~= version2 and version2 then
if awakenyes and version~= version2 and version2
       return '<div class="date-box"><div>' .. labelText 'NS版' .. '</div><div>搭档:' .. version .. '<br />觉醒形态:' .. version2 .. '</div><div></div></div>'
then 
     end
return '<div class="date-box"><div>'..labelText('NS版')..'</div><div>搭档:'..version..'<br />觉醒形态:'..version2..'</div><div></div></div>'
     return '<div class="date-box"><div>' .. labelText 'NS版' .. '</div><div>' .. version .. '</div><div></div></div>'
end
   else
   return '<div class="date-box"><div>'..labelText('NS版')..'</div><div>'..version..'</div><div></div></div>'
     if awakenyes and version ~= version2 and version2 then
else
       return '<div class="date-box"><div>' .. labelText '移动版' .. '</div><div>搭档:' .. version .. '<br />觉醒形态:' .. version2 .. '</div><div></div></div>'
if awakenyes and version~= version2 and version2
     end
then 
     return '<div class="date-box"><div>' .. labelText '移动版' .. '</div><div>' .. version .. '</div><div></div></div>'
return '<div class="date-box"><div>'..labelText('移动版')..'</div><div>搭档:'..version..'<br />觉醒形态:'..version2..'</div><div></div></div>'
   end
end
   return '<div class="date-box"><div>'..labelText('移动版')..'</div><div>'..version..'</div><div></div></div>'
end
end
end


function skill(text,skilldiff,label)
function skill(text, skilldiff, label)
    if skilldiff
    if skilldiff then
   then
     return '<div><span class="label-text">' .. label .. '</span></div>' .. text
   return '<div><span class="label-text">'..label..'</span></div>'..text
    else
    else
   return text
     return text
    end
    end
end
end


function title(name,nameSecond)
function title(name, nameSecond)
    local result=name
    local result = name
    if nameSecond then result = result .. "<br />" .. nameSecond end
    if nameSecond then result = result .. '<br />' .. nameSecond end
    return result
    return result
end
end


function version(time)
function version(time)
    local ans
    return ({string.find(time, '([vV]%d+%.%d+%.%d+c?)')})[3] or 'unknown'
   if string.byte(time,7) == 99 or string.byte(time,7) >= 48 and string.byte(time,7) <= 57
   then if string.byte(time,8) == 99 or string.byte(time,8) >= 48 and string.byte(time,8) <= 57 then ans = 8 else ans = 7 end
   else ans = 6
   end --判定第七、八位是否为c或数字
   return string.sub(time,1,ans)
end
end


function getImage(normal,awaken,normalJacket,awakenJacket,awakenyes,type)
function getImage(normal, awaken, normalJacket, awakenJacket, 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
container:addClass( 'container' )
   container:addClass 'container'
tab:attr( 'id','tab-'..type ) tab:addClass( 'img-tab' )
   tab:attr('id', 'tab-' .. type)
   tab:addClass 'img-tab'
local JacketNormal=normalJacket
 
   local JacketNormal = normalJacket
if awaken
 
then
   if awaken 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'
local JacketAwaken=normalJacket
     local JacketAwaken = normalJacket
if awakenJacket
     if awakenJacket then
then
       JacketAwaken = awakenJacket
JacketAwaken=awakenJacket
     end
end
     tab1:wikitext 'Normal'
tab1:wikitext('Normal') tab2:wikitext('Awaken')
     tab2:wikitext 'Awaken'
tab1:addClass('img-tab-part normal active') tab2:addClass('img-tab-part awaken')
     tab1:addClass 'img-tab-part normal active'
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
     tab2:addClass 'img-tab-part awaken'
container:wikitext(tostring(tab))
     tab:wikitext(tostring(tab1))
     tab:wikitext(tostring(tab2))
part1:wikitext('[[文件:'..normal..'|300px|none]]'..labelText('画师')..tostring(JacketNormal)) part2:wikitext('[[文件:'..awaken..'|300px|none]]'..labelText('画师')..tostring(JacketAwaken)) 
     container:wikitext(tostring(tab))
part1:addClass('active tab-text-'..type) part2:addClass('tab-text-'..type) 
 
container:wikitext(tostring(part1)) container:wikitext(tostring(part2)) 
     part1:wikitext('[[文件:' .. normal .. '|300px|none]]' .. labelText '画师' .. tostring(JacketNormal))
     part2:wikitext('[[文件:' .. awaken .. '|300px|none]]' .. labelText '画师' .. tostring(JacketAwaken))
return tostring(container)
     part1:addClass('active tab-text-' .. type)
end
     part2:addClass('tab-text-' .. type)
     container:wikitext(tostring(part1))
return '<div><div class="floatnone">[[文件:'..normal..'|300px]]</div><div>'..labelText('画师')..JacketNormal..'</div></div>'
     container:wikitext(tostring(part2))
 
     return tostring(container)
   end
 
   return '<div><div class="floatnone">[[文件:' .. normal .. '|300px]]</div><div>' .. labelText '画师' .. JacketNormal .. '</div></div>'
end
end


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


function p._main(args)
function p._main(args)
   local awaken    --觉醒判定
local awaken --觉醒判定
   local size     --图片大小
local size --图片大小
   local belongs    --所属单位
local belongs --所属单位
   local skillawaken --觉醒技能
local skillawaken --觉醒技能
   local skillsec   --第二技能
local skillsec --第二技能
   if args['觉醒形态'] == '有' then awaken = true else awaken = false end
if args['觉醒形态'] == '有' then awaken=true else awaken=false end
   if awaken and args['技能'] ~= args['觉醒技能'] and args['觉醒技能'] ~= nil then skillawaken = true else skillawaken = false end
if awaken and args['技能'] ~= args['觉醒技能'] and args['觉醒技能'] ~= nil then skillawaken=true else skillawaken=false end
   if args['第二技能'] then skillsec = true else skillsec = false end
if args['第二技能'] then skillsec=true else skillsec=false end
   if args['所属曲包'] then
if args['所属曲包']
     belongs = '所属曲包'
then
   elseif args['所属单曲'] then
belongs='所属曲包'
     belongs = '所属单曲'
else
   else
if args['所属单曲'] then belongs='所属单曲' else belongs='所属单曲/曲包' end
     belongs = '所属单曲/曲包'
end
   end
local imageA=getImage(args['图片'],args['觉醒图片'],args['画师'],args['觉醒画师'],awaken,'a')
   local imageA = getImage(args['图片'], args['觉醒图片'], args['画师'], args['觉醒画师'], awaken, 'a')
local imageB=getImage(args['图片'],args['觉醒图片'],args['画师'],args['觉醒画师'],awaken,'b')
   local imageB = getImage(args['图片'], args['觉醒图片'], args['画师'], args['觉醒画师'], awaken, 'b')
local infoList = {
   local infoList = {
      [1] = { title(args['名称'], args['第二名称']), {id = 'title'}},
      [1] = {title(args['名称'], args['第二名称']), {id = 'title'}},
      [2] = { imageA, {id = 'top-image'}},
      [2] = {imageA, {id = 'top-image'}},
      [3] = { imageB, {id = 'right-image'}},
      [3] = {imageB, {id = 'right-image'}},
      [4] = { '搭档信息', {class = 'header'}},
      [4] = {'搭档信息', {class = 'header'}},
      [5] = { '类型', {class = 'label'}},
      [5] = {'类型', {class = 'label'}},
      [6] = { args['类型'], {class = 'data'}},
      [6] = {args['类型'], {class = 'data'}},
      [7] = { belongs, {class = 'label'}},
      [7] = {belongs, {class = 'label'}},
      [8] = { args['所属曲包'] or args['所属单曲'] or args['所属单曲/曲包'] or '-', {class = 'data'}},
      [8] = {args['所属曲包'] or args['所属单曲'] or args['所属单曲/曲包'] or '-', {class = 'data'}},
      [9] = { '种类', {class = 'label'}},
      [9] = {'种类', {class = 'label'}},
      [10] = { args['种类'] or '-', {class = 'data'}},
      [10] = {args['种类'] or '-', {class = 'data'}},
      [11] = { '觉醒形态', {class = 'label'}},
      [11] = {'觉醒形态', {class = 'label'}},
      [12] = { args['觉醒形态'] or '无', {class = 'data'}},
      [12] = {args['觉醒形态'] or '无', {class = 'data'}},
      [13] = { '搭档数据', {class = 'header', id='all-play-header'}},
      [13] = {'搭档数据', {class = 'header', id = 'all-play-header'}},
      [14] = { '搭档数据 (移动版)', {class = 'header', id='mobile-play-header'}},
      [14] = {'搭档数据 (移动版)', {class = 'header', id = 'mobile-play-header'}},
      [15] = { '等级', {class = 'label'}},
      [15] = {'等级', {class = 'label'}},
      [16] = { 'Lv1', {class = 'level-data'}},
      [16] = {'Lv1', {class = 'level-data'}},
      [17] = { 'Lv20', {class = 'level-data'}},
      [17] = {'Lv20', {class = 'level-data'}},
      [18] = { 'Lv30', {class = 'awaken-data'}},
      [18] = {'Lv30', {class = 'awaken-data'}},
      [19] = { 'Frag', {class = 'label'}},
      [19] = {'Frag', {class = 'label'}},
      [20] = { args['Frag1'], {class = 'level-data'}},
      [20] = {args['Frag1'], {class = 'level-data'}},
      [21] = { args['Frag20'], {class = 'level-data'}},
      [21] = {args['Frag20'], {class = 'level-data'}},
      [22] = { args['Frag30'], {class = 'awaken-data'}},
      [22] = {args['Frag30'], {class = 'awaken-data'}},
      [23] = { 'Step', {class = 'label'}},
      [23] = {'Step', {class = 'label'}},
      [24] = { args['Step1'], {class = 'level-data'}},
      [24] = {args['Step1'], {class = 'level-data'}},
      [25] = { args['Step20'], {class = 'level-data'}},
      [25] = {args['Step20'], {class = 'level-data'}},
      [26] = { args['Step30'], {class = 'awaken-data'}},
      [26] = {args['Step30'], {class = 'awaken-data'}},
      [27] = { 'Over', {class = 'label over'}},
      [27] = {'Over', {class = 'label over'}},
      [28] = { args['Over1'], {class = 'level-data over'}},
      [28] = {args['Over1'], {class = 'level-data over'}},
      [29] = { args['Over20'], {class = 'level-data over'}},
      [29] = {args['Over20'], {class = 'level-data over'}},
      [30] = { args['Over30'], {class = 'awaken-data over'}},
      [30] = {args['Over30'], {class = 'awaken-data over'}},
      [31] = { '搭档数据 (Nintendo Switch版)', {class = 'header ns', id='ns-play-header'}},
      [31] = {'搭档数据 (Nintendo Switch版)', {class = 'header ns', id = 'ns-play-header'}},
      [32] = { '等级', {class = 'label ns'}},
      [32] = {'等级', {class = 'label ns'}},
      [33] = { 'Lv1', {class = 'level-data ns'}},
      [33] = {'Lv1', {class = 'level-data ns'}},
      [34] = { 'Lv20', {class = 'level-data ns'}},
      [34] = {'Lv20', {class = 'level-data ns'}},
      [35] = { 'Lv30', {class = 'awaken-data ns'}},
      [35] = {'Lv30', {class = 'awaken-data ns'}},
      [36] = { 'Frag', {class = 'label ns'}},
      [36] = {'Frag', {class = 'label ns'}},
      [37] = { args['Frag1NS'], {class = 'level-data ns'}},
      [37] = {args['Frag1NS'], {class = 'level-data ns'}},
      [38] = { args['Frag20NS'], {class = 'level-data ns'}},
      [38] = {args['Frag20NS'], {class = 'level-data ns'}},
      [39] = { args['Frag30NS'], {class = 'awaken-data ns'}},
      [39] = {args['Frag30NS'], {class = 'awaken-data ns'}},
      [40] = { 'Step', {class = 'label ns'}},
      [40] = {'Step', {class = 'label ns'}},
      [41] = { args['Step1NS'], {class = 'level-data ns'}},
      [41] = {args['Step1NS'], {class = 'level-data ns'}},
      [42] = { args['Step20NS'], {class = 'level-data ns'}},
      [42] = {args['Step20NS'], {class = 'level-data ns'}},
      [43] = { args['Step30NS'], {class = 'awaken-data ns'}},
      [43] = {args['Step30NS'], {class = 'awaken-data ns'}},
      [44] = { '技能', {class = 'label', id='skill-label'}},
      [44] = {'技能', {class = 'label', id = 'skill-label'}},
      [45] = { skill(args['技能'] or '-',skillawaken,'普通形态'), {class = 'data', id = 'skill-normal'}},
      [45] = {skill(args['技能'] or '-', skillawaken, '普通形态'), {class = 'data', id = 'skill-normal'}},
      [46] = { skill(args['觉醒技能'] or args['技能'],skillawaken,'觉醒形态'), {class = 'data', id = 'skill-awaken'}},
      [46] = {skill(args['觉醒技能'] or args['技能'], skillawaken, '觉醒形态'), {class = 'data', id = 'skill-awaken'}},
      [47] = { skill(args['技能'],skillsec,args['第一技能说明'] or '第一技能'), {class = 'data', id = 'skill-first'}},
      [47] = {skill(args['技能'], skillsec, args['第一技能说明'] or '第一技能'), {class = 'data', id = 'skill-first'}},
      [48] = { skill(args['第二技能'],skillsec,args['第二技能说明'] or '第二技能'), {class = 'data', id = 'skill-first'}},
      [48] = {skill(args['第二技能'], skillsec, args['第二技能说明'] or '第二技能'), {class = 'data', id = 'skill-first'}},
      [49] = { '更新时间', {id='update-data-label' ,class = 'label'}},
      [49] = {'更新时间', {id = 'update-data-label', class = 'label'}},
      [50] = { update(args['更新时间'] or '无','mobile',awaken,args['觉醒更新时间'] or args['更新时间']), {id='mobile-date-normal', class = 'data'}},
      [50] = {update(args['更新时间'] or '无', 'mobile', awaken, args['觉醒更新时间'] or args['更新时间']), {id = 'mobile-date-normal', class = 'data'}},
      [51] = { update(args['更新时间NS'] or '无','ns',awaken,args['觉醒更新时间NS'] or args['更新时间NS']), {id='ns-date-normal', class = 'data'}}
      [51] = {update(args['更新时间NS'] or '无', 'ns', awaken, args['觉醒更新时间NS'] or args['更新时间NS']), {id = 'ns-date-normal', class = 'data'}}
}
   }


local box = mw.html.create( 'div' )
   local box = mw.html.create 'div'
--样式控制
box:addClass( "partnerbox arcaeabox" )
if awaken then box:addClass( "awaken" ) end
-- if args['名称'] == '' then box:addClass( "ns-only" ) end
if skillawaken then box:addClass( "skill-awaken" ) end
if skillsec then box:addClass( "skill-second" ) 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 'partnerbox arcaeabox'
box:addClass( "ns-box" )
   if awaken then box:addClass 'awaken' end
end
   -- if args[' 名称'] == '' then box:addClass( "ns-only" ) end
   if skillawaken then box:addClass 'skill-awaken' end
--表格生成
   if skillsec then box:addClass 'skill-second' end
local boxList={}
   if args['类型'] == '支援型' then
   for _, v  in ipairs(infoList) do
      box:addClass 'support'
      box:tag('div'):attr(v[2]):cssText(v[3]):wikitext(v[1]):done()
   elseif args['类型'] == '挑战型' then
     box:addClass 'challenge'
   else
     box:addClass 'balance'
    end
    end
 
--分类添加
   if args['更新时间NS'] then
    local category = ''
     box:addClass 'ns-box'
  
   end
 
   --表格生成
   local boxList = {}
   for _, v in ipairs(infoList) do
     box:tag 'div':attr(v[2]):cssText(v[3]):wikitext(v[1]):done()
   end
 
   --分类添加
    local category = mw.html.create()
 
    --平台
    --平台
    if args['更新时间NS']
   local plat
     then
    if args['更新时间NS'] then
      if args['更新时间']
      if args['更新时间'] then
       then
        plat = '双平台'
        category = category..'[[分类: 双平台 搭档]]'
      else
      else
        category = category..'[[分类:NS版 搭档]]'
        plat = 'NS版'
      end
      end
    else
    else
      category = category..'[[分类: 移动版 搭档]]'
      plat = '移动版'
    end
    end
   category:wikitext('[[分类:', plat, '搭档]]')


    --觉醒
    --觉醒
    if awaken
    category:wikitext('[[分类:', awaken and ' 有' or '没有', ' 觉醒形态的', ' 搭档]]')
   then
category = category..'[[分类:有 觉醒形态的搭档]]'
else
category = category..'[[分类: 没有觉醒形态的搭档]]'
end


    --类型
    --类型
    local type=args['类型']
    local type = args['类型'] or '平衡型'
    if type == '???/创世 型' or type == '???/探索者' or type == '???' then type='特殊类型' end
    local typeSet = {[' 支援 型'] = true, [' 平衡型'] = true, [' 挑战型'] = true,}
    category = category..'[[分类:'..(type or ' 平衡 型')..'搭档]]'
    category:wikitext('[[分类:', typeSet[type] and type or ' 特殊类 型', '搭档]]')
   -- ???/创世型; ???/探索者; ???


    --种类
    --种类
    local c1,c2=string.sub(args['种类'],1,6),string.sub(args['种类'],-6,-1)
    local cMap = {['限时'] = '限时活动', ['特殊'] = '获取方式特殊的', ['专辑'] = 'Arcaea原声专辑特典',}
   if c1 == '限时' then c1='限时活动' end
    for c in mw.text.gsplit(args[' 类'], '/', true) do
   if c1 == '特殊' then c1='获取方式特殊的' end
     if c ~= '原创' then
   if c2 == '原创' then c2='限时活动' end
       category:wikitext('[[分类:', cMap[c] or c, '搭档]]')
   if c2 == '专辑' then c2='Arcaea原声专辑特典' end
     end
    category = category..'[[分 :'..c1.. ' 搭档]]'
   end
   category = category..'[[分类:'..c2.. '搭档]]'


    --版本
    --版本
    if args['更新时间'] then category = category..'[[分类:'..string.gsub(version(args['更新时间']),'v','V').. '添加的 搭档]]' end
    if args['更新时间'] then
    if awaken then category = category..'[[分类:'..string.gsub(version(args['觉醒更新时间'] or args['更新时间']),'v','V').. '添加觉醒形态的搭档]]' end
     category:wikitext('[[分类:', lang:ucfirst(version(args['更新时间'])), ' 添加的', '搭档]]')
    if args['更新时间NS'] then category = category..'[[分类:NS '..string.gsub(version(args['更新时间NS']),'v','V')..'添加的 搭档]]' end
   end
    if awaken then
--手动关闭
     category:wikitext('[[分类:', lang:ucfirst(version(args['觉醒更新时间'] or args['更新时间'])), '添加觉醒形态的', ' 搭档]]')
if args['nocat'] then category='' end
   end
    if args['更新时间NS'] then
return tostring(box)..category
     category:wikitext('[[分类:', 'NS ', lang:ucfirst(version(args['更新时间NS'])), ' 添加的', '搭档]]')
   end
 
   --手动关闭
   if args['nocat'] then category = '' end
 
   return tostring(box) .. tostring(category)
end
end


return p
return p
2,079

次編輯