WIKI公告栏
欢迎各位引航者访问卡拉彼丘WIKI,由于游客访问页面会有一定的页面旧版缓存,建议你登陆B站账号进行浏览,如果您觉得本WIKI有帮助到你,欢迎推荐给身边的引航者。
全站通知:

模块:弦能增幅网络

来自卡拉彼丘WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:弦能增幅网络/doc创建

local p = {}

local skilldata = mw.text.jsonDecode(mw.title.new('模块:弦能增幅网络/Skill.json'):getContent() or '{}')

function p.group_push(frame)
    local icon = frame.args['icon']
    local icontype = frame.args['type']
    local name = frame.args['name']
    local text = frame.args['text1']
    local cost = frame.args['cost1']
    local text2 = frame.args['text2']
    local cost2 = frame.args['cost2']
    local text3 = frame.args['text3']
    local cost3 = frame.args['cost3']
    local text4 = frame.args['text4']
    local cost4 = frame.args['cost4']

    local groupicons = {
        ["1"] = "[[文件:图标-超弦进化系统 " .. icon .. "改.png|link=]]",
        ["2"] = "[[文件:" .. icon .. "|link=]]",
        ["3"] = "[[文件:图标-超弦进化系统 8改.png|link=]]",
        ["4"] = "[[文件:图标-超弦进化系统_10改.png|link=]]",
        ["5"] = "[[文件:图标-超弦进化系统_11改.png|link=]]",
    }
    local icontype = groupicons[icontype]
    assert(icontype, "类型错误")

    local args = frame.args
    local row = p.row(args['text1'], args['cost1'])
    local row2 = ""
    local row3 = ""
    local row4 = ""
    if text2 and text2 ~= "" then
        row2 = p.row(args['text2'], args['cost2'])
    end
    if text3 and text3 ~= "" then
        row3 = p.row(args['text3'], args['cost3'])
    end
    if text4 and text4 ~= "" then
        row4 = p.row(args['text4'], args['cost4'])
    end

    local value = frame.args['change'] == '' and (row .. row2 .. row3 .. row4) or frame.args['change']

    local html = mw.html.create()
    local group_push_html = html
        :tag('div'):addClass('upgrade-group')
        :tag('div'):addClass('upgrade-top')
        :tag('span'):addClass('upgrade-icon upgrade-icon' .. frame.args['type'])
        :tag('span'):addClass('upgrade-icon-inner'):wikitext(icontype):done()
        :done()
        :tag('span'):addClass('upgrade-name'):wikitext(name):done()
        :tag('span'):addClass('upgrade-triangle'):done()
        :done()
        :tag('div'):addClass('upgrade-options'):wikitext(value):done()
        :done()
    return tostring(group_push_html)
end

function p.group(frame)
    local icon = frame.args['icon']
    local icontype = frame.args['type']
    local name = frame.args['name']
    local text = frame.args['text1']
    local cost = frame.args['cost1']
    local text2 = frame.args['text2']
    local cost2 = frame.args['cost2']

    local groupicons = {
        ["1"] = "[[文件:图标-超弦进化系统 " .. icon .. "改.png|link=]]",
        ["2"] = "[[文件:" .. icon .. "|link=]]",
        ["3"] = "[[文件:图标-超弦进化系统 8改.png|link=]]",
        ["4"] = "[[文件:图标-超弦进化系统_10改.png|link=]]",
    }
    local icontype = groupicons[icontype]
    assert(icontype, "类型错误")

    local args = frame.args
    local row = p.row(args['text1'], args['cost1'])
    local row2 = ""
    if text2 and text2 ~= "" then
        row2 = p.row(args['text2'], args['cost2'])
    end

    local value = frame.args['change'] == '' and (row .. row2) or frame.args['change']

    local html = mw.html.create()
    local group_html = html
        :tag('div'):addClass('upgrade-group')
        :tag('div'):addClass('upgrade-top')
        :tag('span'):addClass('upgrade-icon upgrade-icon' .. frame.args['type'])
        :tag('span'):addClass('upgrade-icon-inner'):wikitext(icontype):done()
        :done()
        :tag('span'):addClass('upgrade-name'):wikitext(name):done()
        :tag('span'):addClass('upgrade-triangle'):done()
        :done()
        :tag('div'):addClass('upgrade-options'):wikitext(value):done()
        :done()
    return tostring(group_html)
end

