aboutsummaryrefslogtreecommitdiff
path: root/worldbuilding_guide/quests.md
blob: 443aa6bd848c2570950bd427e6d8693e7e0827ae (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
## Complete Quest Example: "Clear the Rats"

### 1. Quest giver mob (`data/mobs/quest_giver.yaml`)
```yaml
id: "quest_giver"
name: "Elder"
behavior: rat_quest_talk
unique: true
protected: true
attack: 1
strength: 1
defense: 1
hp: 20
speed: 5
aggressive: false
idle_descriptions:
  - "mutters about the rat infestation"
```

### 2. Dialog behavior (`data/behaviors/rat_quest_talk.yaml`)
```yaml
id: rat_quest_talk
type: talk
nodes:
  start:
    message: "\"Rats! Rats everywhere in the cellar. Clear them out and I'll reward you.\""
    options:
      - text: "\"I'll handle it.\""
        goto: accept_quest
        condition:
          player_flag: rat_quest
          not: true
      - text: "\"I killed the rats.\""
        goto: turn_in
        condition:
          player_flag: rat_quest
          value: started
      - text: "\"Goodbye.\""
        end: true

  accept_quest:
    message: "\"Good lad. The cellar is west of here. Come back when they're dead.\""
    action:
      set_player_flags:
        rat_quest: started
    options:
      - text: "\"On my way.\""
        end: true

  turn_in:
    message: "\"You did it! The village owes you a debt. Here — take this.\""
    action:
      give_item: rusty_sword
      set_player_flags:
        rat_quest: complete
      heal: 10
    options:
      - text: "\"Thanks!\""
        end: true
```

### 3. Rat mobs (`data/mobs/rat.yaml`)
```yaml
id: "rat"
name: "giant rat"
attack: 2
strength: 1
defense: 1
hp: 3
speed: 4
aggressive: true
respawn_ticks: 60
drops:
  remains: "rat bones"
```

### 4. Cellar room (`data/rooms/20.yaml`)
```yaml
id: 20
name: "Cellar"
description: "A damp, dark cellar. The floor scuttles with movement."
exits:
  east: 1
mobs:
  - "rat"
  - "rat"
  - "rat"
  - "rat"
  - "rat"
```

### 5. Room 1 with quest giver (`data/rooms/1.yaml`)
```yaml
id: 1
name: "Town Square"
description: "Cobblestone paths lead in all directions. The Elder stands near the fountain."
exits:
  west: 20
  north: 2
mobs:
  - "quest_giver"
objects:
  - id: lumby_fountain
```

---