Реплей - ScreamingScythe/botgame GitHub Wiki

Описание формата

Формат реплея построен на базе JSON. Реплей представляет из себя список событий.

Событие

Действие представляется списком, элементы которого:

  • Время начала
  • Тип действия
  • Остальные элементы зависят от конкретного типа действия и являются его аргументами

События изменения метаинформации

Создание типа объекта (obj.type)

Аргументы:

  • Уникальное имя типа объекта
  • Базовый тип объекта
  • Хэш, содержащий типы свойств
  • Хэш, содержащий свойства по умолчанию

Примеры:

[0, "obj.type", "large_bullet", "bullet", {"weight": "double", "pos": "pos3"}, {"weight": 3} ]

Создание типа действия (act.type)

  • Уникальное имя типа действия
  • Базовый тип действия
  • Хэш, содержащий типы свойств
  • Хэш, содержащий свойства по умолчанию

События создания/изменения объектов

Создание объекта (obj.new)

  • Уникальный числовой идентификатор объекта
  • Тип объекта
  • Хэш, содержащий значения свойств объекта

Примеры:

[0, "obj.type", 123, "large-bullet", {"speed": [1,2,0]} ]

Уничтожение объекта (obj.del)

  • Идентификатор объекта

События изменения состояния

Начало действия (act.start)

  • Уникальный числовой идентификатор действия
  • Идентификатор объекта, совершающего действие
  • Тип действия
  • Хэш, содержащий значения свойств действия

Завершение действия (act.finish)

  • Идентификатор действия

Начало эффекта (eff.start)

  • Уникальный числовой идентификатор эффекта
  • Идентификатор действия-причины
  • Идентификатор объекта, состояние которого меняется
  • Хэш вида <свойство> -> [<функция изменения>, *<параметры функции>]

Допустимые функции и их параметры:

  • Мгновенное изменение (mom), параметры - значение во время изменения (val)
  • Равномерное изменение (lin), параметры - скорость изменения (spd), предел (lim)
  • Равноускоренное изменение (acc), параметры - скорость изменения (spd), ускорение изменения (acc), предел (lim)

Примеры:

[100, "eff.start", 111, 12, 100, {"coord": [ "acc", 0, -10, null], "speedZ": ["lin", -10, null] } ] - падение объекта 123 с некоторой высоты

Завершение эффекта (eff.finish)

  • Идентификатор эффекта
⚠️ **GitHub.com Fallback** ⚠️