Свойства оружия
Поля:
name:string— Названиеrounds_per_second:float64— Скорострельность (количество выстрелов в секунду)spread:float64— Точность (угол разброса) выстрела (в градусах)aim_time:float64— Cкорость прицеливанияaim_field_of_view:float64— Угол обзора при полном прицеливании (в градусах)aim_rotation_speed:float64— Скорость поворота при полнов прицеливании (градусы в секунду)aim_movement_speed_modifier:float64— Модификатор скорости перемещения при полном прицеливанииprojectile_speed:float64— Скорость снарядовprojectile_damage:float64— Урон от одного снарядаprojectile_life_time:float64— Время жизни снарядовshot_sound_type_index:Option<int32>— Индекс типа звука при выстреле (начиная с 0), либо Noneprojectile_hit_sound_type_index:Option<int32>— Индекс типа звука при попадании (начиная с 0), либо Nonemax_inventory_ammo:int32— Максимальное количество патронов, переносимых в инвентаре
Свойства звука
Поля:
name:string— Названиеdistance:float64— Расстояние, на котором слышен звукoffset:float64— Модификатор разброса
Вектор в 2-х мерном пространстве
Поля:
x:float64— Координата xy:float64— Координата y
Препятствие на карте
Поля:
id:int32— Уникальный идентификаторposition:Vec2— Позиция центраradius:float64— Радиус препятствияcan_see_through:boolean— Является ли препятствие просматриваемым, либо блокирующим зрениеcan_shoot_through:boolean— Проходят ли снаряды сквозь препятствие
Неменяющееся состояние игры
Поля:
ticks_per_second:float64— Количество тиков в игровую секундуteam_size:int32— Начальное количество юнитов в каждой командеinitial_zone_radius:float64— Начальный радиус зоныzone_speed:float64— Скорость изменения радиуса зоныzone_damage_per_second:float64— Урон, наносимый юнитом за зоной в секундуspawn_time:float64— Время появления юнитовspawn_collision_damage_per_second:float64— Урон наносимый юнитам, пытающимся появиться на ненекорректной позиции в секундуlooting_time:float64— Время выполнения действий с лутом (в секундах)bot_players:int32— Количество игроков (команд) ботовunit_radius:float64— Радиус юнитовunit_health:float64— Максимальное количество здоровья юнитовhealth_regeneration_per_second:float64— Количество здоровья, автоматически регенерируемого юнитом в секундуhealth_regeneration_delay:float64— Время до начала автоматической регенерации здоровья с момента последнего урона по здоровью (в секундах)max_shield:float64— Максимальное значение щита юнитаspawn_shield:float64— Начальное значение щита юнитаextra_lives:int32— Начальное количество дополнительных жизней юнитовlast_respawn_zone_radius:float64— Радиус зоны, после которой недоступно перерождение (обнуляются дополнительные жизни)field_of_view:float64— Угол обзора юнитов без прицеливания (в градусах)view_distance:float64— Расстояние зрения юнитовview_blocking:boolean— Блокируется ли зрение юнитов препятствиямиrotation_speed:float64— Скорость поворота юнита без прицеливания (градусы в секунду)spawn_movement_speed:float64— Скорость предвижения юнитов во время появленияmax_unit_forward_speed:float64— Максимальная скорость юнитов при движении впередmax_unit_backward_speed:float64— Максимальная скорость юнитов при движении назадunit_acceleration:float64— Максимальное ускорение юнитовfriendly_fire:boolean— Можно ли нанести урон юнитам своей командыkill_score:float64— Количество очков, дающихся за ликвидацию вражеского юнитаdamage_score_multiplier:float64— Множитель очков за урон вражеским юнитамscore_per_place:float64— Количество очков за каждую команду, выбывшую до васweapons:[WeaponProperties]— Список свойств каждого из типов оружияstarting_weapon:Option<int32>— Начальное оружие, с которым появляется юнит, либо Nonestarting_weapon_ammo:int32— Начальное количество патронов для стартового оружияmax_shield_potions_in_inventory:int32— Максимальное количество зелий щита в инвентаре юнитаshield_per_potion:float64— Количество щита, восполняемого одним зельемshield_potion_use_time:float64— Время необходимое для выполнения действия выпивания зелья брониsounds:[SoundProperties]— Список свойств каждого из типов звуковsteps_sound_type_index:Option<int32>— Индекс типа звука, издаваемого при ходьбе (начиная с 0), либо Nonesteps_sound_travel_distance:float64— Расстояние, при котором звук ходьбы издастся со 100% вероятностьюobstacles:[Obstacle]— Список препятствий на карте
Участник игры (команда юнитов)
Поля:
id:int32— Уникальный идентификаторkills:int32— Количество ликвидацийdamage:float64— Суммарный нанесенный урон противникамplace:int32— Место выживания (количество выживших команд на текущий момент/момент ликвидации)score:float64— Счет команды
Тип действия, выполняемого юнитом
Варианты:
Looting— Подбирание или сбрасывание лутаUseShieldPotion— Использование зелья щита
Действие, выполняемое юнитом
Поля:
finish_tick:int32— Тик, в который действие будет завершеноaction_type:ActionType— Тип действия
Юнит
Поля:
id:int32— Уникальный идентификаторplayer_id:int32— Идентификатор игрока (команды), управляющей юнитомhealth:float64— Текущее здоровьеshield:float64— Текущее значение щитаextra_lives:int32— Оставшиеся дополнительные жизни юнитаposition:Vec2— Текущая позиция центра юнитаremaining_spawn_time:Option<float64>— Оставшееся время до появления, либо Nonevelocity:Vec2— Текущая скоростьdirection:Vec2— Текущее направление зрения (вектор длины 1)aim:float64— Значение, определяющее процесс прицеливания (0 - не в прицеле, 1 - готов к стрельбе)action:Option<Action>— Текущее действие, выполняемое юнитом, либо Nonehealth_regeneration_start_tick:int32— Тик в который начнется восстановление здоровья (может быть меньше текущего тика игры)weapon:Option<int32>— Индекс оружия, которое держит юнит (начиная с 0), либо Nonenext_shot_tick:int32— Следующий тик в который юнит сможет произвести выстрел (может быть меньше текущего тика игры)ammo:[int32]— Список патронов в инвентаре юнита для каждого типа оружияshield_potions:int32— Количество зелий щита в инвентаре
Подбираемый предмет
Варианты:
-
Weapon— ОружиеПоля:
type_index:int32— Индекс типа оружия (начиная с 0)
-
ShieldPotions— Зелья щитаПоля:
amount:int32— Количество зелий
-
Ammo— ПатроныПоля:
weapon_type_index:int32— Индекс типа оружия (начиная с 0)amount:int32— Количество патронов
Лут, лежащий на земле
Поля:
id:int32— Уникальный идентификаторposition:Vec2— Позицияitem:Item— Предмет
Снаряд, выпущенный из оружия
Поля:
id:int32— Уникальный идентификаторweapon_type_index:int32— Индекс оружия, из которого был произведен выстрел (начиная с 0)shooter_id:int32— Идентификатор юнита, сделавшего выстрелshooter_player_id:int32— Идентификатор игрока (команды), чей юнит сделал выстрелposition:Vec2— Текущая позицияvelocity:Vec2— Скорость снарядаlife_time:float64— Оставшееся время жизни снаряда
Текущее состояние игровой зоны
Поля:
current_center:Vec2— Текущий центр зоныcurrent_radius:float64— Текущий радиус зоныnext_center:Vec2— Следующий центр зоныnext_radius:float64— Следующий радиус зоны
Звук, услышанный одним из ваших юнитов
Поля:
type_index:int32— Индекс типа звука (начиная с 0)unit_id:int32— Идентификатор юнита, услышавшего звукposition:Vec2— Позиция в которой был услышан звук (отличается от позиции источника звука)
Текущее состояние игры
Поля:
my_id:int32— Идентификатор вашего игрокаplayers:[Player]— Список игроков (команд)current_tick:int32— Текущий тикunits:[Unit]— Список юнитов, видимых для вашей командыloot:[Loot]— Список лута, видимого вашей командойprojectiles:[Projectile]— Список снарядов, видимых вашей командойzone:Zone— Текущее состояние игровой зоныsounds:[Sound]— Список звуков, услышанных вашей командой за прошлый тик
Приказ выполнения действия для юнита
Варианты:
-
Pickup— Подобрать лутПоля:
loot:int32— Идентификатор лута
-
UseShieldPotion— Использовать зелье щитаНет полей
-
DropShieldPotions— Выбросить зелья щита на землюПоля:
amount:int32— Количество зелий
-
DropWeapon— Выбросить оружиеНет полей
-
DropAmmo— Выбросить патроныПоля:
weapon_type_index:int32— Индекс типа оружия (начиная с 0)amount:int32— Количество патронов
-
Aim— Начать/продолжить прицеливаниеПоля:
shoot:boolean— Стрелять (возможно только при полном прицеливании)
Приказ для конкретного юнита
Поля:
target_velocity:Vec2— Целевая скорость перемещенияtarget_direction:Vec2— Целевое направление зрения (длина вектора не имеет значения)action:Option<ActionOrder>— Приказ выполнения действия, либо None
Приказы игрока (команды)
Поля:
unit_orders:Map<int32 -> UnitOrder>— Приказы для каждого из ваших юнитов