模块:事件
来自卡厄思梦境WIKI
此模块的文档可以在模块:事件/doc创建
local p = {}
local eventData = require("Module:事件/data")
function p.main(frame)
local html = mw.html.create()
for eventName, eventInfo in pairs(eventData) do
html:node(p.createEventCard(eventName, eventInfo))
end
return tostring(html)
end
function p.createEventCard(eventName, eventInfo)
local card = mw.html.create('div')
card:addClass('event-card')
-- 容器
local container = mw.html.create('div')
container:addClass('event-container')
-- 图片
local imageDiv = mw.html.create('div')
imageDiv:addClass('event-image')
imageDiv:node(string.format('[[File:cc_%s.png|link=]]', eventInfo.id))
container:node(imageDiv)
-- 标题背景
local titleBg = mw.html.create('div')
titleBg:addClass('event-title-bg')
container:node(titleBg)
-- 标题
local titleDiv = mw.html.create('div')
titleDiv:addClass('event-title')
titleDiv:wikitext(eventName)
container:node(titleDiv)
-- 选项容器
local optionsDiv = mw.html.create('div')
optionsDiv:addClass('event-options')
for i, option in ipairs(eventInfo.option) do
local optionDiv = mw.html.create('div')
optionDiv:addClass('event-option')
optionDiv:attr('data-option-index', i)
optionDiv:attr('data-event-id', eventInfo.id)
optionDiv:wikitext(option)
optionsDiv:node(optionDiv)
end
container:node(optionsDiv)
-- 效果显示区域
local effectDiv = mw.html.create('div')
effectDiv:addClass('event-effect')
effectDiv:attr('id', 'effect-' .. eventInfo.id)
container:node(effectDiv)
-- 隐藏的效果数据
local dataDiv = mw.html.create('div')
dataDiv:addClass('event-data')
dataDiv:attr('style', 'display:none;')
for i, effect in ipairs(eventInfo.effect) do
local effectData = mw.html.create('div')
effectData:addClass('effect-data')
effectData:attr('data-index', i)
effectData:wikitext(effect)
dataDiv:node(effectData)
end
container:node(dataDiv)
card:node(container)
return card
end
return p