模块:测试调用数据
可在模块:测试调用数据/doc创建此模块的帮助文档
local p = {}
-- 加载数据
local db_cn = mw.loadData('模块:角色技能数据中文')
local dataList_cn = db_cn.char_skill_data
local db_jp = mw.loadData('模块:角色技能数据日文')
local dataList_jp = db_jp.char_skill_data
local function skillBox(skill)
local html = mw.html.create()
-- 创建技能框的容器 div
local skillBoxDiv = html:tag('div')
skillBoxDiv:addClass('description-container')
skillBoxDiv:css({
margin = '15px 0 15px 0',
padding = '20px 10px',
['background-color'] = '#fbf9f1'
})
-- 第一个部分:特性图标和技能名称
skillBoxDiv:tag('div')
:addClass('description-display width-5 hidden-xs')
:css({
['vertical-align'] = 'top',
padding = '10px 5px 0 0'
})
:tag('center')
:wikitext('{{#arraymap:' .. (skill.skill_tag or "") .. '|,|@|{{特性图标|@|size=32px}}|}}')
:done()
:done()
:tag('div')
:addClass('flex-row-btw')
:css({
padding = '5px',
['font-size'] = 'bold'
})
:tag('span')
:attr('style', 'font-size: 1.3rem')
:text(skill.skill_name or "")
:wikitext('{{#arraymap:' .. (skill.skill_tag2 or "") .. '|,|@|{{特性图标|@}}|}}')
:done()
-- 如果有消耗SP,则显示消耗精力
if skill.skill_sp then
skillBoxDiv:tag('div')
:addClass('flex-center text-cen sk-sp')
:css({
border = '1px solid #d0bca7',
['background-color'] = '#d0bca7',
['border-radius'] = '0.5em',
padding = '0 15px'
})
:wikitext('消耗精力')
:tag('span')
:css({['font-size'] = '1.2rem'})
:text(skill.skill_sp)
:done()
:done()
end
-- 第二部分:技能描述和其他属性表格
skillBoxDiv:tag('div')
:addClass('text-left')
:tag('table')
:addClass('w-100')
:tag('tr')
:tag('td')
:css({padding = '5px 0px 15px 5px', colspan = '2'})
:text(skill.skill_content or "")
:done()
-- 辅助函数:用于创建属性表格行
local function tabletr(label, value)
if value then
skillBoxDiv:tag('tr')
:tag('td')
:css({padding = '5px 0px 15px 5px', colspan = '2'})
:wikitext(label .. ': ' .. value)
:done()
end
end
-- 添加其余属性
tabletr('【BP加成效果】', skill.skill_boost)
tabletr('【强化效果】', skill.skill_up)
tabletr('【强化学习条件】', skill.skill_up_content)
tabletr('【强化学习条件】', skill.skill_up_content2)
-- 返回生成的技能框内容
return tostring(skillBoxDiv)
end
p["测试调用"] = function(frame)
local query_num = frame.args['角色序号']
local query_type = frame.args['查询类型']
local query_lang = frame.args['查询语言'] or ""
local html = mw.html.create()
-- 提取数据
local dataList = (query_lang == "cn" or query_lang == "国服") and dataList_cn or dataList_jp
for _, ownerList in ipairs(dataList) do
if query_num == ownerList.owner_order then
-- 上面没问题
for _, skill in ipairs(ownerList.owner_skill) do
if skill.skill_type == query_type and skill.skill_parent == nil then
html:node(skillBox(skill))
end
end
end
end
return tostring(html)
end
return p