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

Как зажигаются звёзды

Здравствуйте, гость ( Вход | Регистрация )

entry Oct 16 2010, 17:02
Некоторые игровые опции в 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, иначе осколки будут выпадать и от захваченных кораблей.

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

 
« Предыдущий · Космическая кухня · Следующий »
 
ВПВСЧПС
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31


Ссылки моего Блога


Поиск по моему Блогу