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.29) 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 enum, вызывается при каждом движении юнита через MoveApplier.RefreshUnitCombatState):
- Неосведомлён - бездействует или патрулирует; он вас не видел.
- Осведомляется - один из ваших юнитов вошёл в его поле зрения.
- В бою - он наводится и вступает в бой.
Юнит, который замечает врага, переходит в Осведомляется и несёт Удивлён; когда это проходит, он переходит в В бою. Если враг выходит из поля зрения, пока юнит ещё застигнут врасплох, он возвращается в Неосведомлён без боя. Получение удара сразу переводит юнит в бой.
В таблицах также задано накопление Осведомлённости (1 в минуту игрового времени, 5 для входа в бой), но код игры в этой сборке эти значения никогда не читает.
Свой ИИ построен на деревьях Behavior Designer, чьи проверки дистанции/обзора (CheckEnemyDistance, CheckCombatTargetInRange) читают те же данные сеточного обзора, а не 3D-рейкасты конуса обзора.
Дальность обзора радиус обнаружения
Дальность обзора это основное число. Описание в игре: "Дальность, на которой юнит открывает область вокруг себя и может замечать врагов." Она делает две вещи - открывает туман войны для вашей стороны и это радиус, в котором монстр замечает вас. Измеряется в клетки и строится по линии обзора, поэтому стена между вами и монстром её блокирует (VisionDataHandler.GetVisiblePositions).
| Дальность обзора | Выбор юнитов | Примеры |
|---|---|---|
| 4 | 2 | Детёныш Глота Бездны, Детёныш Глота близорукий |
| 5 | 7 | Огненный воин Драконьего Когтя, Ёж, Хеосуаби |
| 8 | 97 | Кислотное насекомое Бездны, Кислотный Слогель Бездны, Пчела Бездны стандарт |
| 12 | 2 | Кислотный Слогель-альфа Бездны, Кислотный Слогель-альфа |
| 16 | 1 | Глаз самый дальний обзор |
Значения это заданные для каждого юнита числа в
UnitTable. Большинство юнитов видят 8 клеток; Глаз видит целых 16, а Детёныш Глота Бездны близорукий на 4. Юниты стороны игрока по умолчанию 7
(StatusValueTable). Базовое значение таблицы роста 5
(GAMESYSTEM_Unit_Growth_..._VisionRange) никогда не читается кодом игры.
Агро и угроза вступление в бой и кто получает удар
В таблицах есть две константы агро. Ни одну из них код игры не читает:
Константы осведомлённости, радиуса агро, поправки агро, снижения блока и критического урона из GameSystemTable в этой сборке код игры не читает.
- Радиус агро: в таблицах 8 клеток.
- Поправка агро: в таблицах ближний x1.3, дальний x1.
Код игры читает значение GameSystemTable по полной строке ключа (SystemVar). Ни один из перечисленных ключей не имеет строкового литерала или свойства SystemVar в дампе, поэтому их изменение ничего не меняет в игре.
Таймера поводка нет, и монстр не возвращается к точке появления. Монстр в бою возвращается в Неосведомлён, и теряет цель, как только ни один из ваших юнитов не находится рядом с его комнатой и никакой враг не стоит внутри его зоны боя.
День и ночь ваша видимость сокращается после наступления темноты
В подземелье идут сутки. День это 06:00 до 20:00
(GAMESYSTEM_Campaign_DayTimes); вне этого окна ночь.
Ночью игра даёт вашим юнитам и союзникам Ночь, что сокращает Дальность обзора на 3 клетки. Монстры этого не получают: стандартный монстр с 8 клетками всё равно видит 8 tiles at night, while your settlers see less. The ночное видение affecter adds +3 Дальность обзора для того, на ком это есть.
В таблице также есть константа дневного и ночного обзора (GAMESYSTEM_Campaign_DayNightVisionDiffrence = 3), но код игры в этой сборке её никогда не читает; штраф идёт от эффекта «Ночь».
Скрытность описано, но не подключено
Скрытность reads like the one hard counter to detection. The in-game text: "Враги не обнаруживают юнита и не могут выбрать его целью атаки. Эффект исчезает сразу, если юнит наносит урон врагу."
Зелье незаметности накладывает на пьющего таймерный эффект «Скрытность», но ни один код игры этот эффект не читает. Поэтому в этой сборке он не прячет вас, не останавливает прицеливание и не снимается, когда вы наносите урон. The effect adjusts no stat and no game code checks it, so the hiding and the break-on-damage in its description are not wired up in this build. Задано в данных, но сейчас не даётся ни одним доступным предметом, чертой или навыком.
Миф о Восприятии название против эффекта
Естественно считать, что Восприятие увеличивает, как далеко видят ваши юниты - название и описание ("обостряет органы чувств") оба на это намекают. Данные это не подтверждают.
В этой сборке у Восприятия StatusValueTable коэффициент для Дальности обзора равен
0, и собственная подсказка характеристики перечисляет только Силу физической атаки, Силу магической атаки, Шанс критического удара и Готовку. Константа роста (...MajorStatToFinalStatFactor_VisionRange = 0.02) привязала бы Восприятие к обзору по 0.02 за очко, но код игры её никогда не читает: Дальность обзора - это фиксированная база плюс эффекты и снаряжение. Поэтому Усиление восприятия / Ослабление восприятия
условия окружения (±30% Восприятия) и Эликсир Восприятия +3 являются
бой баффами, а не модификаторами обнаружения.
Что повышает или снижает обнаружение сводка
Всё выше в одной таблице. "Эффект" это с точки зрения монстра - насколько легко он вас замечает.
| Фактор | Эффект | Что показывают данные |
|---|---|---|
| Дальность обзора монстра | разная | У каждого юнита свой радиус обзора (UnitTable.VisionRange): от 4 (Детёныш Глота Бездны) up to 16 (Глаз), большинство сидит на 8. Больше радиус = замечает вас издалека. |
| Линия обзора (стены) | снижает | Видимость проверяется клетка за клеткой по прямой, и клетки стен её останавливают (VisionDataHandler.GetVisiblePositions); обычная непроходимая клетка этого не делает. Разрыв линии видимости за углом скрывает вас, даже на расстоянии вплотную. |
| Ночь | только ваша сторона -3 | С 20:00 до 06:00 ваши собственные юниты и союзники несут Ночь: -3 Дальность обзора. Монстры этого не получают, поэтому ночь вообще не сокращает досягаемость монстра. |
| ночное видение (affecter) | восстанавливает +3 | Добавляет +3 Дальность обзора (ночное видение), exactly cancelling the night penalty. Даётся: сторож. |
| Скрытность (affecter) | нет эффекта | Скрытность: "Враги не обнаруживают юнита и не могут выбрать его целью атаки. Эффект исчезает сразу, если юнит наносит урон врагу." Зелье незаметности накладывает на пьющего таймерный эффект «Скрытность», но ни один код игры этот эффект не читает. Поэтому в этой сборке он не прячет вас, не останавливает прицеливание и не снимается, когда вы наносите урон. Задано в данных, но сейчас не даётся ни одним доступным предметом, чертой или навыком. |
| Дальность агро | не используется | В таблицах задан радиус агро в 8 клеток, но код игры в этой сборке его никогда не читает. |
| Тип атаки (ближний бой против дальнего) | не используется | В таблицах задан коэффициент агро: ближний x1.3 и дальний x1, но код игры в этой сборке его никогда не читает, поэтому ближний бой через него не получает дополнительного агро. |
| Восприятие (Fortify / Weaken / Elixir) | нет эффекта | Несмотря на название, характеристика Восприятие управляет Силой физической и магической атаки, Шансом критического удара и Готовкой. Игра вычисляет Дальность обзора как фиксированную базу плюс эффекты и снаряжение, без члена Восприятия. Поэтому Усиление восприятия / Ослабление восприятия (±30%) и Эликсир Восприятия +3 делают не изменение обнаружения в этой сборке. |
Как с этим работать практический вывод
- Углы сильнее дистанции. Линия обзора - единственный жёсткий ограничитель, который всегда включён. Стена скрывает вас на любой дальности; открытое пространство нет, даже далеко.
- Разведывайте крайности. Глаз (обзор 16 клеток) заметит вас через всю комнату, а к Детёнышу Глота Бездны (обзор 4 клетки) можно проскользнуть на несколько клеток. У большинства стоит 8.
- Ночь благоприятствует монстрам. At night your units see 3 tiles less while monsters see as far as by day - bring ночное видение if it is available.
- Не рассчитывайте на Скрытность. The Скрытность effect is not checked by any game code in this build, so it does not break contact.