aboutsummaryrefslogtreecommitdiff
path: root/data/README.md
blob: 86a9fe7a42ecc5102e9dfaec62d7df7b17ea432a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Hurry Curry! Data

The game data includes recipes and maps. Its only required on the server side.

`index.yaml` is where all maps and recipe sets are listed for the server to use;
This includes additional metadata for maps.

## Recipes

Each recipe set is a YAML file too containing a list of each possible recipe.
The default recipe set this is generated from `recipes/default.js`. Anticurry is
based of this but just switches input and output fields via a sed script.

## Map format

Maps are defined in YAML format containing "ASCII-art" picture of the map tiles.
Each character is assigned a tile name and additionaly properties in a
lookup-table below. Properties are parsed like command-line argument.

- Exclusive (`-x`): The player is only allowed to put items on that tile that
  have a recipe specific to that tile.
- Walkable (`-w`): The tile has no collision and no items can be put on it.
- Collider (`-c`): No items can be put on the tile (and it has collision, which
  is the default).
- Book (`--book`): Clicking on the tile opens the book.
- Chef spawn (`--chef-spawn`): Marks the spawn point for chefs and bots.
- Customer spawn (`--customer-spawn`): Marks the spawn point for customers
- Item (`-i=<name>`): Populates the tile with a give item.
- Conveyor (`--conveyor=<x>,<y>`): Moves items on this tile to another tile with
  relative position specified.

Tile properties of any specific tile should generally be the same across all
maps. For example crates should always be exclusive.