№ · 完成设计
CH.06.22
day-night-design
# 白天夜晚玩法与离线收益约束
目标:在现有时间体系上补出“白天经营 / 夜晚收束”的玩法层,避免离线挂机把收益无限放大,同时让夜晚成为有明确边界的经营时段。
问题定义
当前项目已有 dawn / day / dusk / night 四段时间,但它们主要用于事件权重和时间展示,还没有形成真正的营业状态切换。结果是:
- 离线回流时,自动收益仍可持续结算。
- 后院、后厨、闯荡等产出在缺少夜晚约束时会持续累积。
- 玩家长时间离线后,数值可能被动膨胀,破坏经营节奏和资源上限。
设计目标
- 白天是主经营时段,保留现有收益循环。
- 夜晚是收束时段,限制客栈内收益与部分外勤行为。
- 离线收益必须与时间段绑定,不能全天无差别累计。
- 夜晚要有独立玩法,而不是单纯的静默停摆。
- 旧存档必须可继续读取,不能因为新增昼夜规则而丢进度。
核心规则
时段划分
dawn:清晨,准备与开门前缓冲。day:白天,主营业。dusk:傍晚,收客、备灶、转入闭店。night:深夜,闭店、巡夜、静养、复盘。
营业状态
新增一个业务层状态:
open:可营业,允许主收益结算。closing:傍晚收束,可做收摊与结算准备。closed:夜间闭店,禁止主客流收益。
建议映射:
dawn->openday->opendusk->closingnight->closed
白天允许的事
- 前堂接客与结账。
- 后厨做饭与自动烹饪。
- 后院劈柴、挑水、采集。
- 闯荡、擂台、随机事件、联机协助。
- 经营型离线收益的结算。
夜晚限制的事
- 禁止客栈主收益继续滚动。
- 禁止后院劈柴、挑水、后厨持续产出。
- 禁止闯荡、出城、擂台等外勤行为。
- 允许巡夜、查账、静养、修整、布防、复盘。
- 允许少量夜间事件,但只产生“风险 / 消耗 / 线索”,不产生无上限收益。
收益约束原则
1. 白天收益有上限
所有经营收益按“单日上限”或“单时段上限”结算,避免无限叠加。
建议规则:
- 前堂客流收益只在
open时段增长。 - 后厨产出只在
open与closing的有限窗口增长。 - 后院材料只在白天和傍晚增长。
- 夜间挂机不再继续放大这些值,只允许结算一次“封存收益”。
2. 夜晚收益改为低频收益
夜晚不产出主经营收益,只允许:
- 巡夜奖励。
- 角色静养恢复。
- 账房整理带来的小额收益。
- 夜间特殊事件奖励。
这些收益必须有明确上限,不能替代白天挂机产出。
3. 离线收益按时间段拆分
离线期间先把现实时间拆成多个游戏时段,再按时段分别结算:
- 白天段:按现有挂机规则结算主收益。
- 傍晚段:按收束系数结算少量收益。
- 夜晚段:只结算封存收益、恢复与风险,不再滚主收益。
夜晚玩法方向
夜晚不是空白期,而是“守、查、修、静”四类玩法:
- 守:巡夜、防盗、值守、关门。
- 查:查账、查隐患、盘点库存、追债。
- 修:修灶、修门、补货、整理行囊。
- 静:静养、休息、恢复、关系对话。
夜晚事件类型
- 夜访客。
- 偷盗、翻窗、踩点。
- 员工疲劳与冲突。
- 账目问题与风险提示。
- 恢复类小事件。
夜晚奖励类型
- 治安提升。
- 疲劳下降。
- 次日经营加成。
- 失败风险下降。
- 少量线索、道具、关系值。
技术设计
需要补的状态
建议新增以下业务字段:
businessPhase:open | closing | closedisNightLocked: 是否夜间锁定主收益dailyIncomeCap: 单日收益上限dailyIncomeToday: 当日已结算收益nightRiskBias: 夜间风险权重
这些字段应能从当前 gameTime.timeOfDay 推导,必要时再持久化。
计算流程
- 读取现实时间差。
- 将时间差映射到游戏时间推进。
- 拆分为若干时段。
- 对每个时段应用对应的营业规则。
- 白天结算主收益,夜晚结算封存收益与风险。
- 写回存档与离线弹窗摘要。
离线保护
- 夜晚不允许继续累积前堂收入。
- 夜晚不允许继续累积后院材料产出。
- 夜晚不允许继续累积闯荡收益。
- 若离线跨越多个夜晚,只允许一次性结算每晚的封存收益。
- 所有收益都要受资源上限与日上限限制。
文档落地范围
后续执行会话建议按三个层级实现:
- 时间与业务状态层:补
businessPhase和夜晚锁定判断。 - 收益与离线层:拆分白天/夜晚离线结算。
- UI 层:在总览、离线弹窗、事件弹窗里提示当前时段与锁定状态。
验收标准
- 玩家能清楚看到白天、傍晚、夜晚的差异。
- 夜晚不会再继续无限滚动主收益。
- 离线收益会按时段拆分,并且有明确上限。
- 夜晚仍然有可玩内容,不只是单纯禁用操作。
- 旧存档可正常读取,现有白天收益不被破坏。
建议版本拆分
v1.18.0:昼夜业务层
- 落地
businessPhase。 - 让白天/夜晚对收益和行为产生实际差异。
- 夜间锁定主收益。
v1.19.0:离线收益拆分
- 按时段拆分离线收益。
- 增加封存收益、静养收益和夜间风险结算。
v1.20.0:夜间玩法扩展
- 补巡夜、查账、修整、静养事件。
- 让夜晚成为独立经营节奏,而不是停止营业。
给后续会话的执行顺序
- 先把
docs/time-system-v1.md的扩展写清楚。 - 再补一份技术实现文档,定义状态、计算和存档字段。
- 然后让新的会话改代码,先做业务层,再做离线结算,再做 UI 提示。
- 时间条件、随机事件和终局考验的统一规则,请以 昼夜与终局一体化玩法文档 为准。