Версия для печати

Нормальная версия

Космическая кухня

Все цвета битвы

Некоторые игровые опции в OGS касаются процесса или результата битвы. В прошлом мне удалось выделить реализацию разных опций из большого и запутанного алгоритма битвы в отдельные независимые классы, которые можно подключать отдельно. Но это внутренние детали реализации, включались эти опции по-прежнему, булевскими параметрами Battle.UseCapture, Battle.UseContainers и Battle.UseSplinters. Это ограничивало расширяемость (код генератора битв должен знать о всех возможных опциях) и противоречило сложившейся традиции настройки OGS.

Отныне способ конфигурации битвы изменён. Список опций определяется параметром Battle.Options. Параметр Battle.имя_опции определяет класс, реализующий опцию. Стандартные опции определены так:
Battle.CAPTURE=objects.battle.Capture
Battle.CONTAINERS=objects.battle.Containers
Battle.SPLINTERS=objects.battle.Splinters

Порядок перечисления опций важен. При включении нескольких опций CAPTURE следует указывать перед SPLINTERS, иначе осколки будут выпадать и от захваченных кораблей.

Пока для совместимости оставлен старый способ включения опций. Использовать и новый, и старый способы одновременно крайне не рекомендуется.

Powered by IP.Blog
© Invision Power Services