Типы урона: 19 из них игнорируют броню, и почему щиты — более слабая защита
В версии 26.2 существует 51 тип урона. 19 из них игнорируют броню, 30 — щиты, и это пересечение не такое, как многие думают: каждый тип урона, пробивающий броню, также пробивает и щит.
Тип урона — это не просто сообщение о смерти. Он несет в себе флаги, которые определяют, учитывается ли броня, поднятый щит и эффект Сопротивления. Датапаки считывают те же флаги через #minecraft:bypasses_armor и другие подобные команды. Все приведенные ниже числа взяты из файлов damage_type, поставляемых Mojang для версии 26.2, которые отображаются в браузере на этой странице.
Подсчеты
51 тип урона. Из них 19 игнорируют броню и 30 игнорируют поднятый щит.
Второе число удивляет многих. Щит кажется более сильной защитой, потому что он полностью блокирует удар, но его флаг обходится чаще — 30 типами урона против 19 для брони.
Пересечение однонаправленное
Эту часть стоит запомнить, и это скорее жесткое структурное правило, чем тенденция:
Каждый тип урона, который обходит броню, также обходит и щиты. Исключений нет.
Прямой подсчет: множество "обходит броню, но не щиты" — пусто. Таким образом, 19 типов, пробивающих броню, являются строгим подмножеством 30 типов, пробивающих щиты, а 11 типов находятся в промежутке — они проходят сквозь щит, но броня все равно уменьшает их:
cactus, campfire, dry_out, falling_anvil, falling_stalactite, hot_floor, in_fire, lava, lightning_bolt, sulfur_cube_hot, sweet_berry_bush
Прочитайте этот список, и логика станет очевидной: это источники урона, связанные с окружающей средой или падающими предметами. Вы не можете поднять Щит против пола, на котором стоите, или против Наковальни, падающей вам на голову, но броня все равно поглощает часть урона.
Практическая версия: если удар прошел сквозь вашу броню, Щит тоже не помог бы. Урон от падения, утопление, замерзание, Голод, /kill — броня и Щит в обоих случаях бесполезны. Вместо этого используйте Невесомость, Подводное дыхание или Ледоход, потому что эти зачарования флаги не пропускают.
Только один тип игнорирует все
starve — это единственный тип урона, который обходит броню, щиты и эффекты статуса одновременно — так что Сопротивление тоже не действует. Ничто в игре не защитит вас от пустого индикатора Голода, кроме еды.
Истощение бинарно
Получение урона делает вас голоднее, и количество не градируется так, как вы могли бы ожидать. Среди всех 51 типа урона в версии 26.2 существует ровно два значения истощения: 0 и 0.1. 32 из 51 применяют 0.1; остальные не применяют ничего.
Таким образом, нет правила "сильные удары делают вас голоднее". Очко урона от падения и Крипер в лицо стоят одинакового истощения, а 19 типов не стоят ничего.
Масштабирование имеет две настройки, а не кривую
scaling определяет, умножает ли сложность урон, и принимает только одно из двух значений: when_caused_by_living_non_player или always. Нет кривой сложности для каждого типа, которую можно было бы настроить — датапак либо включает тип в масштабирование сложности, либо нет.
Почему это важно для команд
/damage <target> <amount> <type> принимает любой из 51 типа, и выбор неправильного незаметно меняет результат:
/damage @p 10 minecraft:fall # armour ignored, shield ignored
/damage @p 10 minecraft:lava # shield ignored, armour still reduces it
/damage @p 10 minecraft:starve # armour, shield and Resistance all ignored
Три команды, те же 10, три разных результата на одной и той же Мишени. Если Карта "сбалансирована" против Игрока в полном незеритовом снаряжении, выбранный вами тип урона определяет, была ли эта броня вообще частью баланса.