бой кончается только тогда когда не останется никаких гидр, ни призванных, ни обычных.
То есть, если где-то выскочит ошибка, бой никогда не закончится...
----
Почему Вы проверяете смерть гидр во время перемещения (DefenderCreatureMove), а не собственно смерти (DefenderCreatureDeath). Это не претензия, но просто почему? Точно нельзя иначе?