视线

视线由边链来定义,而不是由自由几何来定义——因此玩家也能建立起与求解器相同的模型。

哨兵“看到”的,并不是屏幕上它前方的一切。视线是定义在棋盘的图上的,是一条边链。本页说明这条链如何构成,又在哪里中断。

边链如何构成

监视的单位从自身所在的节点出发,伸向它所面朝方向上的相邻节点。从那里起,沿着朝同一方向延续的边继续前进,然后是下一条。关卡数据为每一对边定义了其中一条是否为另一条的延续;边链就遵循这种关系。

边链进入的每个节点都受监视。没有距离上限——它一直延伸,直到被什么东西截断。

边链在哪里中断

有三种情况会让它停下:

  • 遮挡物。 带有 blocker 标记的节点:摊位、墙、岩石。视线无法越过它。
  • 拐角。 在该方向上没有延续的节点。路径拐弯,目光不会拐弯。
  • 关闭的门。 在收集到对应钥匙之前,门边既挡住移动,也挡住视线。门一打开,边链就开始穿过——这正是开门有时既缩短路线、又同时让棋盘更危险的原因。

躲藏

站在带有 hide 标记的节点上,对视线检查是不可见的。即使有边链从该节点上延伸而过,也找不到玩家。接触规则依然适用,但敌人本来就绝不会踏上藏身节点——这一保证由引擎强制执行,所以即便关卡数据写得再糟,也无法打破它。

被制伏的单位看不见

敌人被制伏后,同样不参与视线检查:它的边链不会构建,所以再也看不到任何人,也无法拉响警报。处于被引开状态的单位同样只能看到自己所站的节点;参见铃石。

为何没有自由几何

因为脑中能构建的模型,必须与求解器构建的模型一致。基于角度的视线系统在屏幕上好看,却使人无法看一眼棋盘就确定地回答“我在这里安全吗”。

有了边链,答案是可数的:顺着节点走,看到遮挡物,就知道了。

威胁高亮

开启威胁高亮后,画出来的正是本页所述计算的结果。这不是近似;看到的边链,就是被检查的边链。

下一个问题:站在边链之内,是否始终意味着同一件事?不——参见捕获。

来源:GDD §2.2

返回百科