Кадры неуязвимости

Материал из Calamity Mod Wiki
Перейти к навигации Перейти к поиску

Кадры неуязвимости, также известные как кадры невосприимчивости, это ключевая механика Terraria, которая предоставляет временное окно когда игрок или НПС неуязвим к урону из одного или всех источников.

Большинство предметов, из оригинальной игры и из Calamity, имеют особое взаимодействие с рамками неуязвимости, является ли это аксессуаром, который даёт игроку дополнительные кадры неуязвимости когда он наносит урон (например божественный амулет) или оружием которое может наносить удары по НПС намного быстрее, чем это обычно возможно (например Ветер погасшего солнцаВетер погасшего солнца).

Кадры неуязвимости игрока

Существуют различные способы увеличить кадры неуязвимости игрока. Дополнительно, в режиме Месть, кадры неуязвимости игрока ограничены до 150 или 2.5 секунды.

Наследование от крестика

Аксессуар Крестиккрестик удваивает кадры неуязвимости игрока. Эффект удваивания кадров неуязвимости не может суммироваться с самим собой, поэтому получение этого баффа при надетом крестике не даёт никаких преимуществ.

Добавление рамок неуязвимости

Есть несколько событий и эффектов которые напрямую устанавливают или добавляют к значению immuneTime игрока, заместо умножения. Эффекты, которые добавляют кадры неуязвимости, суммируются с крестиком или другими аксессуарами, которые наследуют этот эффект. Дополнительно, эффекты, которые добавляют кадры неуязвимости, будут влиять на кадры неуязвимости атак с кодомcooldownSlot при значении 0 или 1, при этом эффекты которые напрямую устанавливают кадры неуязвимости не будут иметь никакого эффекта на такие атаки.

Ниже представлена таблица всех предметов использующие данный код immuneTime, вместе с соответствующими значениями:

 
[link]Нажмите/тапните здесь, чтобы раскрыть содержимое. (может быть небольшая задержка)[/link]
Этой таблице необходим включённый JavaScript, а всплывающие подсказки на сайте должны быть активны.
Вы также можете просмотреть данные на другой странице.

cooldownSlot

Этот раздел в основном описывает механику оригинальной Terraria.

Когда кто-либо или что-либо наносит урон игроку, они получают один из трёх типов рамок неуязвимости, в зависимости от того какое значение кода cooldownSlot установлено в момент нанесения урона. Все источники урона у которых установлено значение по умолчанию -1 , используют стандартное immuneTime, что влияет на все предметы влияющие на кадры неуязвимости. Однако, если значение cooldownSlot равняется 0 или 1, тогда игрок получает уникальные рамки неуязвимости, которые защищают только от последующего урона из источников с тем же значением cooldownSlot. Например, если в игрока попадает снаряд со значением 1, то он может, сразу после прошлого снаряда, получить урон от снаряда со значением по умолчанию -1, но он уже не может тут же получить урон от снаряда со значением 1. Только некоторые эффекты могут влиять на кадры неуязвимости атаки со значением cooldownSlot 0 или 1, это эффекты от крестика, аксессуаров наследующие эффект крестика и любой эффект который "добавляет" кадры неуязвимости игрока при попадании; все остальные предметы никак не влияют.

Ниже представлена таблица всех врагов и их снарядов, из Calamity, у которых cooldownSlot со значением 0 или 1, тем самым предотвращая попадания из одного источника с тем же значением и игнорируя immuneTime модификацию любых предметов, за исключением крестика (и его наследников):

 
[link]Нажмите/тапните здесь, чтобы раскрыть содержимое. (может быть небольшая задержка)[/link]
Этой таблице необходим включённый JavaScript, а всплывающие подсказки на сайте должны быть активны.
Вы также можете просмотреть данные на другой странице.

Игнорирование кадров неуязвимости НПС

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, это даёт неуязвимость ко всем базовым пробивающим или со значением -2 localNPCHitCooldown снарядам, которые попадают в тот же кадр.
  • 2+: Снаряды могут нанести урон определённому НПС один раз в определённое количество кадров. Это перезарядка индивидуальная у каждого НПС.

Ниже представлена таблица всех предметов и их снарядов которые используют данный код, вместе с соответствующими значениями localNPCHitCooldown:

  • Дополнительно, у взрывов, создаваемых Хаотический иглобрюххаотическим иглобрюхом, usesLocalNPCImmunity установлено значение true и localNPCHitCooldown со значением 1.


 
[link]Нажмите/тапните здесь, чтобы раскрыть содержимое. (может быть небольшая задержка)[/link]
Этой таблице необходим включённый JavaScript, а всплывающие подсказки на сайте должны быть активны.
Вы также можете просмотреть данные на другой странице.

usesIDStaticNPCImmunity

Этот раздел в основном описывает механику оригинальной Terraria.

Если у снаряда значение кода usesIDStaticNPCImmunity равняется true и idStaticNPCHitCooldown со значением, его взаимодействие с рамками неуязвимости меняется коренным образом. Во многом похож на usesLocalNPCImmunity, устанавливается таймер, когда снаряд попадает в НПС. Однако, этот тип внутреннего таймера блокирует все снаряды одного типа от того же игрока. Это значит, что после того как любой экземпляр снаряда с usesIDStaticNPCImmunity попадает по противнику, НПС становится неуязвим ко всем снарядам данного типа от игрока, который попал в него, на определённое время. Все снаряды, которые используют код usesIDStaticNPCImmunity в явном виде убирают рамки неуязвимости у любого НПС в которого они попадают, как снаряды с кодом localNPCHitCooldown при значении -1.

Ниже представлена таблица всех предметов и их снарядов которые используют данный код idStaticNPCHitCooldown, вместе со всеми его значениями:

 
[link]Нажмите/тапните здесь, чтобы раскрыть содержимое. (может быть небольшая задержка)[/link]
Этой таблице необходим включённый JavaScript, а всплывающие подсказки на сайте должны быть активны.
Вы также можете просмотреть данные на другой странице.

npc.immune

Снаряды которые устанавливают значение npc.immune при попадании по НПС, просто изменяют количество получаемых кадров неуязвимости НПС. При обычном пробивающем снаряде, НПС не будет получать никакого урона от любых пробивающих снарядов в течении этих кадров. Обычные пробивающие снаряды, устанавливается значение npc.immune равное 10, хотя обычно снаряды изменяющие данный код npc.immune устанавливают на меньшее значение, например 4. Такую разницу обычно называют "частичным игнорирование рамок неуязвимости", потому что оно удаляет или игнорирует часть кадров неуязвимости НПС, но не все.

Ниже представлена таблица всех предметов и их снарядов которые используют данный код npc.immune, вместе со всеми его значениями:

 
[link]Нажмите/тапните здесь, чтобы раскрыть содержимое. (может быть небольшая задержка)[/link]
Этой таблице необходим включённый JavaScript, а всплывающие подсказки на сайте должны быть активны.
Вы также можете просмотреть данные на другой странице.

Примечания

  1. Тик - это единица времени, подсчитываемая программой. Большинство логики Terraria обновляется раз в тик. Длительность тика равняется 1/60 секунды, следовательно, в секунде 60 тиков, а в минуте 3600 тиков.