diff options
Diffstat (limited to 'worldbuilding_guide/rooms.md')
| -rw-r--r-- | worldbuilding_guide/rooms.md | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/worldbuilding_guide/rooms.md b/worldbuilding_guide/rooms.md deleted file mode 100644 index 3d6db7d..0000000 --- a/worldbuilding_guide/rooms.md +++ /dev/null @@ -1,134 +0,0 @@ -## Rooms - -Minimal room: -```yaml -id: 1 -name: "Town Square" -description: "Cobblestone paths lead in all directions. A fountain gurgles peacefully." -exits: - north: 2 - west: 7 - east: 3 -``` - -### Inline Color Tags - -Room descriptions support inline color tags using `{spec}text{/}` syntax. Untagged text uses the `room_desc` color. - -```yaml -description: "On the table lies a {182 bold}mysterious vase{/} with a rose in it." -``` - -Tag spec format: `{<0-255> [bold] [dim] [underline]}text{/}` - -Gradients: `{g:196,82}gradient text{/}`. Multi-stop: `{g:45,39,59}three stops{/}`. - -### Exits — simple vs conditional - -Simple exit — always passable: -```yaml -exits: - north: 2 -``` - -Conditional exit — blocked until a world flag is set: -```yaml -exits: - north: - room: 11 - condition: - flag: gate_open - value: true - blocked_message: "A heavy iron gate blocks the way north." -``` - -Conditional exit — blocked unless the PLAYER has a flag (key, permission, quest state): -```yaml -exits: - east: - room: 12 - condition: - player_flag: has_vault_key - value: true - blocked_message: "The vault door is locked. You need a key." -``` - -Conditional exit with compound condition — requires both a world flag AND a player flag: -```yaml -exits: - north: - room: 20 - condition: - all_of: - - flag: bridge_repaired - value: true - - player_flag: paid_toll - value: true - blocked_message: "The bridge is out, and the toll collector blocks the path." -``` - -### Item Spawns — ground items that respawn - -```yaml -item_spawns: - - id: bronze_pickaxe - quantity: 1 - respawn_ticks: 30 # reappears 30 ticks (18 seconds) after being picked up - - id: copper_ore - quantity: 3 - respawn_ticks: 50 -``` - -### Mobs — NPCs placed in the room - -Simple string (no wandering): -```yaml -mobs: - - "newbie_trainer" - - "man" -``` - -With wander config per-instance: -```yaml -mobs: - - id: man - wander_interval: 10 # attempts to wander every 10 ticks - - id: man - wander_interval: 15 - wander_rooms: [1, 4, 5] # optional — only exit to these rooms -``` - -Mob wander config lives in the room YAML, not in the mob definition. This keeps mobs generic -so the same `man` can wander differently depending on where it's placed. Mobs wander through -legal (unconditioned) room exits. If no legal exits exist, the mob stays still. Mobs with -no `wander_interval` never wander. - -### Objects — interactive fixtures - -```yaml -objects: - - id: copper_rock # simple placement - - id: copper_rock # second instance - - id: fishing_spot - wander_rooms: [7, 8, 9] # teleports between these rooms - wander_interval: 12 # every 12 ticks - - id: iron_gate # hidden object (see below) -``` - -### On-enter scripts — messages when a player arrives - -```yaml -on_enter: - - message: "The guard barks: \"State your business!\"" - condition: - player_flag: talked_to_guard - not: true # only first visit - - - message: "The guard nods. \"Back again?\"" - condition: - player_flag: talked_to_guard - value: true # subsequent visits -``` - ---- - |
