Люди, помогите, всю голову уже сломал
Хочу реализовать одновременные ходы, но застрял очень сильно на подводных камнях.
Суть в том, что, чтобы не ждать долго поочередных ходов всех актеров и для ускорение геймплея, хотелось сделать, чтобы все персонажи с возможностью хода в данный раунд совершали одновременные ходы. Как бы это выглядело :
- если есть возможность хода игрока, то ожидается выбор действия.
- когда игрок выбирает, например перемещение на клетку 13:17, то одновременно с ним ходят : первый имп приближается, второй имп стреляет файерболом издалека, и зомбишутер стреляет близко из-за угла из дробовика. Все это происходит одновременно, к сожалению не смог найти игр с подобной реализацией, а то бы подсмотрел как оно там(может плохо искал)
И тут начинаются проблемы. Дело в том, что у меня в данный момент реализована система контроля полета всех снарядов, но при выстреле для каждого изначально уже рассчитывается, какой из них промажет, какой из них ранит, а какой добьет. То есть, по сути каждый снаряд несет в себе информацию о воздействии на жертву и поэтому, как только жертва умирает, то следом летящие снаряды уже знают, что в том месте уже никого нет и то что они уже попадут в стену(в следующего актера) Все это сделано для анимации.
Если же ходить одновременно, то второй имп, стреляя издалека, записывает в фаерболл смерть актера, но следом стреляет зомби. И так как он ближе и его дробь долетит быстрее до игрока, а по замыслу файерболла, там уже труп, что в вступает в противоречие с визуальной картинкой, да и логикой. То есть по идее нужно динамически переназначать итоги каждого снаряда, что очень усложнит и так сложные логические структуры)
Это была первая часть проблем. Далее, смерть из дробовика настигает нашего актера, когда он прошел только полпути до следующей клетки ( у нас же одновременный ходы в один раунд ). Где ему падать? где проигрывать анимацию смерти? Нужно ли ему дойти до конца, а потом упасть замертво? Или играем анимацию смерти и одновременно тянем труп на клетку назначения?
В общем, я даже не могу придумать, что делать в этих "скользких" моментах, может кто сталкивался с подобными проблемами или вообще все по другому переделать?