Armor Recalc
Активный0.0
Установок
Последнее обновление
Armor Recalc
Актуальная информация о совместимости
В версии Forge 1.11.2-13.20.0.2307 разработчики исправили проблему с расчётом защиты брони. Однако для версий Minecraft 1.9.4 и 1.10.2 этот баг всё ещё присутствует, поэтому мод Armor Recalc остаётся необходимым для корректной работы игры.
Проблема, которую решает мод
Начиная с Minecraft 1.9.4 и вплоть до сборки Forge 1.11.2-13.20.0.2306, система расчёта урона брони была возвращена к алгоритму из версии 1.8.x. Это привело к тому, что игнорируются дополнительные параметры брони, установленные через NBT-теги, эффекты зелий и предметов, влияющие на защиту, а также общая прочность брони. В результате некоторые стандартные карты перестали работать корректно.
Armor Recalc заменяет устаревшую систему расчёта урона от Forge на современную ванильную версию, восстанавливая полную функциональность брони.
Особенности совместимости
Большинство модов, добавляющих новую броню, которые не используют систему ISpecialArmor от Forge, будут работать без проблем. Например, броня из Simple Ores и текущая версия Tinkers Construct функционируют нормально.
Однако броня, использующая ISpecialArmor (как набор Dark Steel из Ender IO), может вести себя непредсказуемо. При стандартных настройках улучшения прочности за счёт RF в Dark Steel не будут работать, хотя остальные функции брони сохраняются.
Также возможны проблемы с модами, использующими ISpecialArmor с особыми системами снижения урона.
Особенности для версии 1.9.0
В Minecraft 1.9.0 появилась возможность использовать дробные значения защиты брони, но стандартный расчёт урона игнорирует их перед выполнением вычислений. Armor Recalc вносит небольшие изменения, учитывающие частичные значения защиты, чтобы 2.5 единиц брони действительно обеспечивали лучшую защиту, чем 2.0, но худшую, чем 3.0.
Технические детали
Стандартная формула расчёта урона: vanillaDamage = входящийУрон * (1 - max( очкиЗащиты / 5, очкиЗащиты - входящийУрон / 2 ) / 25). Однако при вызове для чтения очков защиты происходит преобразование из double в int, а затем в float.
Armor Recalc использует хук Forge для изменения входящего урона, чтобы результат стандартного расчёта (с округлёнными до целого значениями защиты) соответствовал тому, что получилось бы при использовании исходного входящего урона и прямого преобразования фактического double-значения защиты в float.
Важно отметить, что откат к старой системе расчёта брони произошёл в середине разработки версии 1.9.0, поэтому версия мода для 1.9.0 не будет работать корректно с более поздними версиями Forge.