Алгоритм работы брони
Эффективная толщина брони при пробитии
Пусть s - толщина volume со стороны попадания снаряда (значение берется из настроек volume в .def модели)
Пробивание снарядом
Пусть s - эффективная толщина брони, вычисленная в точке попадания с учетом параметров armor (см. выше) Пусть e - энергия снаряда
Пусть w - это энергия, которую броня может поглотить
w = Минимум(e,s)
По результатам пробития и свойствам снаряда далее возможны различные эффекты:
снаряд застрял в броне (потратил всё энергию)
детонация (при пробивании лёгкой брони может не сдетонировать, например, тяжелый фугас пролетает сквозь человека)
подрыв фугасной части
срабатывание кумулятивной струи
рикошет (броня не пробита и угол попадания всколзь)
Нормализация
Взрыв
Пусть e = энергия взрыва в этой точке
Примечания
Для пробития (pierce) значения задаются / считаются в мм условной брони (стали).
Для взрывной волны (blast) значения задаются в кг условной взрывчатки
Так же, для внутренних расчётов, есть преобразование урона в общую энергию
g_energyperprojective 1.0
g_energyperhealth 0.025
g_energyperblastwave 5.0
Компоненты есть только на технике
Домики работают без компонент
g_bulletSlopeMax → максимальное увеличение толщины брони от угла попадания
Отладка
Для отладки можно включить:
dbg_piercing 1 → отладочная информация в консоль о каждом попадании снаряда
dbg_blast 1 → отладочная информация в консоль о каждом взрыве
v_armor 1 → сейчас отключен (возможно появится позже)
ui_showArmorBar 1 → показ накопления урона
v_damage 1 → отображение кумулятивной струи, горения иё ударной волны
Last updated