Улучшен механизм размещения защитников по клеткам. Теперь они будут реже ошибаться, закрывая втроем одного игрока и оставляя свободным другого.
Уже давно после размещения защитников генератор ищет в клетках “лишних” защитников и предлагает им выбрать из доступных ту клетку, где они в этот такт будут нужнее.
К сожалению, даже после всего этого бывали ситуации, когда защитники уходили на одного игрока атаки (особенно если второй игрок в это время еще не добежал).
В генератор добавлен еще один этап работы с “лишними” защитниками.
Если после всего вышеперечисленного в клетке есть лишние защитники, то один из них будет смещаться по направлению к точке, которая определяется его ролью (к точке которая определена как “родная” [именуется как point_def] точка для его роли). Эти точки можно посмотреть тут (пурпурная точка - point_def).
Среди защитников в клетке выбирается тот, который имеет в этой клетке минимальное значение своей зоны игры без мяча (цифра от 0 до 12). То есть клетку покидает тот игрок, для которого эта клетка максимально не “родная”. Для выбранного игрока с учетом значения point_def, положения мяча, и линии офсайда вычисляется точка, в которой он хочет оказаться. Данный защитник перемещается по направлению к этой точке.
Скорректировано вычисление point_def для случаев, когда мяч находится рядом с клеткой игрока.
Плохой пас на фланг приведен к общей логике для плохих пасов: вначале вычисляется точка куда улетел мяч относительно адресата паса и только затем проверяется покинул ли мяч поле. Ранее мяч просто покидал поле вне зависимости от того, где был адресат паса.
АМ и вингеры меньше внимания уделяют подбору ничейного мяча: при определении того, кто подобрал мяч, они будут реже выигрывать это соревнование. Однако, при игре с полной отдачей для них ничего не изменится - они будут играть на подборе на уровне других игроков.
Одинокий защитник с мячом в своей штрафной (в клетке 0,2) при наличии там же игрока соперника и намека от него на возможность отбора будет выносить мяч в поле подальше от ворот. Технически у защитника сильно возрастает вес действия CLEARENSE. У более сильных защитников этот рост несколько больше.
Унифицирован механизм сохранения координат ничейного мяча: удален ряд моментов когда эти координаты могли изменяться не очевидным образом.
Для нападающих команды без мяча также добавлен отход в “родные” точки (point_def). Эти точки учитывают расположение защитников - по возможности нападающие стараются немного сместится туда, где нет защитников. Для нападающих, вингеров и АМ скорректированы point_def согласно их ролям. Ранее для игроков атаки эти точки не имели практического значения - обычно они оставались там, где их застала потеря мяча командой.
Немного уменьшены зоны для “ложных фулбеков”
Для LCM и RCM добавлена роль “оттянутый к защите”
Немного скорректированы point_def для линии СM и DM, согласно их роли.
Для просмотрщика и 2Д добавлены такие координаты мяча при прострелах, навесах и аутах, которые выходят за границу поля, если мяч покинул поле. Ранее мяч “выкатывался” на границу поля и визуально было не совсем понятно, покинул он поле или нет.
Для вратарей добавлен их отход в родные зоны (после того, как они расстались с мячом). Больше вратари визуально в 2Д и просмотрщике не будут оставаться в той точке, где они последний раз касались мяча. Генератор и ранее считал что вратари всегда отходят в свою родную точку по центру ворот.