Данный мод представляет собой библиотеку, предназначенную для предоставления расширенного контроля над уроном и некоторыми боевыми механиками для собственных и сторонних модов.
По умолчанию реализует следующие функции:
Модифицирует тип урона при критическом ударе, добавляя тип "pml:player_critical" для упрощения отслеживания.
Модифицирует тип урона при атаке с размахом, добавляя тип "pml:sweeping_damage".
🔧 Принцип работы:
- Расчёт начинается с базового значения урона
- Применяется скейлинг оружия (предварительное снижение урона)
- Применяются базовые бонусы (фиксированные и процентные)
- Добавляются дополнительные бонусы
- Рассчитываются сопротивления (броня, чары, специальные механики)
- Итоговый урон сохраняется для использования в LivingDamageEvent
📊 Описание переменных:
🛠️ Модификаторы увеличения урона
Переменная | Описание |
---|
baseFlatBonus | Фиксированный бонус, применяемый до процентных множителей |
basePercentBonus | Процентный множитель, применяемый до основных расчётов |
flatBonus | Фиксированный бонус, применяемый после базовых модификаторов |
percentBonus | Процентный множитель, применяемый после базовых расчётов |
🛡️ Модификаторы снижения урона
Переменная | Описание |
---|
weapondamagecontrol | Контроль скейлинга оружия перед расчётами |
armorReduction | Снижение урона через броню |
enchReduction | Снижение урона через чары |
specialReduction | Прямое снижение итогового урона (требует осторожного использования) |
📌 Референсные значения
Переменная | Описание |
---|
originalDamage | Итоговый урон после всех расчётов |
originalAbsorption | Исходное значение поглощения |
🛠️ Ключевые методы
- 🛡️
getArmorReduction()
Возвращает значение снижения урона через броню - 🔮
getEnchantmentReduction()
Возвращает снижение урона через защитные чары - ⚠️
getSpecialReduction()
Возвращает прямое снижение урона (использовать с осторожностью)
📌 Совместимость с First Aid Mod
Система интегрируется с модом First Aid для отслеживания повреждённых частей тела. Метод getDamagedBodyPart(Player player)
возвращает EquipmentSlot повреждённой зоны (работает только во время LivingDamageEvent при установленном First Aid).