《同福客栈》新增剧情与随机事件任务结合玩法设计
1. 设计目标与概述
当前游戏中的“随机事件”主要偏向独立的数值检定和单次抉择(如花费铜钱换取治安/名声),而“新增剧情”则带有长线发展和明确的目标性。 本设计的核心目的是将长线剧情的推进与客栈日常的随机事件深度融合,让随机事件成为剧情的“引子”、“考验”或“余波”。同时,让日常随机事件升级为带有微型目标的“任务”,增强挂机经营过程中的叙事沉浸感和目标感。
2. 核心结合机制设计
2.1 剧情解锁专属随机事件(前置条件机制)
剧情进度将作为随机事件触发的隐性条件(复用并扩展 triggerCondition 或 requiredSeedTags)。
- 机制说明:当玩家完成某个特定的剧情节点后,会向日常事件池中注入特定的“剧情后置随机事件”或“任务事件”。
- 表现形式:比如完成了“雌雄双煞”主线剧情后,客栈的随机事件池中会新增“郭芙蓉的江湖仇家寻仇”、“小青暗中送礼”等事件。这些事件是对之前剧情的玩法延伸。
2.2 随机事件作为剧情的推进器(任务进度收集)
部分主线或支线剧情需要通过完成特定类型的“随机事件任务”来积攒进度,而不是单调地“到达某一天自动触发”。
- 机制说明:剧情转化为一个【剧情任务进度条】。
- 表现形式:
- 任务目标:例如“查清镇上的连环盗窃案”。
- 过程:玩家需要在经营过程中,处理多个与“治安”、“盗贼”相关的随机事件(如邢捕头巡街、深夜夜闯等)。每次正确处理,都会积累该剧情任务的进度。
- 触发:进度满后,自动触发该剧情的高潮或收尾节点(如“姬无命决战”)。
2.3 剧情道具与事件掉落联动(Event Drops)
- 机制说明:随机事件的选项结果不仅影响基础数值,还会掉落剧情关键线索或道具(
EventDropReward)。 - 表现形式:例如在“白展堂旧友夜访”事件中选择暗中周旋获得的【旧江湖信物】,可以作为后续某个剧情任务的“敲门砖”。如果没有该道具,玩家在后续剧情抉择中可能无法选择完美路线。
3. 具体玩法流程示例(以“旧账风波”剧情任务为例)
- 【剧情引入】:第10天自动触发剧情对话:“最近镇上来了一批陌生面孔,老白神色慌张”。系统解锁剧情任务《旧账风波》。
- 【事件注入与提权】:向日常事件池高权重注入“神秘客试探”、“深夜踩点”、“邢捕头盘问”等关联随机事件。
- 【事件任务处理】:
- 玩家遇到“神秘客试探”事件,选择“替老白隐瞒(扣除铜钱,获得【进度+1】)”。
- 玩家遇到“邢捕头盘问”事件,选择“用熟食打发(扣除熟食,获得关键道具【官府通行证】)”。
- 【剧情收网】:当《旧账风波》进度达到满值时,强制触发终局事件“旧敌上门”。若玩家之前在随机事件中积累了足够的进度且拥有【官府通行证】,则可解锁额外的完美结局选项(化干戈为玉帛,老白忠诚度大涨,获得传说菜谱等)。
3.1 本轮收口的 3 条短支线
| 支线 | 起始剧情 | 关联随机事件 1 | 关联随机事件 2 | 关联随机事件 3 | 结局剧情 | 差异化奖励 | | --- | --- | --- | --- | --- | --- | --- | | 旧账风波 | 第 10 天陌生人进镇,老白神色不对 | 神秘客试探 | 深夜踩点 | 邢捕头盘问 | 旧敌上门 | 官府通行证、老白忠诚提升、传说菜谱线索 | | 小米的丐帮往事 | 小米旧识来客栈求助 | 丐帮暗号 | 街口递信 | 夜里借宿风波 | 帮规与旧情 | 丐帮消息网、熟食折扣、支线成就 | | 黑市回声 | 有人拿赃物上门试探老白 | 黑市商人报价 | 假货贩子换货 | 销赃中间人压价 | 是举报还是合作 | 黑市地图、名声 / 治安分支奖励、特殊掉落入口 |
- 三条支线统一按“1 个起始剧情 + 3 个关联随机事件 + 1 个结局剧情”收口,避免把剧情任务扩成整条主线。
- 支线只影响当前激活任务的进度、掉落和角色状态,不要求今天补完整追踪 UI。
- 后续如果继续扩写,沿用同一闭环模板即可,不需要重定义剧情任务结构。
3.2 剧情任务期间的 Pity System(保底机制)
| 连续未触发关联事件次数 | 关联事件权重倍率 | 系统提示 | 结果 |
| --- | --- | --- | --- |
| 0 | x1.0 | 无 | 使用基础事件池权重 |
| 1 | x1.5 | 日志提示“这条线最近又有风声了” | 轻度提权 |
| 2 | x2.0 | 任务卡提示关注对应事件类型 | 中度提权 |
| 3 | x2.5 | 同时锁定 1 个无关高噪声事件位 | 明显提权 |
| 4 | x3.0 | 触发前置氛围提示,例如“近期夜里总有人盯着客栈” | 高强度提权 |
| 5 | 下一次合法事件位必出 | 不再额外加权,直接保底命中 | 强制触发 1 个关联事件 |
- 保底只作用于当前激活支线的 3 个关联随机事件,不改变全局事件池总量。
- 一旦触发关联事件、支线暂停、支线结局完成,连续未触发计数立即清零。
- 同一时段不连续触发两条不同支线的关联事件,避免玩家被多条剧情同时轰炸。
- 元年阶段每天最多保底注入 1 次剧情事件,先保证教学体验;第二年起再放开更高频的剧情压力。
4. 数据结构与代码扩展建议
为了支撑上述结合,需要在现有的 GameEvent 接口(src/components/RandomEventPopup.tsx 和相关数据表)中做如下扩展:
// 1. 扩展 GameEvent 接口,增加剧情状态条件
interface GameEvent {
// ... 现有字段 ...
// 剧情触发前置条件(需满足特定剧情阶段才可触发该事件)
requiredStoryState?: string[]; // 例如:['bai_story_phase_1_active']
// 剧情互斥条件(某剧情结束后,该事件不再触发)
excludeStoryState?: string[]; // 例如:['bai_story_completed']
}
// 2. 扩展事件选项效果 (Event Choice Effect)
interface EventChoiceEffect {
// ... 现有字段 ...
// 选项对剧情任务进度的影响
storyProgressDelta?: {
storyId: string;
progress: number; // 增加或扣除的任务进度
};
// 强制触发下一个剧情节点ID
triggerNextStoryNode?: string;
}
5. 落地步骤建议
- 第一阶段:跑通闭环。设计一个短平快的支线剧情(如“小米的丐帮往事”),配置 1个起始剧情 + 3个关联随机事件 + 1个结局剧情,跑通“剧情开启 -> 触发特定随机事件 -> 事件选项推进剧情进度 -> 进度满触发大结局”的闭环逻辑。
- 第二阶段:事件池权重管理。实现处于剧情任务期间时,相关事件的出现概率得到保底(Pity System),避免玩家脸黑迟迟刷不出推进任务的随机事件。
- 第三阶段:UI 提示面板。在主界面侧边栏或顶部增加一个【当前剧情任务】的轻量化追踪UI,提示玩家当前需要关注哪类事件(如:“注意应对近期夜间的江湖人士”),给玩家建立明确的挂机期待。
6. 今日验收口径
- 现在已经不是“只有 1 条短支线”的草稿状态,而是 3 条可直接派发的短支线模板。
- Pity System 已补齐成明确数值曲线和重置条件,后续实现只需照表接入事件池。
- 追踪 UI 仍然留在后续阶段,本轮不把未完成 UI 包装成已可用功能。