У игрока маленький набор первичных ингредиентов в ограниченном количестве; с некоторыми из них связаны действия для получения производных ингредиентов.
Есть неистощимый запас нескольких видов воды, и инструментов для обработки ингредиентов.
Все действия атомарны. Виды действий:
- обработать ингредиент
- поместить ингредиент в котёл
- залить котёл водой
- нагревать
- перемешивать
- слить всё из котла
- перелить из котла в колбу
- употребить (для каждого препарата особое действие)
Данное API предварительно, можно корректировать.
Возвращает JSON с полным описанием состояния лаборатории (всё, на что влияет игрок). (Я привожу здесь YaML; в JSON можно сконвертировать, например, на http://yamltojson.com/)
ingredients:
задние ноги лягушки: 2
крысиный хвост: 1
измельчённый крысиный хвост: 1
пуховые перья совы: 1
herbs:
зверобой продырявленный: 4
белокудренник черный: 1
шишки хмеля: 10
cauldron:
- [1379689085000, pour, чистая вода]
- [1379689100000, heat, on]
- [1379689100000, stir, on]
- [1379689185000, add, измельчённый крысиный хвост, 1]
products:
мазь советника: 1
оборотное зелье: 1
зелье покоя: 2Herbs - те же ingredients, но, возможно, отображаются отдельно от них. Cauldron - история котла с момента последней очистки; первое число - JS Date.
Возвращает JSON с описанием не меняющихся от действий игрока правил лаборатории.
descriptions:
мазь советника: Натереть глаза, чтобы получить подсказку или совет по интересующему вас вопросу.
оборотное зелье: После употребления на игре вы примите чужой облик, не важно человека или животного, на 1 час.
зелье покоя: Если вы подольете кому-либо это зелье на игре, этот герой уснет на 10 минут.
actions:
крысиный хвост:
измельчить:
крысиный хвост: -1
измельчённый крысиный хвост: +1
пуховые перья совы:
порвать на клочки:
пуховые перья совы: -1
клочья пуховых перьев совы: +1
мазь советника:
натереть глаза:
мазь советника: -1
recipes:
- caption: Мазь советника
text: Добавить в болотную воду [0] задние ноги лягушки (2 пары) [1], измельчить крысиный хвост [2], варить [3], помешивая [4], пока смесь не станет однородной (коричневая) [5], добавить пуховые перья совы, порванные на клочки (2 шт.) [6]. Полученным составом натереть глаза, чтобы получить подсказку или совет по интересующему вас вопросу.
steps:
- [pour, болотная вода]
- [add, задние ноги лягушки, 2]
- [add, измельчённый крысиный хвост, 1]
- [heat, on]
- [stir, on]
- [after, 30, brown]
- [add, клочья пуховых перьев совы, 2]
product: [мазь советника, 1]Формат recipes такой, чтобы он содержал всё необходимое и клиенту (меню, анимации), и серверу (переход между состояниями, определение готовности зелья). Номера шагов рецепта в тексте позволят вставлять на их месте картинки, или, например, сияние в зависимости от наличия или отсутствия данного предмета в инвентаре. Если это не понадобится, можно их убрать.
Принимает JSON вида ["порвать на клочки", "пуховые перья совы"] или ["add", "клочья пуховых перьев совы", 2]. Возвращает HTTP 422, если в совершении действия отказано, и HTTP 200 в случае удачи. (После этого можно вызвать GET /api/lab/state, чтобы гарантировать синхронность сервера и клиента.)