AngelScript Help

Group.as

https://github.com/WarRaft/AngelScript-doc/blob/main/Framework/Group.as

Тип group встроен в игру и под капотом представляет собой связанный список элементов типа unit.

Особенность его реализации такова, что он состоит только из уникальных элементов, то бишь в него невозможно дважды добавить одного и того же юнита.

Конструктор

Определён только конструктор по умолчанию.

Group A; void [[[main|main.html]]](){ Group B; }

Деструктор

При уничтожении класса Group будет уничтожен игровой объект group, таким образом предотвращая утечку памяти.

Методы

insert

Добавляет в группу одного или несколько юнитов.

Перегрузки

Group@ insert(unit target)

Добавляет в группу юнита target.

Group@ insert(string unitname, uint limit = 0)

Все юниты с именем unitname будут добавлены в группу. Все unitname перечислены в units.slk.

Group@ insert(float x, float y, float radius, uint limit = 0)

Все юниты, находящиеся на расстоянии radius от точки x, y будут добавлены в группу. Расстояние считается от центра юнита.

Group@ insert(rect rectangle, uint limit = 0)

Добавляет в группу всех юнитов, находящихся в прямоугольнике rectangle.

Group@ insert(player owner, bool selected = false)

Если selected равно false добавляет в группу выбранные юниты игрока owner. Иначе добавляет юниты игрока owner.

limit

Если значение больше ноля, то добавление закончится когда будет добавлено limit юнитов.

Group A; void [[[main|main.html]]](){ A .insert(CreateUnit(Player(0), 'hpea', 0.f, 0.f, 0.f)) // Создаём крестьянина в центре карты и добавляем в группу .insert("footman", 5) // Добавляем в группу пять футманов .insert(10.0f, 20.0f, 100.f) // Добавляем в группу всех юнитов на расстоянии 100 от точки 10,20 .insert(bj_mapInitialPlayableArea, 3) // Добавляем три юнита на карте .insert(Player(1)); // Добавляем всех юнитов синего игрока }

remove

Удаляет юнита из группы.

Group@ remove(unit u)

length

Возвращает количество юнитов в группе.

uint length()

first

Возвращает первого юнита в группе.

unit first()

clear

Очищает группу.

Group@ clear()

contains

Возвращает, находится ли юнит в группе.

bool contains(unit u)

order

Отдаёт приказ всем юнитам в группе.

bool order(string order) bool order(int order) bool order(string order, float x, float y) bool order(int order, float x, float y) bool order(string order, widget target) bool order(int order, widget target)

each

Итератор для перебора всех юнитов группы.

funcdef void GroupCallback(unit, const Group@ &in); Group@ each(GroupCallback@ callback)

Операторы

[]

Доступ по индексу

+, +=

Сложение

-, -=

Вычитание

=

Присваивание

Last modified: 16 October 2024