diff options
Diffstat (limited to 'building_guide')
| -rw-r--r-- | building_guide/hazards.md | 63 |
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 | |
