diff options
| author | historia <[not public]> | 2026-06-25 04:46:40 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-25 04:46:40 -0400 |
| commit | 2725e2927a1595c7b100d942d1f14146252adeb7 (patch) | |
| tree | e8bc2292634a2d686c751981ddb3097517cccc6a /building_guide/mobs.md | |
| parent | 94a06fbbe682701ca4d4bd2a70cd74d8df29c932 (diff) | |
| download | thehouseoficarus-2725e2927a1595c7b100d942d1f14146252adeb7.tar.gz | |
feat: who, global chat, removed redundant YAML IDs
Diffstat (limited to 'building_guide/mobs.md')
| -rw-r--r-- | building_guide/mobs.md | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/building_guide/mobs.md b/building_guide/mobs.md index c1f9332..88e80ce 100644 --- a/building_guide/mobs.md +++ b/building_guide/mobs.md @@ -1,8 +1,11 @@ ## Mobs +**The filename is the ID.** A mob is looked up by its filename stem (`goblin.yaml` → +`goblin`), and the loader derives `MobDef.ID` from it. Do not put an `id:` field in the file +— it is ignored. Rooms reference mobs by that filename. + Basic combat mob with per-type defense bonuses: ```yaml -id: "man" name: "man" description: "A shabby-looking man." attack: 1 @@ -39,7 +42,6 @@ combat_descriptions: Mobs with `aggressive: true` auto-attack players entering their room (1-tick delay). Only aggros if the player's combat level is at most double the mob's combat level. Checked on room enter and login. ```yaml -id: goblin name: goblin aggressive: true # attacks players on sight attack: 1 @@ -77,7 +79,6 @@ ranged_defense: 3 Mob with talk behavior — can be talked to via `talk:` inline config: ```yaml -id: "guard" name: "Guard" talk: # inline talk config (no separate behavior file) nodes: @@ -116,7 +117,6 @@ is per-instance in the room YAML (see Rooms > Mobs section above). Mobs can be stealable via the `steal` command. On failure, the mob turns hostile and attacks. ```yaml -id: farmer name: Farmer steal_table: farmer_steal # Drop table for steal loot steal_level: 10 # Required thieving level @@ -136,7 +136,6 @@ steal_speed: 4 # Ticks per steal attempt Assassin (Slayer) mobs restrict combat by assassin level and introduce finishing blows and protective equipment: ```yaml -id: slug name: slug assassin_level: 1 # required assassin level to attack finishing_blow: salt # item required to kill (mob stays at 1 HP otherwise) @@ -155,7 +154,6 @@ drops: Damage-without mobs deal 1.5x damage unless the player has the specified item equipped: ```yaml -id: drone name: drone assassin_level: 15 damage_without: insulated_gloves # 1.5x damage without this item equipped @@ -180,7 +178,6 @@ Mobs without these fields work normally (assassin_level defaults to 0, finishing A task mob is a non-violent "worksite" — build a solar panel, survey flora, prospect a rock — that reuses the entire combat engine. Set `kind: task`. Mechanically its `hp` is a hidden work pool that drains to 0 to **complete** the work; the player sees a progress bar filling toward 100%. A task mob **never attacks back** — the danger (if any) comes from a room `hazard:` (see `hazards.md`). Use the `work` command (or `attack`) on it. ```yaml -id: solar_panel_frame name: solar panel frame kind: task # "" / "combat" (default) or "task" verb: assemble # flavor verb shown in messages (default: "work on") |
