"Флаг защиты" имет конструктивный недочет: возможность обоюдной установки флагов на двух и более героев. Это приводит к двум змеченным вариантам деструктивного поведения юнитов. Для примера опишу поведение двух героев, на которых установлено по флагу защиты, и каждый из героев откликнулся на достуный для него флаг.
Вариант первый. Герои стоят на месте и никуда не перемещаются. Во втором случае герои начинают двигаться в одном каком-то направлении и уходят за край карты. Там они и остаются до тех пор, пока не перестанут выполнять свой флаг защиты. Такое поведение юнитов объясняется тем, что каждый из них следует за своим объектом защиты, который в свою очередь пытается не отстать от своего объекта защиты. Таким образом образуется зацикливание, которое и приводит к непрерывному перемещению. В случае первого варианта можно сказать, что у героев происходит зацикливание "оставаться на месте", так как ни один их них не двинется с места, пока не двинется защищаемый, что может произойти только в случае реакции на атаку врага.
Мною был проведен тест, в котором каждый из десяти моих героев получил по флагу защиты. В ходе експеримента я наблюдал сгруппированное движение всех геров в направлении строго на юго-запад. Как правило, направление изменяется от теста к тесту, что можно объяснить изначальным направлением впереди идущего героя в процессии.
Для решения данной проблемы, как мне видится, будет достаточно запретить героям откликаться на флаг защиты и отказываться от его выполнения (если уже взялся его выполнять) в случае, когда на них самих устанавливается агалогичный флаг.
Такое решение обосновывается и тем, что вцелом подобная защита применятся к низкоуровневым героям, где неприемлимо, чтобы на защиту одного юнца отзывался другой юнец. Для этого обоим героям устанавливается по флагу, и они не интересуясь друг другом, находят себе для защиты более опытных героев. Сейчас же именно молодые герои откликнутся на флаг защиты и приведут к описанной проблеме.
При реализации предложенного мною решения герои, получившие флаг защиты, не смогут откликаться на защиту других героев и, видимо, на защиту строений. Чем же такие герои будут зарабатывать себе на лечебное зелье? В их распоржении остаются флаги атаки и поиска, которые позволят юнцу прокачать себе уровни и заработать деньги, и в то же время они будут под защитой опытных героев (если те, конечно, вообще захотят возиться с нубам ;-) ).
|