function p.RoleProperties(frame)
    local data = mw.loadData("Module:弦能增幅网络/Data")
    local rolename = frame.args[1]

    local role = data[rolename]
    assert(rolename, "角色名称错误")

    local tdstyle = 'width: 15%;font-weight: bold'

    local html = mw.html.create()
    local RoleProperties_html = html
        :tag('table'):addClass('klbqtable'):cssText('width:100%')
        :tag('tr')
        :tag('th'):cssText(tdstyle):wikitext('护甲值'):done()
        :tag('td'):wikitext(role["护甲值"]):done()
        :tag('th'):cssText(tdstyle):wikitext('倒地留存时间'):done()
        :tag('td'):wikitext(role["倒地留存时间"]):done()
        :tag('th'):cssText(tdstyle):wikitext('移动速度'):done()
        :tag('td'):wikitext(role["移动速度"]):done()
        :tag('th'):cssText(tdstyle):wikitext('弦化移速'):done()
        :tag('td'):wikitext(role["弦化移速"]):done()
        :done()
        :tag('tr')
        :tag('th'):cssText(tdstyle):wikitext('护甲回复值'):done()
        :tag('td'):wikitext(role["护甲回复值"]):done()
        :tag('th'):cssText(tdstyle):wikitext('倒地被救时间'):done()
        :tag('td'):wikitext(role["倒地被救时间"]):done()
        :tag('th'):cssText(tdstyle):wikitext('弦化减伤比例'):done()
        :tag('td'):wikitext(role["弦化减伤"]):done()
        :done()
        :done()
    return tostring(RoleProperties_html)
end

function p.row(text, cost)
    local html = mw.html.create()
    local row_html = html
        :tag('div'):addClass('upgrade-row')
        :tag('div'):addClass('left-shade'):done()
        :tag('div'):addClass('upgrade-text'):wikitext(text):done()
        :tag('div'):addClass('upgrade-cost'):wikitext(cost .. '[[文件:图标-能量点.png|20px|link=]]'):done()
        :done()
    return tostring(row_html)
end

function p.awakening(frame)
    local number = frame.args['number']
    local name = frame.args['name']
    local icons = mw.text.split(frame.args['icons'], ',')
    local text = frame.args['text']

    local icons_html = ""
    for _, icon in ipairs(icons) do
        icons_html = icons_html .. p.awakeningicons(icon) .. " "
    end

    local html = mw.html.create()
    local awakening_html = html
        :tag('div'):addClass('awakening-container')
        :tag('div'):addClass('awakening-icons'):wikitext(icons_html):done()
        :tag('div'):addClass('awakening-name'):wikitext("'''觉醒" .. number .. ':' .. name .. "'''"):done()
        :tag('div'):addClass('awakening-text'):wikitext(text):done()
        :done()
    return tostring(awakening_html)
end

function p.awakening_Escort(frame)
    local rolename = frame.args[1]
    local RoleSkillType = frame.args[2]

    local roleskill = skilldata[rolename]
    assert(roleskill, "角色名称错误: " .. (rolename or "未知"))

    local RoleSkillTypeData = roleskill[RoleSkillType]
    assert(RoleSkillTypeData, "技能类型错误: " .. (RoleSkillType or "未知"))

    local awakening_skillinfo1 = RoleSkillTypeData[1]
    assert(awakening_skillinfo1, RoleSkillType .. " 中没有第一个技能")
    local awakening_skillinfo2 = RoleSkillTypeData[2]
    assert(awakening_skillinfo2, RoleSkillType .. " 中没有第二个技能")
    local awakening_skillinfo3 = RoleSkillTypeData[3]
    assert(awakening_skillinfo3, RoleSkillType .. " 中没有第三个技能")

    local html_start = '<div class="col-sm-4" style="flex: 1 300px;padding: 10px">'
    local awakening_Escort_html = html_start .. "觉醒1-'''" .. awakening_skillinfo1['Name'] .. ":'''" .. awakening_skillinfo1['Intro'] .. '</div>\n'
        .. html_start .. "觉醒2-'''" .. awakening_skillinfo2['Name'] .. ":'''" .. awakening_skillinfo2['Intro'] .. '</div>\n'
        .. html_start .. "觉醒3-'''" .. awakening_skillinfo3['Name'] .. ":'''" .. awakening_skillinfo3['Intro'] .. '</div>\n'
    
    return awakening_Escort_html
end

function p.awakeningicons(icons)
    local awakeningicons = {
        ["方"] = "[[文件:图标-超弦进化-方形.png]]",
        ["圆"] = "[[文件:图标-超弦进化-圆形.png]]",
        ["角"] = "[[文件:图标-超弦进化-三角.png]]",
    }
    local icons = awakeningicons[icons]
    assert(icons, "形状名称错误")
    return icons
end

return p