aboutsummaryrefslogtreecommitdiff
path: root/building_guide/hacking.md
blob: b45363f013381c149cb1a0a86ad174bc77e8560e (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
## Hacking

Hacking minigames are played by jacking into terminal objects. Terminals are YAML
objects; the filename is the ID (`terminal_basic.yaml` → `terminal_basic`), and
like all objects you should not add an `id:` field (see `objects.md`).

### Terminal Object YAML

```yaml
name: basic terminal
color: "28"
description: "A battered terminal with a cracked screen. {28}[Level 1 Hacking]{/}"
inroom_description: "A {28}basic terminal{/} hums quietly against the wall."
```

- `name` is used for matching in the `jack` command
- `color` controls the display color
- `description` is shown when examining the terminal
- `inroom_description` is shown in room listings
- Terminals have no behavior block; each terminal corresponds to a minigame
  registered in the game code

### Placing a Terminal

Add the terminal object to a room's `objects:` list:

```yaml
objects:
  - id: terminal_basic
```

Adding a brand-new hacking minigame is an engine change, not a world-data change.