дело в том, что всякие "отбрасывает" и "сносит" вроде бы зависит не от максимального количества хп, а от текущего. т.е. СНОСИТ при абсолютно здоров врага снимает с него допустим 500хп, а СНОСИТ при почти умирает - 20 хп.
нафиг тебе процент от текущего? единую таблицу ты не составишь.
не вроде бы а точно.
но зависимость очень слабая, цепляет на фулл-хп переходит лишь в отбрасывает на умирает.
на самом деле, мой вопрос можно переформулировать так...
остались ли верными (не менялись ли морисом) следующие формулы:
0. УРОН - абсолютное кол-во единиц снесенных атакой;
1. УРОН_ОТНОСИТЕЛЬНЫЙ = 100*(УРОН/МАКС_ХП) + 5*(1 - ХП/МАКС_ХП); /*вольный пересказ дрееееееевнего кода, адаптирую его для простоты визуального восприятия; как видно, текущие хп варьируют относительный урон лишь в пределах 5%; это весьма мало*/
2.
УРОН == 0 -> "не попадает в"; /*сообщение с номером 0*/
УРОН_ОТНОСИТЕЛЬНЫЙ < 0 -> "чуть задевает"; /*номером 1*/
0 <= УРОН_ОТНОСИТЕЛЬНЫЙ <= 10 -> ИД_СООБЩЕНИЯ = 1 + УРОН_ОТНОСИТЕЛЬНЫЙ; /*с номерами 1..11*/
10 < УРОН_ОТНОСИТЕЛЬНЫЙ <= 20 -> ИД_СООБЩЕНИЯ = 6 + УРОН_ОТНОСИТЕЛЬНЫЙ/2; /*11..16?*/
20 < УРОН_ОТНОСИТЕЛЬНЫЙ <= 90 -> ИД_СООБЩЕНИЯ = 14 + УРОН_ОТНОСИТЕЛЬНЫЙ/10; /*16..23?*/
90 < УРОН_ОТНОСИТЕЛЬНЫЙ -> ИД_СООБЩЕНИЯ = 23;
всё это тестить на практике - с ума можно сойти... но код столь древний (1999), что просто доверять ему нет никакого желания...