Кадры неуязвимости
Кадры неуязвимости, также известные как кадры невосприимчивости, это ключевая механика Terraria, которая предоставляет временное окно когда игрок или НПС неуязвим к урону из одного или всех источников.
Большинство предметов, из оригинальной игры и из Calamity, имеют особое взаимодействие с рамками неуязвимости, является ли это аксессуаром, который даёт игроку дополнительные кадры неуязвимости когда он наносит урон (например божественный амулет) или оружием которое может наносить удары по НПС намного быстрее, чем это обычно возможно (например Ветер погасшего солнца).
Кадры неуязвимости игрока
Существуют различные способы увеличить кадры неуязвимости игрока. Дополнительно, в режиме Месть, кадры неуязвимости игрока ограничены до 150 или 2.5 секунды.
Наследование от крестика
Аксессуар крестик удваивает кадры неуязвимости игрока. Эффект удваивания кадров неуязвимости не может суммироваться с самим собой, поэтому получение этого баффа при надетом крестике не даёт никаких преимуществ.
Добавление рамок неуязвимости
Есть несколько событий и эффектов которые напрямую устанавливают или добавляют к значению immuneTime
игрока, заместо умножения. Эффекты, которые добавляют кадры неуязвимости, суммируются с крестиком или другими аксессуарами, которые наследуют этот эффект. Дополнительно, эффекты, которые добавляют кадры неуязвимости, будут влиять на кадры неуязвимости атак с кодомcooldownSlot
при значении 0 или 1, при этом эффекты которые напрямую устанавливают кадры неуязвимости не будут иметь никакого эффекта на такие атаки.
Ниже представлена таблица всех предметов использующие данный код immuneTime
, вместе с соответствующими значениями:
cooldownSlot
- Этот раздел в основном описывает механику оригинальной Terraria.
Когда кто-либо или что-либо наносит урон игроку, они получают один из трёх типов рамок неуязвимости, в зависимости от того какое значение кода cooldownSlot
установлено в момент нанесения урона. Все источники урона у которых установлено значение по умолчанию -1 , используют стандартное immuneTime
, что влияет на все предметы влияющие на кадры неуязвимости. Однако, если значение cooldownSlot
равняется 0 или 1, тогда игрок получает уникальные рамки неуязвимости, которые защищают только от последующего урона из источников с тем же значением cooldownSlot
. Например, если в игрока попадает снаряд со значением 1, то он может, сразу после прошлого снаряда, получить урон от снаряда со значением по умолчанию -1, но он уже не может тут же получить урон от снаряда со значением 1. Только некоторые эффекты могут влиять на кадры неуязвимости атаки со значением cooldownSlot
0 или 1, это эффекты от крестика, аксессуаров наследующие эффект крестика и любой эффект который "добавляет" кадры неуязвимости игрока при попадании; все остальные предметы никак не влияют.
Ниже представлена таблица всех врагов и их снарядов, из Calamity, у которых cooldownSlot
со значением 0 или 1, тем самым предотвращая попадания из одного источника с тем же значением и игнорируя immuneTime
модификацию любых предметов, за исключением крестика (и его наследников):
Игнорирование кадров неуязвимости НПС
Terraria предоставляет три механизма, с помощью которых снаряды могут игнорировать, обходить или уменьшать рамки неуязвимости НПС.
usesLocalNPCImmunity
- Этот раздел в основном описывает механику оригинальной Terraria.
Если у снаряда значение кода usesLocalNPCImmunity
равняется true, его взаимодействие с рамками неуязвимости коренным образом меняется. Когда снаряд попадает в НПС, заместо того чтобы установить значение для npc.immune
НПС, оно устанавливает таймер на снаряд, который останавливает этот конкретный снаряд от попадания в НПС на определённое количество кадров. По истечению таймера, снаряд снова может попасть по НПС.
Длительность таймера определяется кодом localNPCHitCooldown
. Так как Terraria работает по 60 тиков в секунду,[1] значение 60 localNPCHitCooldown
ограничит попадание снаряда раз в секунду. Однако, таймер применяется только к конкретному снаряду который его запустил. Любые другие снаряды, даже пробивающие, могут попасть в НПС, пока идёт таймер, именно это создает впечатление, что снаряд "игнорирует рамки неуязвимости".
У localNPCHitCooldown
есть два специальных значения -2 и -1. При обоих значениях таймер не будет запущен. Заместо этого НПС, в которого попал снаряд, навсегда становится неуязвим к этому конкретному снаряду. Это значит, что в НПС может попасть снаряд с отрицательным значением localNPCHitCooldown
только один раз, независимо от того, как долго снаряд существует. Когда у localNPCHitCooldown
установлено значение -1, снаряд устанавливает значение 0 у npc.immune
при попадании, гарантируя, что он всегда попадёт, несмотря ни на что. Это также придает достоверность фразе "игнорирует кадры неуязвимости", потому что снаряд буквально игнорирует кадры неуязвимости НПС при попадании.
Краткое описание всех значений localNPCHitCooldown
:
- -2: Снаряд не влияет на рамки неуязвимости НПС. Если у НПС есть рамки неуязвимости, снаряд не нанесёт урон. В противном случае, НПС получает урон и не получает никаких рамок неуязвимости. Снаряд никогда не нанесёт урон этому НПС снова.
- -1: Снаряд явно убирает рамки неуязвимости НПС при контакте. Он всегда попадает. Снаряд никогда не нанесёт урон этому НПС снова. На пример
localNPCHitCooldown
-1 есть у люминитовой пули. - 0: Ведёт себя практически так же, как -2, за исключением того, что снаряд может сразу же нанести урон НПС снова, в следующем кадре. НПС не получает рамок неуязвимости если в него попали, но снаряд не снимает их, если у НПС они уже были.
- 1: Ведёт себя практически так же как 0. Разница заключается в том, что у
npc.immune
НПС установлено значение 1, это даёт неуязвимость ко всем базовым пробивающим или со значением -2localNPCHitCooldown
снарядам, которые попадают в тот же кадр. - 2+: Снаряды могут нанести урон определённому НПС один раз в определённое количество кадров. Это перезарядка индивидуальная у каждого НПС.
Ниже представлена таблица всех предметов и их снарядов которые используют данный код, вместе с соответствующими значениями localNPCHitCooldown
:
- Дополнительно, у взрывов, создаваемых хаотическим иглобрюхом,
usesLocalNPCImmunity
установлено значение true иlocalNPCHitCooldown
со значением 1.
usesIDStaticNPCImmunity
- Этот раздел в основном описывает механику оригинальной Terraria.
Если у снаряда значение кода usesIDStaticNPCImmunity
равняется true и idStaticNPCHitCooldown
со значением, его взаимодействие с рамками неуязвимости меняется коренным образом. Во многом похож на usesLocalNPCImmunity
, устанавливается таймер, когда снаряд попадает в НПС. Однако, этот тип внутреннего таймера блокирует все снаряды одного типа от того же игрока. Это значит, что после того как любой экземпляр снаряда с usesIDStaticNPCImmunity
попадает по противнику, НПС становится неуязвим ко всем снарядам данного типа от игрока, который попал в него, на определённое время. Все снаряды, которые используют код usesIDStaticNPCImmunity
в явном виде убирают рамки неуязвимости у любого НПС в которого они попадают, как снаряды с кодом localNPCHitCooldown
при значении -1.
Ниже представлена таблица всех предметов и их снарядов которые используют данный код idStaticNPCHitCooldown
, вместе со всеми его значениями:
npc.immune
Снаряды которые устанавливают значение npc.immune
при попадании по НПС, просто изменяют количество получаемых кадров неуязвимости НПС. При обычном пробивающем снаряде, НПС не будет получать никакого урона от любых пробивающих снарядов в течении этих кадров. Обычные пробивающие снаряды, устанавливается значение npc.immune
равное 10, хотя обычно снаряды изменяющие данный код npc.immune
устанавливают на меньшее значение, например 4. Такую разницу обычно называют "частичным игнорирование рамок неуязвимости", потому что оно удаляет или игнорирует часть кадров неуязвимости НПС, но не все.
Ниже представлена таблица всех предметов и их снарядов которые используют данный код npc.immune
, вместе со всеми его значениями:
Примечания
- ↑ Тик - это единица времени, подсчитываемая программой. Большинство логики Terraria обновляется раз в тик. Длительность тика равняется 1/60 секунды, следовательно, в секунде 60 тиков, а в минуте 3600 тиков.
Игровые механики | |||||||||
---|---|---|---|---|---|---|---|---|---|
Сражение | Сопротивление урону • Урон по защите • Зачарование • Звуки ударов • Кадры неуязвимости • Кража здоровья • Миньоны • Разбойник | ||||||||
Окружение | Фоны биомов • События • Музыка | ||||||||
События | Кислотный дождь • Босс-раш | ||||||||
Игра | Бестиарий • Настройки в конфиге • Режимы сложности (Режим Смерть • Режим Месть) • Рыбалка • Управление в игре • История • Секретные генерации мира (Для достойных • Get fixed boi) • Ванильные изменения | ||||||||
Предметы | Альтернативные ингредиенты для создания • Заряд • Расходники • Станции для создания (Вручную) • Выпадаемые предметы • Модификаторы • Редкость • Рецепты • Рецепты ванильных предметов | ||||||||
Игрок | Индикатор адреналина • Вражеская агрессия • Баффы и Дебаффы • Предотвращение смерти • Защита • Шкала времени полёта • Индикатор ярости | ||||||||
Пользовательский интерфейс | Шкала здоровья босса • Панель перезарядки • Таймер скоростного прохождения • Сообщения об изменении состояния • Советы |