diff options
Diffstat (limited to 'building_guide/triggers.md')
| -rw-r--r-- | building_guide/triggers.md | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/building_guide/triggers.md b/building_guide/triggers.md index ba44c40..d99230b 100644 --- a/building_guide/triggers.md +++ b/building_guide/triggers.md @@ -92,8 +92,7 @@ wait elapses. | `aps_node` | Marks this room's APS node as unlocked. | | `condition` | Per-step gate (evaluated once when the sequence reaches this step). | -Messages are **plain strings**, no longer `{message, delay}` maps. The `delay` field is -gone — use `wait` instead. +Messages are plain strings. Use `wait` to pause before a step fires. ### Condition vocabulary @@ -108,7 +107,7 @@ check passes when the flag is **set to a truthy value**. `not: true` inverts any | `not` | `true` inverts the entire condition. | | `has_item` | Passes when the player carries this item. | | `min_credits` | Passes when the player has at least this many credits. | -| `room` | **New.** Passes when the triggering player is currently in this room. Use it to scope flag-change triggers to a location. | +| `room` | Passes when the triggering player is currently in this room. Use it to scope flag-change triggers to a location. | | `all_of` | List of sub-conditions; all must pass. | | `any_of` | List of sub-conditions; any one must pass. | @@ -144,10 +143,9 @@ on_use: crystal_inserted: true ``` -For `on_enter` specifically, the old flat step list ran **every** matching step. Migration -wraps the old steps into a single Trigger entry, so all the old steps still run as one -sequence. New `on_enter` content should use multiple entries with distinct conditions when -the steps are mutually exclusive. +For `on_enter` specifically, entries are walked top-to-bottom and the first whose +condition passes runs. Use multiple entries with distinct conditions when the steps +are mutually exclusive. ### Lock @@ -181,7 +179,7 @@ entity: | Object | `on_use`, `on_look` | | Mob | `on_kill` | | Exit (room YAML) | `on_traverse` | -| Room | `on_enter`, `on_exit` (NEW) | +| Room | `on_enter`, `on_exit` | | Flag trigger file (`data/triggers/player_flag/`, `data/triggers/global_flag/`) | one Trigger per file (`on_player_flag` / `on_global_flag`) | - **on_use / on_look** — see `objects.md`. `item_id` filters which item triggers the entry. @@ -190,7 +188,7 @@ entity: (not when it's blocked). The exit's own `condition:` / `blocked_message:` belong to the exit gate, not the Trigger list. - **on_enter** — fires after the player enters the room. -- **on_exit** (NEW) — fires when a player leaves the room, **before** `RoomID` is updated +- **on_exit** — fires when a player leaves the room, **before** `RoomID` is updated to the destination. Broadcasts/spawn resolve against the old (departed) room. Mirror of on_enter, useful for parting messages, closing spawns, or recording departures. - **on_flag_change** / **on_global_flag_change** — flag-watch triggers are **file-backed**, one per file under `data/triggers/player_flag/` or `data/triggers/global_flag/`. They are not room fields. See Flag triggers below. |
