Тем, что в твоем случае меняется формула расчета урона как такового, а в моем - лишь балансится уже и без того существкующая формула дополнительного урона от мода, просто теперь в ней будет вместо X переменных X+3.
С чего ты взял, что в моде вообще есть у мобов такие параметры, как Base damage и Bonus Damage?
Bonus Damage - добавляется к базовым характеристикам и нигде не хранится. Так что есть лишь 1 параметр урона.
Возможно есть бонус урон от аффиксов маг. насыщенного моба, у которого там "доп урон колющим", но этот вариант не подходит.
По крайней мере, я не видел такого, так как уже залазил в скрипты. Сомневаюсь, что где-то еще он хранится.
Так что, я предполагаю, что твой вариант, один хрен по стоимости усилий не будет ни на грамм легче встроить.
При этом вариант с % снижением делается так:
Шаг 1й - Добавляем переменные.
Шаг 2й - Пишем функцию, которая обновит эти переменные по заданной формуле.
Шаг 3й - Встраиваем функцию (1 строчку воткнуть в код) в триггер изменения брони (Возможно это будут функции снятия/одевания доспехов/щитов и т.д.).
Шаг 4й - В самом конце в формуле расчёта урона которая может выглядеть как:
Урон = x+y*3/10+u+z
станет равна формуле:
Урон = (x+y*3/10+u+z) * (процент снижения из 1го шага)
Твой вариант состоит из 1го и 4го шага.
То есть не потребуется обновлять эти переменные в игре.
НО... Твои переменные придется обрабатывать и высчитывать в момент нанесения урона, что хуже, с точки зрения оптимизации кода.
P.S. После того, как я написал это сообщение, я понял, что по твоей формуле мы должны проанализировать, перешли ли мы границу reduction_damage_threshold, в зависимости от этого посчитать на сколько раз мы этот барьер перешли шагами reduction_damage_step и потом, внимание, взять от высчитанного %.
То есть мы вместо моего одного высчитывания % перешли к анализу урона + высчитывание % от расчитанной в анализе переменной)
Только не воспринимай, как предъяву. Просто считаю, что я проще придумал вариант и пытаюсь объяснить почему.