Aleksei DTG
понимаешь, там будет проблема, что если сделать куллдаун (я просто не понял это ли ты имеешь ввиду), то плохо получится, он получит урон от крысы, отлетит и начнёт замедляться. Но если его во время замедления ударит другая крыса, то во время куллдауна он не сможет ускориться, и это очень плохо воспринимается игроком
Если попытаться посчитать какой нужен остаточный импульс, чтобы снова разогнаться до максимальной для крысы скорости, то для этого надо, во-первых, немного углубиться в физику будет, а во-вторых это опять же не решает той проблемы, что параллельно можно будет получить удар от огра, причём на любом последующем тике. А можно от двух огров и т.д. Т.е. мне видится, что эта задача как минимум подразумевает трекинг текущих импульсов, раз уж требуется их группировать по типам противников. Когда у тебя меняется скорость, ты ведь не знаешь от какого противника был получен импульс.
Такая идея
При запросе на импульс забирается значение максимальной скорости от импульса от текущего источника VMaxDMG, сравнивается с текущим VMaXDMGCur. Если больше то перезаписывает
Это наш кламп для скоростей полученных от импульса
Рассчитываем новую скорость с учетом пришедшего импульса и клампим ее VMaXDMGCur
В таком виде, когда нас сначала ударил огр и мы получили большой импульс, импульсы крыс несущественны по силе и влияют только на направление
Если бьют 5 крыс подряд, то они просто заклампятся, что не очень хорошо. Но можно во первых VMaxDMG делать с запасом допустим на 1,5 импульса . Во вторых после каждого применения импульса запускать таймер в течение которого все последующие ипульсы от того же источника будут в 1/5 силы например
В общем буду проверять как это отработает на практике