aboutsummaryrefslogtreecommitdiff
path: root/building_guide/hazards.md
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-10-03 19:46:54 -0400
committerhistoria <[not public]>2026-10-03 19:46:54 -0400
commit3a39a020e4449bc4d6f728ef837cffb9f7bd0c56 (patch)
tree9ba1cd5f2aef6ef7c54fdf5b02a780604b5af80b /building_guide/hazards.md
parentc6d4702c0be4d2b37e1d82ff96265c52847c3f9a (diff)
downloadthehouseoficarus-3a39a020e4449bc4d6f728ef837cffb9f7bd0c56.tar.gz
feat: new casino game: plinko
Diffstat (limited to 'building_guide/hazards.md')
-rw-r--r--building_guide/hazards.md45
1 files changed, 4 insertions, 41 deletions
diff --git a/building_guide/hazards.md b/building_guide/hazards.md
index 04333c9..3b72840 100644
--- a/building_guide/hazards.md
+++ b/building_guide/hazards.md
@@ -1,17 +1,9 @@
## Hazards
A **hazard** is an environmental threat attached to a room — a sandstorm, solar
-radiation, falling rocks, toxic spores. It rolls an "attack" against everyone in
-the room every few ticks using the **same combat formulas as a mob**: the hazard
-supplies the accuracy and max hit, and the player defends with their Defense
-level plus the equipment defense bonus selected by the hazard's attack type. No
-new combat math, no special gear — your existing armour and Defense skill are
-what keep you alive.
-
-Hazards are **shared, ID-referenced definitions** (like drop tables and modules):
-define a hazard once in `data/hazards/<id>.yaml`, then reference it from any number
-of rooms with `hazard: <id>` (see `rooms.md`). This makes one hazard reusable
-across a whole area and lets a future `examine` command resolve it by name.
+radiation, falling rocks, toxic spores. Define it once in
+`data/hazards/<id>.yaml`, then reference it from any number of rooms with
+`hazard: <id>` (see `rooms.md`).
**The filename is the ID** (`solar_radiation.yaml` → reference it as `hazard: solar_radiation`); the loader derives it from the filename. Do not put an `id:` field in the file — it is ignored.
@@ -76,37 +68,8 @@ attacked — they only attack the player.
| Field | Description |
|---|---|
| `name` | Display name used in warnings and default messages |
-| `description` | Flavour text (for a future `examine`) |
+| `description` | Flavour text for the hazard |
| `warn_message` | Shown when warning the player about the area |
| `hit_message` | Message on a hit; include a single `%d` to show the damage |
| `miss_message` | Message on a miss |
| `required_item` | If set and equipped, the hazard is fully negated for that player |
-
-### How it behaves
-
-- **Applies to everyone in the room, always** — idle, passing through, working a task,
- or fighting a mob. Strong incentive to work fast, take cover, or leave.
-- **Tech protection applies automatically.** Because the hazard has an attack type, the
- matching protection tech reduces its damage: Kinetic Barrier (melee types),
- Projectile Screen (`ranged`), Neural Firewall (`science`).
-- **Safespots block all hazard damage.** A hidden player behind a safespot object takes
- no hazard damage, regardless of hazard type. Note that doing a *melee* attack/work step
- forces you out of cover — so ranged/science work lets you stay sheltered, melee does not.
-- **Right gear negates it.** If `required_item` is set and equipped, the hazard is skipped
- for that player entirely. The item must exist (validated at startup).
-- **Hazards never interrupt movement.** Unlike a mob hit (which aborts a flee with
- "Can't escape!"), a hazard hit does not touch your walk — you can keep moving out of
- the danger zone while taking hits.
-
-### Entry warning
-
-Players walking from a **safe** room into a **hazardous** one get a `[Y/n]` confirmation
-(pressing return defaults to yes; anything other than empty/`y`/`yes` cancels). Moving
-between two hazardous rooms does not re-prompt. Players can disable the prompt with the
-account option `danger_warning` (`option danger_warning false`).
-
-### Examine (forward-compatible)
-
-Because the hazard is a shared def referenced by ID, a future `examine sandstorm` can
-resolve the current room's `hazard` ID, load the def, and render its attack type, accuracy,
-max hit and description — no hidden objects required.