fermyl
разумеется, ниже - не формула подсчета, принятая в данной игре, а только ОБРАЗЕЦ для подсчета подобных характеристик в принципе.
(rand({minP, махP}) - rand(defOpp))*int(rand(Bl)+rand(Uv))*2*int(rand(krit))
перевожу на пальцы. Берется твой диапазон, в нем вычисляется случайное значение силы удара на данный конкретный удар. Получили исходное значение силы конкретного удара. Далее умножаем его на сумму(произведение, разность - как программеры заложат, да еще и с какими коэффициентами) вероятностей соперника заблокировать/увернуться, приведенные к целочисленному значению 0 или 1. Соотвественно, если не сблокировал, не увернулся, то имеем еденицу или - полученую в первом действии силу удара. Если сблокировал, имеем ноль и на выходе ноль а на картинке - блок/уворот. Далее полученную цифру умножаем на свою вероятность критануть в данном ударе, опять же приведенную к целочисленному и домноженную на коэффициент крита, я поставил 2 от балды ессно)) Итого, если не увернулся и не сблокировал соперник, то мы по нему ударим с силой:
некое значение из нашего диапазона минус некое значение, обусловленное его защитой.
Разумеется, все это только примерно и псевдонаукообразно) А для програмеров, думаю, еще и забавно) но у мену была цель не формулу написать, а логику разжевать
— Царь-батюшка, дракон проголодался.
— А что он ест? — Дев невинных. — Да, видать, сдохнет он у нас...