Индикатор кислорода
Индикатор кислорода появляется, когда голова игрока находится под водой или мёдом, показывая время до начала утопления. Счётчик состоит из 10 ( 5) воздушных пузырей (один показан справа), которые постепенно исчезают, пока голова персонажа погружена. Когда счётчик опустошается, игрок начинает тонуть и теряет здоровье. Счётчик начинает восстанавливаться, как только игрок выходит из жидкости. Он восстанавливается с фиксированной скоростью, занимая 1,11 секунды для полного восстановления от нуля.[1]
Для определения дыхания игрок считается "в жидкости", когда пиксель прямо над его глазом находится под поверхностью жидкости. Это примерно соответствует пикселю выше уровня жидкости, если игрок стоит в двух полных блоках жидкости с блоком воздуха в третьем занимаемом блоке. В старых версиях и Издание для консолей старого поколения это был самый верхний пиксель головы. Это было изменено, чтобы игроки не тонули при ударе головой о заполненные жидкостью блоки.
Время дыхания
Длительность счётчика дыхания меняется в зависимости от используемого дыхательного снаряжения или зелий. Указанное время — реальное (не игровое).
- Без снаряжения счётчик длится 23,33 секунды.
- С дыхательной трубкой время удваивается до 46,67 секунды.
- В водолазном снаряжении счётчик длится (Издания для ПК, консолей и мобильных устройств) 140 секунд (т.е. 2 минуты 20 секунд) или (Издания для консолей старого поколения и 3DS) 93,33 секунды (т.е. 1 минута 33 секунды).
- При использовании трубки и снаряжения время составляет (Издания для ПК, консолей и мобильных устройств) 280 секунд (т.е. 4 минуты 40 секунд) или (Издания для консолей старого поколения и 3DS) 186,67 секунды (т.е. 3 минуты 6 секунд).
- Ракушка Нептуна и её улучшения — лунная и небесная ракушка — убирают счётчик в жидкостях, делая дыхание бесконечным.
- Зелье водного дыхания убирает счётчик на время действия бафа (4 минуты в сумме).
Техническое объяснение
Каждый игрок в Terraria имеет два атрибута: breath
и breathCD
. breath
изначально (при каждом спавне) равен 200, а breathCD
— 0. Когда игрок погружён в воду или мёд и ни баф жабр, ни баф мерфолка не активны, breathCD
увеличивается на 1 каждый тик.[2] Как только breathCD
превышает limit
, он сбрасывается в 0, а breath
уменьшается на 1. limit
для breathCD
по умолчанию равен 7, умножается на 2 до 14 при наличии трубки и далее (Издания для ПК, консолей и мобильных устройств) на 6 до 42 или 84 / (Издания для консолей старого поколения и 3DS) на 4 до 28 или 56 при использовании подводного снаряжения (проверяется каждый тик). Когда breath
достигает 0, игрок начинает тонуть. В итоге, до удушения проходит breath * limit
тиков.[3]
Примечания
- При ношении аквариума в слоте снаряжения счётчик появляется, так как голова технически под водой. Водолазное снаряжение и зелья всё ещё можно использовать для противодействия.
- Таймер лавы от амулета лавы и его производных перекрывает счётчик визуально. Если голова в воде, а ноги в лаве, игрок будет терять воздух без отображения счётчика.
История
- 1.3.5.2: Исправлено неожиданное перемещение счётчика при использовании бинокля, снайперского прицела или зума.
- 1.3.0.1: Перемещён над головой игрока (ранее под миникартой).
- 1.2: Лава больше не активирует счётчик, позволяя игрокам с зельем обсидиановой кожи находиться под ней бесконечно.
- 1.0: Добавлен в игру.
Сноски
- ↑ Информация взята из исходного кода игры версии 1.4.4.9 (
ПК), метод
CheckDrowning()
вTerraria.Player.cs
. После выхода из жидкости внутренняя переменная игрокаbreath
(см. Техническое объяснение ниже) увеличивается на 3 каждый тик. Поскольку максимальное значениеbreath
(т.е. полный счётчик дыхания) равно 200, восстановление от нуля занимает200 / 3 = 66.67
тиков (1,11 секунды). Если счётчик наполовину полон, восстановление занимает100 / 3 = 33.33
тика (0,56 секунды).
Другими словами, 1.5% счётчика восстанавливается каждый тик (200 / 3 = 100 / 1.5
). - ↑ Тик — это единица времени, которую считает программа. Бо́льшая часть обновлений логики игры происходит каждый тик. Тик имеет длину 1/60 секунды, следовательно в секунде 60 тиков, а в минуте 3600 тиков.
- ↑ Информация взята из исходного кода игры версии 1.4.4.9 (
ПК), метод
CheckDrowning()
вTerraria.Player.cs
и свойствоbreathCDMax
вTerraria.Player.cs
.