Реплей - ScreamingScythe/botgame GitHub Wiki
Формат реплея построен на базе JSON. Реплей представляет из себя список событий.
Действие представляется списком, элементы которого:
- Время начала
- Тип действия
- Остальные элементы зависят от конкретного типа действия и являются его аргументами
Аргументы:
- Уникальное имя типа объекта
- Базовый тип объекта
- Хэш, содержащий типы свойств
- Хэш, содержащий свойства по умолчанию
Примеры:
[0, "obj.type", "large_bullet", "bullet", {"weight": "double", "pos": "pos3"}, {"weight": 3} ]
- Уникальное имя типа действия
- Базовый тип действия
- Хэш, содержащий типы свойств
- Хэш, содержащий свойства по умолчанию
- Уникальный числовой идентификатор объекта
- Тип объекта
- Хэш, содержащий значения свойств объекта
Примеры:
[0, "obj.type", 123, "large-bullet", {"speed": [1,2,0]} ]
- Идентификатор объекта
- Уникальный числовой идентификатор действия
- Идентификатор объекта, совершающего действие
- Тип действия
- Хэш, содержащий значения свойств действия
- Идентификатор действия
- Уникальный числовой идентификатор эффекта
- Идентификатор действия-причины
- Идентификатор объекта, состояние которого меняется
- Хэш вида <свойство> -> [<функция изменения>, *<параметры функции>]
Допустимые функции и их параметры:
- Мгновенное изменение (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 с некоторой высоты
- Идентификатор эффекта