地点有层级:怎样让一间房停电,只影响该影响的设备?
把房间、建筑、区域的供电条件分开记录,再按设备的实际依赖计算结果。用一张范围卡和逐步推演,处理局部停电、区域断供、独立电源与恢复顺序。

先分清:故障发生在哪,结果影响谁
一间房停电,只应改变这间房的局部供电条件;建筑和区域是否有电,要保留各自的记录。设备最终能否工作,再沿它实际依赖的供电路径判断。不要让所有场景共用一个“有电/没电”的开关,也不要把“房间线路正常”直接等同于“房间灯亮”。
下面的《东岸档案馆夜访》是虚构教学案例,不是真实用户案例、经过测试的结果或产品功能说明。所有供电关系都是为叙事推演设定的简化规则,不用于现实设备操作。
故事中,玩家要在阅览室查看一份目录。地点分为三层:东岸区域、档案馆、二〇三阅览室。同馆还有走廊;东岸还有车站。开场时,阅览室的局部供电中断,走廊灯和车站屏幕仍亮着,阅览室里的电池阅读灯也亮着。
这四个观察可以同时成立。它们要求作者回答两个不同问题:对象在哪里,以及对象靠什么运行。地点层级限定范围,依赖关系解释影响;两者不能互相代替。
用一张范围卡,保存条件而不是复制结果
可以直接复用下面的记录方式。这里的“正常”只表示本层条件没有故障,不保证上游可用。
| 对象 | 所属地点 | 本层条件 | 读取依赖 | 生效期限 |
|---|---|---|---|---|
| 东岸区域 | 城市 | 区域供电正常 | 本例不继续展开 | 区域事件改变前 |
| 档案馆 | 东岸区域 | 馆内供电正常 | 东岸供电 | 建筑事件改变前 |
| 二〇三阅览室 | 档案馆 | 局部供电中断 | 档案馆供电 | 房间恢复事件前 |
| 电池阅读灯 | 二〇三阅览室 | 电池可用、开关开启 | 自带电池 | 电池耗尽或关闭前 |
每次变化另记一条事件卡:“事件名|发生地点|改动字段|新值|原因|解除条件”。例如:“阅览室断供|二〇三|局部供电|中断|本章预设故障|房间恢复事件”。这条卡只改一个对象,不顺手改档案馆和东岸。
地点要用稳定编号区分,名称只负责展示。另一座建筑即使也有二〇三室,也不能读到同一条故障记录。
范围卡还应区分“正常”“中断”“未知”。尚未调查档案馆的情况时,不能因为房间黑了就填入“全馆中断”;角色知道多少,也不必等于作者记录了多少。
传播靠依赖,例外必须写出理由
本例约定:普通顶灯亮,需要区域供电、建筑供电、房间局部供电都正常,而且顶灯开关开启。任一条件不满足,顶灯就不亮。这是多个条件共同决定结果,不是“越小的地点越有优先权”。
因此,房间记录“局部正常”不能覆盖区域断供。它只说明房间自身没有新增故障。反过来,房间中断也不会向上改写区域,更不会横向写入隔壁房间。
电池阅读灯则读取自己的电池和开关,不读取上述供电链。它是有明确依赖依据的例外,而不是作者想留一盏灯便临时宣布“这里不受影响”。电池失效时,这项例外随之结束。
可复用的求值顺序是:先确定目标设备,再列依赖路径,逐项读取当前条件,最后生成设备表现。记录发生变化后,重新判断受影响对象即可;不必把“区域中断”抄成所有房间的局部故障。
传播的也不是整包地点状态。区域供电中断可以影响接入该供电链的设备,却不会自动改写房门是否锁住、目录是否被拿走或角色是否知情。若停电触发门禁变化,要另写门禁的依赖规则。
按四个时刻推演,检查恢复是否误伤局部状态
现在让玩家从阅览室走到走廊,再返回。每一步都沿用同一张范围卡,而不是进入场景时重新猜测状态。
第一刻,只有阅览室局部中断。阅览室顶灯灭,走廊灯亮,电池阅读灯亮,车站屏幕亮。玩家仍可选择借阅读灯查目录,或者去走廊寻找新的信息。两条行动的差别来自现有条件。
第二刻,剧情事件使东岸区域断供。只把区域供电改为中断。走廊灯与车站屏幕随之熄灭,阅览室顶灯仍灭,电池阅读灯继续亮。房间原有故障仍留在自己的记录里。
第三刻,东岸恢复供电。走廊灯和车站屏幕重新亮起,阅览室顶灯仍灭,因为它的局部故障尚未解除。这里最容易出现错误:若作者把所有设备一键设为开启,就会抹掉第一刻留下的剧情条件。
第四刻,房间恢复事件发生,局部供电改为正常。顶灯在开关仍开启的前提下亮起。电池阅读灯是否关闭,应由它自己的开关记录决定,不能被房间恢复顺手重置。
第三刻可写成:“门缝下重新透进走廊的光,头顶的灯却没有反应。桌上的阅读灯仍照着半页目录。”这段只呈现可见差异;角色可以推测局部故障仍在,但旁白没有擅自宣告全城状态。
用反例验收,再决定是否需要更复杂的模型
把下面四项作为作者纸面核对的预期,而不是已经取得的测试结果:房间断供不改变走廊;区域断供不关闭独立电池灯;区域恢复不消除房间故障;离开再进入房间不重置任何未解除条件。
还要倒换事件顺序:先区域断供,再恢复房间局部供电,顶灯此时仍应熄灭;区域随后恢复,它才具备点亮条件。若相同的当前条件得到不同结果,就检查是否错误保存了上一次的“灯灭”结论,或遗漏了开关状态。
对于只有两个场景的短篇,也可以逐台列出设备,不建完整层级。代价是新增设备时需要逐一检查范围。若多个房间共用一条独立线路,单靠地点树就不够,应增加“供电组”记录,让设备明确引用它;不要为了塞进三层结构而编造空间关系。
声音、积水、视线也未必沿地点包含关系传播,需要各自的连接条件。本文的三层方案只处理这个案例中的供电范围,不是所有地点状态的通用物理规则。
完成时,留下一张范围卡、一组设备依赖和四刻预期。任何一句“整栋楼都暗了”,都应能追溯到足以影响整栋楼的条件变化;若只能找到某间房的事件,就把叙述收回那间房。


