aboutsummaryrefslogtreecommitdiff
path: root/building_guide/hazards.md
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-07-13 15:07:28 -0400
committerhistoria <[not public]>2026-07-13 15:07:28 -0400
commit93a412aed2b11406399504c81d6d19ed1341908a (patch)
treed99f0c283e6684d266676438fbec4e550bf9c774 /building_guide/hazards.md
parentfcc9c0a83df82093efd3a85e8e0dc0768653ea87 (diff)
downloadthehouseoficarus-93a412aed2b11406399504c81d6d19ed1341908a.tar.gz
feat(admin): hide irrelevant combat stats for task mobs, show relevant combat stats for hazards
Diffstat (limited to 'building_guide/hazards.md')
-rw-r--r--building_guide/hazards.md63
1 files changed, 50 insertions, 13 deletions
diff --git a/building_guide/hazards.md b/building_guide/hazards.md
index 5db7ceb..04333c9 100644
--- a/building_guide/hazards.md
+++ b/building_guide/hazards.md
@@ -17,29 +17,66 @@ across a whole area and lets a future `examine` command resolve it by name.
```yaml
name: scorching solar radiation
-description: "Unfiltered sunlight pours through a gap in the dome, burning exposed skin."
-attack_type: science # stab/slash/crush/ranged/science — picks player defense + protect tech
-attack: 40 # accuracy roll level
-attack_bonus: 0 # equipment-equivalent accuracy bonus
-max_hit: 6 # maximum damage per hit
-speed: 5 # ticks between hazard rolls
+description: "Unfiltered sunlight pounds down through a gap in the atmospheric dome."
+combat:
+ attack_types: [science] # list: exactly one melee (stab/slash/crush) + optional ranged/science
+ stats:
+ attack: 40 # accuracy level
+ strength: 0
+ ranged: 0
+ science: 0
+ speed: 5 # ticks between hazard rolls
+ max_melee_hit: 0
+ max_ranged_hit: 0
+ max_science_hit: 6 # maximum science damage per hit
+ bonuses:
+ attack_bonus: 0 # equipment-equivalent accuracy bonus
+ strength_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
warn_message: "The dome shielding fails here — raw solar radiation pours in."
hit_message: "Solar radiation sears you for %d damage." # optional single %d for the damage
miss_message: "You shield your eyes and weather a wave of solar glare."
-required_item: "" # optional: an equipped item that NEGATES the hazard entirely
+required_item: "" # optional: an equipped item that NEGATES the hazard entirely
```
-### Fields
+### Combat Fields
+
+The `combat:` block mirrors a mob's combat block exactly — same stats, same bonuses,
+same per-type max hits. Hazards have **no defense stats** because they are never
+attacked — they only attack the player.
+
+| Field | Description |
+|---|---|
+| `combat.attack_types` | List of attack types. At least one melee (`stab`/`slash`/`crush`) plus optional `ranged`/`science`. The first melee type is used as the primary attack type. |
+| `combat.stats.attack` | Attack level (base accuracy) |
+| `combat.stats.strength` | Strength level (melee max-hit base) |
+| `combat.stats.ranged` | Ranged level (ranged accuracy base) |
+| `combat.stats.science` | Science level (science accuracy base) |
+| `combat.stats.speed` | Ticks between hazard rolls (default 5) |
+| `combat.stats.max_melee_hit` | Maximum melee damage per hit |
+| `combat.stats.max_ranged_hit` | Maximum ranged damage per hit |
+| `combat.stats.max_science_hit` | Maximum science damage per hit (a set value — not level-derived) |
+
+#### Bonuses (`combat.stats.bonuses:`)
+
+| Field | Description |
+|---|---|
+| `attack_bonus` | Equipment-equivalent attack bonus (added to accuracy roll) |
+| `strength_bonus` | Equipment-equivalent strength bonus (added to melee max hit) |
+| `science_bonus` | Equipment-equivalent science attack bonus |
+| `science_percent_bonus` | Percent boost to science damage (applied to `max_science_hit`) |
+| `ranged_bonus` | Equipment-equivalent ranged attack bonus |
+| `ranged_strength_bonus` | Equipment-equivalent ranged strength bonus (added to ranged max hit) |
+
+### General Fields
| Field | Description |
|---|---|
| `name` | Display name used in warnings and default messages |
| `description` | Flavour text (for a future `examine`) |
-| `attack_type` | `stab`/`slash`/`crush`/`ranged`/`science` — selects which player defense bonus applies and which protection tech reduces the damage (empty = `crush`) |
-| `attack` | Hazard accuracy level |
-| `attack_bonus` | Equipment-equivalent accuracy bonus |
-| `max_hit` | Maximum damage per hit |
-| `speed` | Ticks between hazard rolls (default 5 if ≤ 0) |
| `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 |