Вообще очень странная проверка шанса срабатывания, на деле получится только половина от нужного Вам. Обычно для проверки шанса получают значение S0 R100 и проверяют, меньше ли оно желаемого значения шанса.
Определение 100% снижения урона ещё более загадочное. Возникает ощущение, что Вы сами не знаете что должно произойти. Так что же Вы подразумеваете под 100% снижением урона?
Также, когда Вы копировали код вызова функций, то забыли почти в каждой строке изменить значения существа и диапазона отрядов на нужные.
Ну и функции идентичные само собой. Стремление к большому количеству кода - это плохо. Вам же потом хуже будет.