模块:勋章

来自SS唯基
跳到导航 跳到搜索
-{}-
    if args['cost' .. awardNum] then
        local cost = infoTable:tag('tr')
        cost
            :tag('th')
            :wikitext('获取条件')
            :done()
            :tag('td')
            :wikitext(args['cost' .. awardNum])
            :done()
    end
-{}-
{{勋章
|file1 = [[file:D级消费勋章-同盟DIVE.gif]]
|name1 = 同盟DIVE
|EXP1 = 30天
|author1 = kzdds123
|description1 = 发帖是不可能发帖的,这辈子不可能发帖的, 做活动又不会做 ,就是潜水这种东西 ,才能维持的了生活这样子
}}


D级消费勋章-同盟DIVE.gif
同盟DIVE
有效期30天
作者kzdds123
发帖是不可能发帖的,这辈子不可能发帖的, 做活动又不会做 ,就是潜水这种东西 ,才能维持的了生活这样子


-{}-
{{勋章
|file1 = [[File:限制会员勋章.gif]]
|name1 = 限制会员
|author1 = -
|cost1 = -
|EXP1  = 永久
|description1 = 限制在新手村的时候还请好好学习版规噢!
}}


限制会员勋章.gif
限制会员
获取条件-
有效期永久
作者-
限制在新手村的时候还请好好学习版规噢!



-{}-
{{勋章
|file1 = [[File:限制会员勋章.gif]]
|name1 = LV0:战五路线
|price1 = 5[[节操]]
|Purchase1 = 回帖战斗力+100(触发 100%)
|EXP1  = 永久
|Effect1 = -
|upgrade1 =战斗狂人
|requirements1 = 战斗力≥0
|ability1  = 无效果
|description1 = 主要用于新人因连续两月做降低战斗力任务,<br>

导致战斗力低于-250而无法购买大部分勋章的情况时的补救措施。
}}
限制会员勋章.gif
LV0:战五路线
价格5节操
购买条件回帖战斗力+100(触发 100%)
效果-
有效期永久
升级说明战斗狂人
升级要求战斗力≥0
升级能力无效果
主要用于新人因连续两月做降低战斗力任务,
导致战斗力低于-250而无法购买大部分勋章的情况时的补救措施。



--
--处理勋章的模块
--

local p = {}

