How does a monster notice your settlers, and what can you do about it? This page is read straight from the game's tables (DS_B.0.4.23) and the code dump; each number names the constant it comes from, and anything the data cannot confirm is flagged as such. Try the interactive 检测范围计算器 来填入一只具体怪物。
检测模型 实际发生的事
检测是 基于视野且基于网格的。每个单位 - 你的开拓者和每个怪物一样 - 都带有一个 视野范围 属性,用来定义它当前能看到的地块集合,墙壁会挡住视线。当怪物可见地块中包含你的一个单位时,它开始察觉,经过短暂的察觉积累后才会投入攻击。代码里没有单独的听觉或噪音感知。
怪物会经历三种战斗状态 (来自转储的
CombatState 枚举,每次单位移动时由 MoveApplier.RefreshUnitCombatState):
- 未察觉 - 闲置或巡逻;它还没看到你。
- 察觉中 - 你的一个单位进入了它的视野;察觉正在积累。
- 战斗中 - 察觉已达到阈值;它锁定并交战。
唤醒 并非瞬间完成。当玩家单位留在怪物视野内时,怪物会积累 察觉 在 每游戏内分钟 1 点
(GAMESYSTEM_Combat_Basic_AwarenessOnMin,仅敌人)并在达到
5 (GAMESYSTEM_Combat_Basic_AwarenessToCombat)- 约
5 个游戏内分钟 的不间断视野,1x 速度下实际时间仅约 4 秒。短暂穿过怪物视野,往往能在它投入之前离开;攻击它则当然会立刻进入战斗。
自定义 AI 建立在 Behavior Designer 树上,其距离/视野检查(CheckEnemyDistance, CheckCombatTargetInRange)读取同一套网格视野和仇恨数据 - 不是三维视野锥射线检测。打断视线时察觉是否衰减,数据里没有写明(推断会重置或下降,未经确认)。
视野范围 发现半径
视野范围是核心数值。游戏自己的描述:"在单位的视野范围内,可以查看周围区域和发现敌人。" 它身兼两职 - 为己方驱散战争迷雾,也是怪物用来发现你的半径。它以 格 计量,并按视线追踪,因此你和怪物之间的墙会挡住它(VisionDataHandler.IsPathVisible).
| 视野范围 | 单位 | 示例 |
|---|---|---|
| 4 | 2 | 无尽深渊格洛斯幼崽, 格洛斯幼崽 近视 |
| 5 | 7 | 火龙爪战士, 刺猬, 稻草人 |
| 8 | 97 | 无尽深渊酸液虫, 无尽深渊酸性斯洛格尔, 无尽深渊蜜蜂 标准 |
| 12 | 2 | 无尽深渊阿尔法酸性斯洛格尔, 阿尔法酸性斯洛格尔 |
| 16 | 1 | 眼球 最远视野 |
数值是下列表中为每个单位填写的
UnitTable。大多数单位能看到 8 格;眼球能看到很长的 16,而无尽深渊格洛斯幼崽近视,视野为 4。玩家方单位默认为 7
(StatusValueTable);成长系统的回退基础值是 5
(GAMESYSTEM_Unit_Growth_..._VisionRange).
仇恨与威胁 交战,以及谁会被打到
一旦被发现,两套独立常量支配这场战斗:
- 仇恨范围 = 8 格 (
GAMESYSTEM_Combat_Basic_AggroRange)- 怪物在此威胁半径内交战。因为它等于标准的 8 格视野,大多数怪物会在同一距离发现你并投入。 - 仇恨修正 = [1.3, 1]
(
GAMESYSTEM_Combat_Basic_AggroCorrection)- 按攻击类型施加在单位产生的仇恨/威胁上的倍率: 近战 x1.3, 远程 x1。近战攻击者比远程多拉约 30% 仇恨,因此前排会自然把怪物的注意力从你的施法者身上拉开。这影响的是 目标选择,而不是你是否先被发现。
转储确认了常量和近战/远程划分(开发者注释:[0] melee, [1] ranged),但方法体被剥掉了,因此倍率如何运算是推断的,不是逐行读出来的。代码里没有发现拴绳或返回刷新点计时器 - 怪物达到 未察觉 后就直接丢掉目标。
昼与夜 天黑后视野缩小
地下城按昼夜时钟运行。白天是 06:00 到 20:00
(GAMESYSTEM_Campaign_DayTimes);该时段之外就是夜晚。
夜间视野降低 3 格 (GAMESYSTEM_Campaign_DayNightVisionDiffrence)。标准的 8 格怪物实际只能看到
5 夜间的视野 - 但同样的惩罚也会裁掉你自己单位的视野,所以夜袭是双刃的。夜视效果施加者会增加 +3 视野范围,正好抵消携带者的夜间惩罚。
夜间惩罚是作用于怪物、玩家还是双方,元数据转储并不能完全确定 - 每个单位的
Status_VisionRange 类确实带有一个 IsPlayer 标志,这暗示两侧可以区别对待,但那只是推断,不是已确认的规则。
潜行 干净的脱身口
潜行 是对检测的唯一硬克制。游戏内文本:"保持未被发现且无法成为目标。如果你对敌人造成伤害,该效果会立即结束。"
It is a code flag (it adjusts no stat), so it is all-or-nothing: while active you cannot be seen or targeted, regardless of Vision Range or distance. The catch is spelled out in the description - it ends the instant you deal damage, so it is a repositioning and scouting tool, not a way to fight unseen. 数据中有定义,但目前没有任何可获得的物品、特质或技能授予它。
感知误区 名称与效果
很自然会以为 感知 属性会拉远单位能看多远 - 名称和描述("磨砺感官")都在暗示这一点。数据并不支持。
什么会提高或降低检测 摘要
以上内容收进一张表。"效果"是从怪物的角度看 - 它有多容易发现你。
| 因素 | 效果 | 数据所示 |
|---|---|---|
| 怪物的视野范围 | 不定 | 每个单位都有自己的视野半径 (UnitTable.VisionRange):从 4 (无尽深渊格洛斯幼崽) up to 16 (眼球),大多数为 8。半径越大 = 它从更远处发现你。 |
| 视线(墙) | 降低 | 视野按格逐一追踪,并被墙和障碍挡住 (VisionDataHandler.IsPathVisible)。在拐角处打断视线,即使贴脸也能藏身。 |
| 夜晚 | 双方 -3 | 从 20:00 到 06:00 视野下降 3 格 (DayNightVisionDiffrence)。这会缩短怪物的触及距离,但也会裁掉你自己侦察单位的视野。 |
| 夜视 (affecter) | 恢复 +3 | 增加 +3 视野范围 (夜视), exactly cancelling the night penalty. 来源:夜勤人。 |
| 潜行 (affecter) | 隐藏 | 潜行: "保持未被发现且无法成为目标。如果你对敌人造成伤害,该效果会立即结束。" A hard on/off flag. 数据中有定义,但目前没有任何可获得的物品、特质或技能授予它。 |
| 仇恨范围 | 8 格 | 怪物在此威胁半径内交战 (GAMESYSTEM_Combat_Basic_AggroRange = 8)。它等于标准的 8 格视野,因此对大多数怪物来说,发现和交战发生在同一距离。 |
| 攻击类型(近战 vs 远程) | 目标选择 | 仇恨/威胁按打法缩放:近战 x1.3,远程 x1 (AggroCorrection)。近战多拉 30% 仇恨,因此它决定怪物盯上你哪名单位 - 这是坦克杠杆,不是初次发现。 |
| 感知 (Fortify / Weaken / Elixir) | 不明 | 尽管名称如此,感知属性管的是物理攻击力与魔法攻击力、暴击几率和烹饪 - 其实装 StatusValueTable 视野范围系数是 0 且游戏内提示没有列出视野效果。因此 感知强化 / 感知削弱 (±30%) 和 +3 感知灵药 不 是本版本已确认的检测修正。 |
应对方式 实战要点
- 拐角胜过距离。 视线是唯一始终生效的硬限制。墙在任何距离都能挡住你;开阔地不行,哪怕很远。
- 去侦察极端单位。 眼球 (16 格视野) 会从房间另一头发现你,而你可以摸到无尽深渊格洛斯幼崽 (4 格视野) 旁边几格。大多数是 8。
- 夜袭是双刃的。 夜间 -3 视野让你可以靠得更近,但己方单位同样盲目 - 若有夜视就带上。
- 让近战拉住仇恨。 近战比远程多产生约 30% 威胁,因此一个前排肉体会把怪物从更脆的远程和施法者身上拉开。
- 潜行用来重置,不是用来刷。 一瓶潜行药水会干净地断开接触,但你打出的第一下就会让它结束。