№ · 完成设计 CH.06.22
主页 · ✅ 完成设计 · day-night-design

day-night-design

📅 2026-06-22 · 📦 6.0 KB · ✅ 完成设计 · 📝 MD 文档 🏷️ Buff🏷️ 设计🏷️ 联机🏷️ 时间🏷️ 终局

# 白天夜晚玩法与离线收益约束

目标:在现有时间体系上补出“白天经营 / 夜晚收束”的玩法层,避免离线挂机把收益无限放大,同时让夜晚成为有明确边界的经营时段。

问题定义

当前项目已有 dawn / day / dusk / night 四段时间,但它们主要用于事件权重和时间展示,还没有形成真正的营业状态切换。结果是:

  • 离线回流时,自动收益仍可持续结算。
  • 后院、后厨、闯荡等产出在缺少夜晚约束时会持续累积。
  • 玩家长时间离线后,数值可能被动膨胀,破坏经营节奏和资源上限。

设计目标

  1. 白天是主经营时段,保留现有收益循环。
  2. 夜晚是收束时段,限制客栈内收益与部分外勤行为。
  3. 离线收益必须与时间段绑定,不能全天无差别累计。
  4. 夜晚要有独立玩法,而不是单纯的静默停摆。
  5. 旧存档必须可继续读取,不能因为新增昼夜规则而丢进度。

核心规则

时段划分

  • dawn:清晨,准备与开门前缓冲。
  • day:白天,主营业。
  • dusk:傍晚,收客、备灶、转入闭店。
  • night:深夜,闭店、巡夜、静养、复盘。

营业状态

新增一个业务层状态:

  • open:可营业,允许主收益结算。
  • closing:傍晚收束,可做收摊与结算准备。
  • closed:夜间闭店,禁止主客流收益。

建议映射:

  • dawn -> open
  • day -> open
  • dusk -> closing
  • night -> closed

白天允许的事

  • 前堂接客与结账。
  • 后厨做饭与自动烹饪。
  • 后院劈柴、挑水、采集。
  • 闯荡、擂台、随机事件、联机协助。
  • 经营型离线收益的结算。

夜晚限制的事

  • 禁止客栈主收益继续滚动。
  • 禁止后院劈柴、挑水、后厨持续产出。
  • 禁止闯荡、出城、擂台等外勤行为。
  • 允许巡夜、查账、静养、修整、布防、复盘。
  • 允许少量夜间事件,但只产生“风险 / 消耗 / 线索”,不产生无上限收益。

收益约束原则

1. 白天收益有上限

所有经营收益按“单日上限”或“单时段上限”结算,避免无限叠加。

建议规则:

  • 前堂客流收益只在 open 时段增长。
  • 后厨产出只在 openclosing 的有限窗口增长。
  • 后院材料只在白天和傍晚增长。
  • 夜间挂机不再继续放大这些值,只允许结算一次“封存收益”。

2. 夜晚收益改为低频收益

夜晚不产出主经营收益,只允许:

  • 巡夜奖励。
  • 角色静养恢复。
  • 账房整理带来的小额收益。
  • 夜间特殊事件奖励。

这些收益必须有明确上限,不能替代白天挂机产出。

3. 离线收益按时间段拆分

离线期间先把现实时间拆成多个游戏时段,再按时段分别结算:

  • 白天段:按现有挂机规则结算主收益。
  • 傍晚段:按收束系数结算少量收益。
  • 夜晚段:只结算封存收益、恢复与风险,不再滚主收益。

夜晚玩法方向

夜晚不是空白期,而是“守、查、修、静”四类玩法:

  1. 守:巡夜、防盗、值守、关门。
  2. 查:查账、查隐患、盘点库存、追债。
  3. 修:修灶、修门、补货、整理行囊。
  4. 静:静养、休息、恢复、关系对话。

夜晚事件类型

  • 夜访客。
  • 偷盗、翻窗、踩点。
  • 员工疲劳与冲突。
  • 账目问题与风险提示。
  • 恢复类小事件。

夜晚奖励类型

  • 治安提升。
  • 疲劳下降。
  • 次日经营加成。
  • 失败风险下降。
  • 少量线索、道具、关系值。

技术设计

需要补的状态

建议新增以下业务字段:

  • businessPhase: open | closing | closed
  • isNightLocked: 是否夜间锁定主收益
  • dailyIncomeCap: 单日收益上限
  • dailyIncomeToday: 当日已结算收益
  • nightRiskBias: 夜间风险权重

这些字段应能从当前 gameTime.timeOfDay 推导,必要时再持久化。

计算流程

  1. 读取现实时间差。
  2. 将时间差映射到游戏时间推进。
  3. 拆分为若干时段。
  4. 对每个时段应用对应的营业规则。
  5. 白天结算主收益,夜晚结算封存收益与风险。
  6. 写回存档与离线弹窗摘要。

离线保护

  • 夜晚不允许继续累积前堂收入。
  • 夜晚不允许继续累积后院材料产出。
  • 夜晚不允许继续累积闯荡收益。
  • 若离线跨越多个夜晚,只允许一次性结算每晚的封存收益。
  • 所有收益都要受资源上限与日上限限制。

文档落地范围

后续执行会话建议按三个层级实现:

  1. 时间与业务状态层:补 businessPhase 和夜晚锁定判断。
  2. 收益与离线层:拆分白天/夜晚离线结算。
  3. UI 层:在总览、离线弹窗、事件弹窗里提示当前时段与锁定状态。

验收标准

  • 玩家能清楚看到白天、傍晚、夜晚的差异。
  • 夜晚不会再继续无限滚动主收益。
  • 离线收益会按时段拆分,并且有明确上限。
  • 夜晚仍然有可玩内容,不只是单纯禁用操作。
  • 旧存档可正常读取,现有白天收益不被破坏。

建议版本拆分

v1.18.0:昼夜业务层

  • 落地 businessPhase
  • 让白天/夜晚对收益和行为产生实际差异。
  • 夜间锁定主收益。

v1.19.0:离线收益拆分

  • 按时段拆分离线收益。
  • 增加封存收益、静养收益和夜间风险结算。

v1.20.0:夜间玩法扩展

  • 补巡夜、查账、修整、静养事件。
  • 让夜晚成为独立经营节奏,而不是停止营业。

给后续会话的执行顺序

  1. 先把 docs/time-system-v1.md 的扩展写清楚。
  2. 再补一份技术实现文档,定义状态、计算和存档字段。
  3. 然后让新的会话改代码,先做业务层,再做离线结算,再做 UI 提示。
  4. 时间条件、随机事件和终局考验的统一规则,请以 昼夜与终局一体化玩法文档 为准。