--处理单个勋章
function renderAwardDiv(awardNum, args)
    --添加新的div
    local awardDiv = mw.html.create('div')

    if args['file' .. awardNum] then
        awardDiv
            --div样式
            --:attr('align', 'center')
            :css('width', '200px')
            :css('margin', '15px')
            :css('display', 'inline-block')
            :css('vertical-align', 'top')
            :css('position', 'relative')
            :css('text-align', 'center')
            :wikitext(args['file' .. awardNum])
            :wikitext('<br>')
            :wikitext(args['name' .. awardNum])
    end

    --创建表格
    local infoTable = mw.html.create('table')
    infoTable
        :css('margin', 'auto')
        :css('text-align', 'center')
        :css('max-width', '200px')
        :css('min-width', '200px')
        :attr('border', '1')
        :attr('cellspacing', '0')
    if args['limited' .. awardNum] then
        local EXP = infoTable:tag('tr')
        EXP
            :tag('th')
            :wikitext('限定贩售期间')
            :done()
            :tag('td')
            :wikitext(args['limited' .. awardNum])
            :done()
    end
    if args['cost' .. awardNum] then
        local cost = infoTable:tag('tr')
        cost
            :tag('th')
            :wikitext('获取条件')
            :done()
            :tag('td')
            :wikitext(args['cost' .. awardNum])
            :done()
    end
    
    if args['price' .. awardNum] then
        local price = infoTable:tag('tr')
        price
            :tag('th')
            :wikitext('价格')
            :done()
            :tag('td')
            :wikitext(args['price' .. awardNum])
            :done()
    end
    if args['Purchase' .. awardNum] then
        local Purchase = infoTable:tag('tr')
        Purchase
            :tag('th')
            :wikitext('购买条件')
            :done()
            :tag('td')
            :wikitext(args['Purchase' .. awardNum])
            :done()
    end
    if args['Effect' .. awardNum] then
        local Effect = infoTable:tag('tr')
        Effect
            :tag('th')
            :wikitext('效果')
            :done()
            :tag('td')
            :wikitext(args['Effect' .. awardNum])
            :done()
    end  
    if args['EXP' .. awardNum] then
        local EXP = infoTable:tag('tr')
        EXP
            :tag('th')
            :wikitext('有效期')
            :done()
            :tag('td')
            :wikitext(args['EXP' .. awardNum])
            :done()
    end    
    if args['upgrade' .. awardNum] then
        local upgrade = infoTable:tag('tr')
        upgrade
            :tag('th')
            :wikitext('升级说明')
            :done()
            :tag('td')
            :wikitext(args['upgrade' .. awardNum])
            :done()
    end
    if args['requirements' .. awardNum] then
        local requirements = infoTable:tag('tr')
        requirements
            :tag('th')
            :wikitext('升级要求')
            :done()
            :tag('td')
            :wikitext(args['requirements' .. awardNum])
            :done()
    end
    if args['ability' .. awardNum] then
        local ability = infoTable:tag('tr')
        ability
            :tag('th')
            :wikitext('升级能力')
            :done()
            :tag('td')
            :wikitext(args['ability' .. awardNum])
            :done()
    end
        if args['ranking' .. awardNum] then
        local ranking = infoTable:tag('tr')
        ranking
            :tag('th')
            :wikitext('名次')
            :done()
            :tag('td')
            :wikitext(args['ranking' .. awardNum])
            :done()
    end
    if args['author' .. awardNum] then
        local author = infoTable:tag('tr')
        author
            :tag('th')
            :wikitext('作者')
            :done()
            :tag('td')
            :wikitext(args['author' .. awardNum])
            :done()
    end
        if args['inspiration' .. awardNum] then
        local inspiration = infoTable:tag('tr')
        inspiration
            :tag('th')
            :wikitext('灵感')
            :done()
            :tag('td')
            :wikitext(args['inspiration' .. awardNum])
            :done()
        end
    if args['testimonials' .. awardNum] then
        local testimonials = infoTable:tag('tr')
        testimonials
            :tag('th')
            :wikitext('感言')
            :done()
            :tag('td')
            :wikitext(args['testimonials' .. awardNum])
            :done()
    end
    if args['description' .. awardNum] then
        local description = infoTable:tag('tr')
        description
            :tag('td')
            :attr('colspan', '2')
            :css('padding', '0 10px 0 10px')
            :wikitext(args['description' .. awardNum])
            :done()
    end

    
    return awardDiv:node(infoTable)

end

--处理表格
function renderMainDiv(awardNums, args)
    local mainDiv = mw.html.create('div')--创建mainDiv
        --在这里mainDiv添加样式
        :css('overflow', 'auto')
        :css('max-width', '800px')

    --循环处理每一个勋章
    --splitCount为分割的数量
    local splitCount = tonumber(args['splitCount'])
    if splitCount then
        for i, awardNum in ipairs(awardNums) do
            mainDiv:node(renderAwardDiv(awardNum, args))
            if i%splitCount==0 then mainDiv:tag('br') end
        end
    else
        for i, awardNum in ipairs(awardNums) do
            mainDiv:node(renderAwardDiv(awardNum, args))
        end
    end

    return mainDiv
end

function p.awards(frame)
    local args={}
    local awardNums={}
    --获取页面传来得参数,而不是模板的参数
    local parent_args = frame:getParent().args;

    --将获取的参数传给args
    for k, v in pairs(parent_args) do
        if v ~= 'nil' then
            args[k] = v
        end
    end

    for k, v in pairs(args) do
        --依靠file个数,计算勋章个数
        local awardNum = ('' .. k):match('^file(%d+)$')
        if awardNum then table.insert(awardNums, tonumber(awardNum)) end
    end
    table.sort(awardNums)

    --处理勋章
    local mainDiv = renderMainDiv(awardNums, args)

    return tostring(mainDiv)
end

return p