词典:修订间差异
来自卡厄思梦境WIKI
无编辑摘要 |
无编辑摘要 |
||
| 第1行: | 第1行: | ||
local p = {} | local p = {} | ||
-- | -- 词典数据 | ||
p. | p.dictionary = { | ||
["蒸发"] = "卡牌在回合结束时自动消耗", | ["蒸发"] = { | ||
["终极"] = "卡牌使用后结束当前回合", | { | ||
["天上"] = " | ["icon"] = "", | ||
["回收"] = " | ["类型"] = "卡牌机制", | ||
["保留"] = "卡牌不会在回合结束时进入弃牌堆", | ["颜色"] = "橙", | ||
["唯一"] = "此卡牌无法复制", | ["描述"] = "卡牌在回合结束时自动消耗", | ||
["开战"] = "此卡牌在战斗开始时置于抽牌堆顶端", | }, | ||
["连击"] = " | }, | ||
["弱点攻击"] = " | ["终极"] = { | ||
["快速"] = "使用卡牌时不会影响敌人的行动计数器", | { | ||
["主导"] = " | ["icon"] = "", | ||
["储存"] = " | ["类型"] = "卡牌机制", | ||
["金属化"] = " | ["颜色"] = "橙", | ||
["消灭"] = " | ["描述"] = "卡牌使用后结束当前回合", | ||
["封锁"] = "卡牌发动时不会触发效果<br>触发此卡牌后移除封锁", | }, | ||
["粉碎"] = " | }, | ||
["天上"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "使用其他2费以上的卡,立即自动打出本卡", | |||
}, | |||
}, | |||
["回收"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "若此卡牌移动至弃牌堆,会回到手牌。发动效果时,移除回收", | |||
}, | |||
}, | |||
["保留"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "卡牌不会在回合结束时进入弃牌堆", | |||
}, | |||
}, | |||
["唯一"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "此卡牌无法复制", | |||
}, | |||
}, | |||
["开战"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "此卡牌在战斗开始时置于抽牌堆顶端", | |||
}, | |||
}, | |||
["连击"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "使用其他同伴的卡牌时,发动此卡牌", | |||
}, | |||
}, | |||
["弱点攻击"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "对韧性耗尽的敌人造成弱点伤害", | |||
}, | |||
}, | |||
["快速"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "使用卡牌时不会影响敌人的行动计数器", | |||
}, | |||
}, | |||
["主导"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "回合开始时,有50%的机率使本卡牌费用减少1<br>使用其他卡牌时,移除效果", | |||
}, | |||
}, | |||
["储存"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "保留费用,生效时层数减少1", | |||
}, | |||
}, | |||
["金属化"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "使用卡牌获得护盾时,对随机敌人造成80%的伤害", | |||
}, | |||
}, | |||
["消灭"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "使用后消耗卡牌,不会进入弃牌堆,持续到战斗结束", | |||
}, | |||
}, | |||
["封锁"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "卡牌发动时不会触发效果<br>触发此卡牌后移除封锁", | |||
}, | |||
}, | |||
["粉碎"] = { | |||
{ | |||
["icon"] = "", | |||
["类型"] = "卡牌机制", | |||
["颜色"] = "橙", | |||
["描述"] = "攻击持有护盾的目标时,伤害量+20%", | |||
}, | |||
}, | |||
["士气"] = { | |||
{ | |||
["icon"] = "士气升高.png", | |||
["类型"] = "buff", | |||
["颜色"] = "蓝", | |||
["描述"] = "伤害量+20%,回合结束时失去所有层数(可叠加)", | |||
}, | |||
{ | |||
["icon"] = "士气降低.png", | |||
["类型"] = "debuff", | |||
["颜色"] = "红", | |||
["描述"] = "伤害量-20%(可叠加)", | |||
}, | |||
} | |||
} | } | ||
| 第25行: | 第151行: | ||
local category = args[1] or "" | local category = args[1] or "" | ||
local term = args[2] or "" | local term = args[2] or "" | ||
-- 颜色映射 | -- 颜色映射 | ||
local colorMap = { | local colorMap = { | ||
[" | ["白"] = "#ffffff", | ||
[" | ["蓝"] = "#0099ff", | ||
[" | ["红"] = "#ff3333", | ||
["橙"] = "#f2ba02" | |||
[" | |||
} | } | ||
local | -- 查找词条 | ||
local entries = p.dictionary[term] | |||
if not entries then | |||
return '<span style="color: red;">未找到词条: ' .. term .. '</span>' | |||
end | |||
-- | -- 查找匹配的条目 | ||
local | local entry = nil | ||
if | for _, e in ipairs(entries) do | ||
if e["类型"] == category then | |||
entry = e | |||
break | |||
end | |||
end | end | ||
-- | if not entry then | ||
return '<span style="color: red;">未找到类型: ' .. category .. ' - ' .. term .. '</span>' | |||
end | |||
-- 获取颜色 | |||
local lineColor = colorMap[entry["颜色"]] or colorMap["白"] | |||
-- 构建工具提示内容 | |||
local tooltipContent = "" | |||
-- 添加图标(如果有) | |||
if entry["icon"] and entry["icon"] ~= "" then | |||
tooltipContent = tooltipContent .. '[[File:' .. entry["icon"] .. '|25px|link=]] ' | |||
end | |||
tooltipContent = tooltipContent .. term .. '<br>' .. entry["描述"] | |||
-- 生成HTML | |||
local html = mw.html.create('span') | local html = mw.html.create('span') | ||
:addClass('dictionary-term') | :addClass('dictionary-term') | ||
:css({ | :css({ | ||
['color'] = | ['color'] = lineColor, | ||
['text-decoration'] = 'underline', | ['text-decoration'] = 'underline', | ||
['cursor'] = 'help', | ['cursor'] = 'help', | ||
| 第58行: | 第206行: | ||
:addClass('dictionary-tooltip') | :addClass('dictionary-tooltip') | ||
:wikitext( | :wikitext( | ||
'<div style="width: 200px; height: 2px; background-color: | '<div style="width: 200px; height: 2px; background-color: ' .. lineColor .. ';"></div>' .. | ||
'<div style="width: 200px; background-color: #343434; color: white; padding: 5px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);">' .. | '<div style="width: 200px; background-color: #343434; color: white; padding: 5px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);">' .. | ||
tooltipContent .. '</div>' | |||
) | ) | ||
:done() | :done() | ||
2025年10月2日 (四) 16:08的版本
此模块的文档可以在模块:词典/doc创建
local p = {}
-- 词典数据
p.dictionary = {
["蒸发"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "卡牌在回合结束时自动消耗",
},
},
["终极"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "卡牌使用后结束当前回合",
},
},
["天上"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "使用其他2费以上的卡,立即自动打出本卡",
},
},
["回收"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "若此卡牌移动至弃牌堆,会回到手牌。发动效果时,移除回收",
},
},
["保留"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "卡牌不会在回合结束时进入弃牌堆",
},
},
["唯一"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "此卡牌无法复制",
},
},
["开战"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "此卡牌在战斗开始时置于抽牌堆顶端",
},
},
["连击"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "使用其他同伴的卡牌时,发动此卡牌",
},
},
["弱点攻击"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "对韧性耗尽的敌人造成弱点伤害",
},
},
["快速"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "使用卡牌时不会影响敌人的行动计数器",
},
},
["主导"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "回合开始时,有50%的机率使本卡牌费用减少1<br>使用其他卡牌时,移除效果",
},
},
["储存"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "保留费用,生效时层数减少1",
},
},
["金属化"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "使用卡牌获得护盾时,对随机敌人造成80%的伤害",
},
},
["消灭"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "使用后消耗卡牌,不会进入弃牌堆,持续到战斗结束",
},
},
["封锁"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "卡牌发动时不会触发效果<br>触发此卡牌后移除封锁",
},
},
["粉碎"] = {
{
["icon"] = "",
["类型"] = "卡牌机制",
["颜色"] = "橙",
["描述"] = "攻击持有护盾的目标时,伤害量+20%",
},
},
["士气"] = {
{
["icon"] = "士气升高.png",
["类型"] = "buff",
["颜色"] = "蓝",
["描述"] = "伤害量+20%,回合结束时失去所有层数(可叠加)",
},
{
["icon"] = "士气降低.png",
["类型"] = "debuff",
["颜色"] = "红",
["描述"] = "伤害量-20%(可叠加)",
},
}
}
function p.main(frame)
local args = frame:getParent().args
local category = args[1] or ""
local term = args[2] or ""
-- 颜色映射
local colorMap = {
["白"] = "#ffffff",
["蓝"] = "#0099ff",
["红"] = "#ff3333",
["橙"] = "#f2ba02"
}
-- 查找词条
local entries = p.dictionary[term]
if not entries then
return '<span style="color: red;">未找到词条: ' .. term .. '</span>'
end
-- 查找匹配的条目
local entry = nil
for _, e in ipairs(entries) do
if e["类型"] == category then
entry = e
break
end
end
if not entry then
return '<span style="color: red;">未找到类型: ' .. category .. ' - ' .. term .. '</span>'
end
-- 获取颜色
local lineColor = colorMap[entry["颜色"]] or colorMap["白"]
-- 构建工具提示内容
local tooltipContent = ""
-- 添加图标(如果有)
if entry["icon"] and entry["icon"] ~= "" then
tooltipContent = tooltipContent .. '[[File:' .. entry["icon"] .. '|25px|link=]] '
end
tooltipContent = tooltipContent .. term .. '<br>' .. entry["描述"]
-- 生成HTML
local html = mw.html.create('span')
:addClass('dictionary-term')
:css({
['color'] = lineColor,
['text-decoration'] = 'underline',
['cursor'] = 'help',
['position'] = 'relative',
['display'] = 'inline-block'
})
:wikitext(term)
:tag('span')
:addClass('dictionary-tooltip')
:wikitext(
'<div style="width: 200px; height: 2px; background-color: ' .. lineColor .. ';"></div>' ..
'<div style="width: 200px; background-color: #343434; color: white; padding: 5px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);">' ..
tooltipContent .. '</div>'
)
:done()
return tostring(html)
end
return p