本wiki目前不支持自由编辑,如果有兴趣参与wiki内容编辑,请加入WIKI建设群904200987(游戏交流勿加会被踢)
使用wiki的数据、图片、音频资源,或者搬运页面内容时,请注明出处。具体参照CC BY-NC-SA 4.0协议
感谢Hyacinth对本wiki提供的数据支持
编辑帮助 • BWIKI反馈
模块:Character/TeaDrink
此模块的文档可以在模块:Character/TeaDrink/doc创建
local p = {}
local db = require('模块:同调者茶憩饮品档案数据库')
local db_drink_data = db.character_tea_menu_data
local db_condiment_data = db.character_condiment_menu_data
p['茶憩菜单'] = function(frame)
local name = frame.args['name']
if name == nil then
return 'Vein数据库连接失败'
end
--过滤数据
local output_data = nil
if db_drink_data[name] and db_condiment_data[name] then
output_data = db_drink_data[name]
output_data['condiment'] = db_condiment_data[name]['condiment']
end
--拼接表格
local html = nil
if output_data == nil then
html = mw.html.create()
html = html:node(frame:expandTemplate{title = '暂无数据'}):done()
else
html = p.get_menu_output_html(output_data, name)
end
return tostring(html)
end
function p.get_menu_output_html(output_data, char_name)
local cup_data = p.clean_cup_data(output_data['cup'], char_name)
local drink_data = p.clean_drink_data(output_data['drink'], char_name)
local condiment_data = output_data['condiment']
local html = mw.html.create()
local cup_menu = p.get_cup_menu_html(cup_data, char_name)
local drink_menu = p.get_drink_menu_html(drink_data, char_name)
local condiment_menu = p.get_condiment_menu_html(condiment_data, char_name)
html = html:node(cup_menu):node(drink_menu):node(condiment_menu)
return html
end
-----------------------------------------------------------------------------
-- 清洗数据
-----------------------------------------------------------------------------
function p.clean_cup_data(cupList, char_name)
local output_data = {}
for _i, v in ipairs(cupList) do
local icon = 'UI_Tea_Cup_' .. v['name'] .. '.png'
local temp = {
['name'] = v['name'] == '' and '未解锁' or v['name'],
['display_name'] = v['name'] == '' and '未解锁' or v['name'],
['icon'] = v['name'] == '' and 'UI_Tea_lock.png' or icon,
['iconClass'] = v['name'] == '' and 'tea-menu--cup-menu-item-lock-img' or '',
['unlockLevel'] = p.get_unlock_str(v['unlock_level'])
}
if char_name == '老板' or char_name == '豹富' then
temp['id'] = v['name']
temp['icon'] = 'UI_Tea_Plate_' .. v['name'] .. '.png'
if v['name'] == '鎏·金' then
temp['display_name'] = '鎏·金(盘)'
end
end
table.insert(output_data, temp)
end
return output_data
end
function p.clean_drink_data(drinkList, char_name)
local output_data = {}
for _i, v in ipairs(drinkList) do
local icon = 'UI_Tea_Drink_' .. v['name'] .. '.png'
local temp = {
['id'] = v['id'],
['name'] = v['name'] == '' and '未解锁' or v['name'],
['icon'] = v['name'] == '' and 'UI_Tea_Drink_Lock.png' or icon,
['iconClass'] = v['name'] == '' and 'tea-menu--drink-menu-item-lock-img' or '',
['unlockLevel'] = p.get_unlock_str(v['unlock_level']),
['favor'] = #v['favor'] == 0 and 'unknown' or v['favor']
}
if char_name == '老板' or char_name == '豹富' then
temp['id'] = v['name']
temp['icon'] = 'UI_Tea_Condiments_' .. v['name'] .. '.png'
end
table.insert(output_data, temp)
end
return output_data
end
-----------------------------------------------------------------------------
-- 拼接cup_menu
-----------------------------------------------------------------------------
function p.get_cup_menu_html(data, char_name)
local menu_wrapper = mw.html.create()
local menu = mw.html.create()
local menu_style = {
[1] = 'bottom:50%;right:50%;transform:translateX(-50%);',
[2] = 'bottom:50%;left:50%;transform:translateX(50%);',
[3] = 'top:55%;right:50%;transform:translateX(-50%);',
[4] = 'top:55%;left:50%;transform:translateX(50%);'
}
if #data == 4 then
for i, v in ipairs(data) do
menu = menu:tag('div'):addClass('tea-menu--cup-menu-item bili-tt'):cssText(menu_style[i]):attr('data-type', '$饮品杯子图鉴'):attr('data-name', v['name'])
:tag('div'):addClass(v['iconClass']):wikitext('[[文件:' .. v['icon'] .. '|class=img-fit|link=]]'):done()
:tag('div'):addClass('tea-menu--cup-menu-item-name'):wikitext(v['display_name']):done()
:tag('div'):addClass('tea-menu--cup-menu-item-resource'):wikitext(v['unlockLevel']):done()
:done()
end
end
menu_wrapper = menu_wrapper:tag('div'):addClass('tea-menu tea-menu--cup-menu')
:tag('div'):wikitext('[[文件:UI_Tea_menu_bg.png|class=img-fit|link=]]'):done()
:tag('div'):addClass('tea-menu--cup-menu-deco'):wikitext('[[文件:UI_Tea_Menu_Decorate_01.png|class=img-fit|link=]]'):done()
:node(menu)
:done()
return menu_wrapper
end
-----------------------------------------------------------------------------
-- 拼接drink_menu
-----------------------------------------------------------------------------
function p.get_drink_menu_html(data, char_name)
local menu_wrapper = mw.html.create()
local menu = mw.html.create()
local tooltip = '$饮品图鉴'
if char_name == '老板' or char_name == '豹富' then
tooltip = '$小料图鉴'
end
if #data > 0 then
for _i, v in ipairs(data) do
menu = menu:tag('div'):addClass('tea-menu--drink-menu-item bili-tt'):attr('data-type', tooltip):attr('data-name', v['id'])
:tag('div'):addClass(v['iconClass']):wikitext('[[文件:' .. v['icon'] .. '|class=img-fit|link=]]'):done()
:tag('div'):addClass('tea-menu--drink-menu-item-name'):wikitext(v['name']):done()
:tag('div'):addClass('tea-menu--drink-menu-item-resource'):wikitext(v['unlockLevel']):done()
:tag('div'):addClass('tea-menu--drink-menu-item-favor'):wikitext('[[文件:UI_Tea_Drink_Favor_' .. v['favor'] .. '.png|class=img-fit|link=]]'):done()
:done()
end
end
menu_wrapper = menu_wrapper:tag('div'):addClass('tea-menu tea-menu--drink-menu')
:tag('div'):wikitext('[[文件:UI_Tea_menu_bg.png|class=img-fit|link=]]'):done()
:tag('div'):addClass('tea-menu--drink-menu-deco'):wikitext('[[文件:UI_Tea_Menu_Decorate_02.png|class=img-fit|link=]]'):done()
:tag('div'):addClass('seed-scroll')
:node(menu)
:done()
:done()
return menu_wrapper
end
-----------------------------------------------------------------------------
-- 拼接condiment_menu
-----------------------------------------------------------------------------
function p.get_condiment_menu_html(data, char_name)
if data == nil or char_name == '老板' or char_name == '豹富' then
return ''
end
local menu_wrapper = mw.html.create()
local menu = mw.html.create()
if #data > 0 then
for _i, v in ipairs(data) do
menu = menu:tag('div'):addClass('tea-menu--condiment-menu-type')
:tag('div'):wikitext('[[文件:UI_Tea_Menu_Condiments_title.png|class=tea-menu--condiment-menu-type-bg|link=]]'):done()
:tag('div'):wikitext(v['type']):done()
:done()
:tag('div'):addClass('tea-menu--condiment-menu-box')
for _j, w in ipairs(v['list']) do
local favor = w['favor'] == '' and '3' or w['favor']
menu = menu:tag('div'):addClass('tea-menu--condiment-menu-item')
:tag('div'):addClass(v['iconClass']):wikitext('[[文件:UI_Tea_Condiments_' .. w['name'] .. '.png|class=img-fit|link=]]'):done()
:tag('div'):addClass('tea-menu--condiment-menu-item-name'):wikitext(w['name']):done()
:tag('div'):addClass('tea-menu--condiment-menu-item-favor'):wikitext('[[文件:UI_Tea_Drink_Favor_' .. favor .. '.png|class=img-fit|link=]]'):done()
:done()
end
menu = menu:done()
end
end
menu_wrapper = menu_wrapper:tag('div'):addClass('tea-menu tea-menu--condiment-menu')
:tag('div'):wikitext('[[文件:UI_Tea_menu_bg.png|class=img-fit|link=]]'):done()
:tag('div'):addClass('seed-scroll')
:node(menu)
:done()
:done()
return menu_wrapper
end
--处理解锁条件字段
function p.get_unlock_str(level)
local str = '默认解锁'
if level == nil or level == '' then
str = '未知'
elseif level ~= 0 then
str = '默契值' .. level .. '级'
end
return str
end
return p

沪公网安备 31011002002714 号