Skip to content

Latest commit

 

History

History
293 lines (198 loc) · 15.1 KB

model.md

File metadata and controls

293 lines (198 loc) · 15.1 KB

Model

WeaponProperties

Свойства оружия

Поля:

  • 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), либо None
  • projectile_hit_sound_type_index: Option<int32> — Индекс типа звука при попадании (начиная с 0), либо None
  • max_inventory_ammo: int32 — Максимальное количество патронов, переносимых в инвентаре

SoundProperties

Свойства звука

Поля:

  • name: string — Название
  • distance: float64 — Расстояние, на котором слышен звук
  • offset: float64 — Модификатор разброса

Vec2

Вектор в 2-х мерном пространстве

Поля:

  • x: float64 — Координата x
  • y: float64 — Координата y

Obstacle

Препятствие на карте

Поля:

  • id: int32 — Уникальный идентификатор
  • position: Vec2 — Позиция центра
  • radius: float64 — Радиус препятствия
  • can_see_through: boolean — Является ли препятствие просматриваемым, либо блокирующим зрение
  • can_shoot_through: boolean — Проходят ли снаряды сквозь препятствие

Constants

Неменяющееся состояние игры

Поля:

  • 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> — Начальное оружие, с которым появляется юнит, либо None
  • starting_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), либо None
  • steps_sound_travel_distance: float64 — Расстояние, при котором звук ходьбы издастся со 100% вероятностью
  • obstacles: [Obstacle] — Список препятствий на карте

Player

Участник игры (команда юнитов)

Поля:

  • id: int32 — Уникальный идентификатор
  • kills: int32 — Количество ликвидаций
  • damage: float64 — Суммарный нанесенный урон противникам
  • place: int32 — Место выживания (количество выживших команд на текущий момент/момент ликвидации)
  • score: float64 — Счет команды

ActionType

Тип действия, выполняемого юнитом

Варианты:

  • Looting — Подбирание или сбрасывание лута
  • UseShieldPotion — Использование зелья щита

Action

Действие, выполняемое юнитом

Поля:

  • finish_tick: int32 — Тик, в который действие будет завершено
  • action_type: ActionType — Тип действия

Unit

Юнит

Поля:

  • id: int32 — Уникальный идентификатор
  • player_id: int32 — Идентификатор игрока (команды), управляющей юнитом
  • health: float64 — Текущее здоровье
  • shield: float64 — Текущее значение щита
  • extra_lives: int32 — Оставшиеся дополнительные жизни юнита
  • position: Vec2 — Текущая позиция центра юнита
  • remaining_spawn_time: Option<float64> — Оставшееся время до появления, либо None
  • velocity: Vec2 — Текущая скорость
  • direction: Vec2 — Текущее направление зрения (вектор длины 1)
  • aim: float64 — Значение, определяющее процесс прицеливания (0 - не в прицеле, 1 - готов к стрельбе)
  • action: Option<Action> — Текущее действие, выполняемое юнитом, либо None
  • health_regeneration_start_tick: int32 — Тик в который начнется восстановление здоровья (может быть меньше текущего тика игры)
  • weapon: Option<int32> — Индекс оружия, которое держит юнит (начиная с 0), либо None
  • next_shot_tick: int32 — Следующий тик в который юнит сможет произвести выстрел (может быть меньше текущего тика игры)
  • ammo: [int32] — Список патронов в инвентаре юнита для каждого типа оружия
  • shield_potions: int32 — Количество зелий щита в инвентаре

Item

Подбираемый предмет

Варианты:

  • Weapon — Оружие

    Поля:

    • type_index: int32 — Индекс типа оружия (начиная с 0)
  • ShieldPotions — Зелья щита

    Поля:

    • amount: int32 — Количество зелий
  • Ammo — Патроны

    Поля:

    • weapon_type_index: int32 — Индекс типа оружия (начиная с 0)
    • amount: int32 — Количество патронов

Loot

Лут, лежащий на земле

Поля:

  • id: int32 — Уникальный идентификатор
  • position: Vec2 — Позиция
  • item: Item — Предмет

Projectile

Снаряд, выпущенный из оружия

Поля:

  • id: int32 — Уникальный идентификатор
  • weapon_type_index: int32 — Индекс оружия, из которого был произведен выстрел (начиная с 0)
  • shooter_id: int32 — Идентификатор юнита, сделавшего выстрел
  • shooter_player_id: int32 — Идентификатор игрока (команды), чей юнит сделал выстрел
  • position: Vec2 — Текущая позиция
  • velocity: Vec2 — Скорость снаряда
  • life_time: float64 — Оставшееся время жизни снаряда

Zone

Текущее состояние игровой зоны

Поля:

  • current_center: Vec2 — Текущий центр зоны
  • current_radius: float64 — Текущий радиус зоны
  • next_center: Vec2 — Следующий центр зоны
  • next_radius: float64 — Следующий радиус зоны

Sound

Звук, услышанный одним из ваших юнитов

Поля:

  • type_index: int32 — Индекс типа звука (начиная с 0)
  • unit_id: int32 — Идентификатор юнита, услышавшего звук
  • position: Vec2 — Позиция в которой был услышан звук (отличается от позиции источника звука)

Game

Текущее состояние игры

Поля:

  • my_id: int32 — Идентификатор вашего игрока
  • players: [Player] — Список игроков (команд)
  • current_tick: int32 — Текущий тик
  • units: [Unit] — Список юнитов, видимых для вашей команды
  • loot: [Loot] — Список лута, видимого вашей командой
  • projectiles: [Projectile] — Список снарядов, видимых вашей командой
  • zone: Zone — Текущее состояние игровой зоны
  • sounds: [Sound] — Список звуков, услышанных вашей командой за прошлый тик

ActionOrder

Приказ выполнения действия для юнита

Варианты:

  • Pickup — Подобрать лут

    Поля:

    • loot: int32 — Идентификатор лута
  • UseShieldPotion — Использовать зелье щита

    Нет полей

  • DropShieldPotions — Выбросить зелья щита на землю

    Поля:

    • amount: int32 — Количество зелий
  • DropWeapon — Выбросить оружие

    Нет полей

  • DropAmmo — Выбросить патроны

    Поля:

    • weapon_type_index: int32 — Индекс типа оружия (начиная с 0)
    • amount: int32 — Количество патронов
  • Aim — Начать/продолжить прицеливание

    Поля:

    • shoot: boolean — Стрелять (возможно только при полном прицеливании)

UnitOrder

Приказ для конкретного юнита

Поля:

  • target_velocity: Vec2 — Целевая скорость перемещения
  • target_direction: Vec2 — Целевое направление зрения (длина вектора не имеет значения)
  • action: Option<ActionOrder> — Приказ выполнения действия, либо None

Order

Приказы игрока (команды)

Поля:

  • unit_orders: Map<int32 -> UnitOrder> — Приказы для каждого из ваших юнитов