全站通知:
模块:Snippets
刷
历
编
跳到导航
跳到搜索
local p = {}
-- 常用文本片段
local categories = {
-- 物品来源
['来源'] = {
['酒吧'] = '2.44% 的概率作为每日特色菜出现在[[星之果实酒吧#不固定商品|星之果实酒吧]]的菜单中,售价为{{Price|{param1}}}。',
['酒吧垃圾桶'] = '当天翻动酒吧外的[[垃圾桶]]时也有概率获得 1 份{{PAGENAME}}。',
['科罗布斯概率出售'] = '{param2} 的概率在每周{param1}出现在[[科罗布斯#滚动出售|科罗布斯商店]]中,售价为{param3}。'
},
-- 物品用途
['不用于'] = {
['收集包'] = '{{PAGENAME}}不用于任何[[收集包]]。',
['食谱'] = '{{PAGENAME}}不用于任何[[烹饪#食谱|食谱]]。',
['配方'] = '{{PAGENAME}}不用于任何[[打造#可打造物品|配方]]。',
['任务'] = '{{PAGENAME}}不用于任何[[任务]]。',
['裁制'] = '{{PAGENAME}}不可用于[[裁缝|裁制]]。',
['裁缝'] = '{{PAGENAME}}不可用于[[裁缝|裁制]]。'
},
-- 人际关系
['人际关系'] = {
['花舞节'] = '如果玩家在[[花舞节]]中没有邀请{villager}或[[{param1}]]跳舞,{villager}和{param1}会成为舞伴。'
},
-- 任务
['任务'] = {
['布告栏'] = '{villager}可能会随机地在[[皮埃尔的杂货店]]门外的布告栏上发布[[任务#求助任务|求助任务]]。奖励为数目等同于需求的物品的基础售价的 3 倍的金币,并提高{villager}的[[好感度]]150 点。'
},
-- 好感度
['好感度'] = {
['礼物'] = '{villager}对玩家的[[友谊|好感度]]大于 0 时,{villager}就有可能会向玩家邮寄礼物。好感度越高,玩家收到礼物的可能性越大。',
['食谱'] = '与{villager}的好感度到达 {param1} 心后,{villager}会通过信件和玩家分享{{Name|{param2}|class=inline}}的食谱。',
['配方'] = '与{villager}的好感度到达 {param1} 心后,{villager}会通过信件和玩家分享{{Name|{param2}|class=inline}}的配方。'
},
-- 人物摘要
['摘要'] = {
['可结婚'] = '{villager}是 12 位可[[婚姻|结婚]]的人物之一。'
},
-- 人物日程
['日程'] = {
['表格'] = '下方展示的是{villager}的日程。上方的日程的优先级高于下方的日程,例如雨天的日程一般位于普通日程的上方,如果雨天上方没有其他日程或者日程的条件没有满足,则会执行雨天的日程。',
['度假村'] = '如果[[姜岛]]的[[姜岛#海滩度假村|度假村]]已经重建、度假村处于开放状态并且姜岛没有下雨,{villager}可能会去度假。18:00 后,{villager}便会离开度假村,回家准备睡觉。{villager}不会在{schedule_exception}节日期间度假。'
},
-- 特殊元素
['元素'] = {
['农场'] = '<span class="player-name">农场名</span>',
['后缀'] = '<span class="trigger-chance">{param1}</span>',
['锚点'] = '<span id="{param1}" data-id="{param1}" class="tab-archor"></span>',
['小标题'] = '<span class="talk-title">{param1}</span>',
['年份'] = '<span class="player-name">年份</span>',
['玩家'] = '<span class="player-name">玩家名</span>'
},
-- 游戏设定
['设定'] = {
['早期设定'] = '{villager}的肖像图以及人物设定随着游戏开发的推进进行了多次调整和迭代。下方的图片展示了 ConcernedApe 在游戏正式发布之前对人物进行过的调整和细化。'
},
-- 遗失物品商店
['遗失'] = {
['回购'] = '若不慎遗失或损毁,可以在[[秘密森林]]的[[秘密森林#失物回购|遗失物品商店]]花费{{Price|10000}} 重新购买。'
},
-- 物品用法
['用法'] = {
['椅子'] = '有关{{PAGENAME}}的更多用法,请见[[椅子戏法]]。'
},
-- 钓鱼
['钓鱼'] = {
['魔法鱼饵'] = '可以使用[[魔法鱼饵]]不受{param1}的限制钓到{{PAGENAME}}。'
},
-- 宠物
['宠物'] = {
['礼物'] = '[[宠物]]{param1}达到最大[[宠物#好感度|好感度]]后,每天第一次被抚摸也有可能掉落{{PAGENAME}}。'
},
-- 无子类别(无 subtype 的示例)
['可结婚'] = '{villager}是 12 位可[[婚姻|结婚]]的人物之一。',
['花舞节舞伴'] = '如果玩家在[[花舞节]]中没有邀请{villager}或[[{param1}]]跳舞,{villager}和{param1}会成为舞伴。'
}
-- 处理「不用于」的大小写转换和别名
local function processNotUsedFor(subtype)
local lowerSubtype = string.lower(subtype or '')
-- 处理别名映射
local aliasMap = {
['b'] = '收集包',
['r'] = '食谱',
['c'] = '配方',
['q'] = '任务',
['t'] = '裁制',
['裁缝'] = '裁制'
}
return aliasMap[lowerSubtype] or subtype
end
-- 处理「日程」中的特殊逻辑
local function processScheduleException(actor)
local exceptionMap = {
['谢恩'] = '<!-- 谢恩不体检 -->',
['哈维'] = '工作日或',
['潘妮'] = '工作日、体检日或',
['玛鲁'] = '工作日、体检日或',
['艾米丽'] = '秋季 15 日(桑迪的生日)、体检日或'
}
return exceptionMap[actor] or '体检日或'
end
-- 获取参数值
local function getParam(args, index)
local paramName = 'param' .. index
return args[paramName] or args[index] or ''
end
function p.main(frame)
local args = frame:getParent().args
local category = args[1] or ''
local actor = args.actor or args.villager or
frame:preprocess('{{PAGENAME}}')
if not categories[category] then return '' end
local text
local paramStart
if type(categories[category]) == 'string' then
text = categories[category]
paramStart = 2
else
local subtype = args[2] or ''
if category == '不用于' then
subtype = processNotUsedFor(subtype)
end
text = categories[category][subtype]
if not text then return '' end
paramStart = 3
end
local replacements = {
['{villager}'] = actor,
['{param1}'] = getParam(args, paramStart),
['{param2}'] = getParam(args, paramStart + 1),
['{param3}'] = getParam(args, paramStart + 2),
['{param4}'] = getParam(args, paramStart + 3),
['{param5}'] = getParam(args, paramStart + 4),
['{param6}'] = getParam(args, paramStart + 5)
}
if category == '日程' and args[2] == '度假村' then
replacements['{schedule_exception}'] = processScheduleException(actor)
end
for placeholder, value in pairs(replacements) do
text = text:gsub(placeholder, value)
end
return frame:preprocess(text)
end
return p

沪公网安备 31011002002714 号