diff options
| author | historia <[not public]> | 2026-07-08 02:23:59 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-07-08 02:23:59 -0400 |
| commit | 2bbe6b8e912bbc5f4a61a33988fb27aca7bd5eb3 (patch) | |
| tree | ef4aef5a7393de51d765b24d565b414ddac4b9fe /building_guide | |
| parent | 71f0f381de64e045f91da19450adacf10fbc7902 (diff) | |
| download | thehouseoficarus-2bbe6b8e912bbc5f4a61a33988fb27aca7bd5eb3.tar.gz | |
feat: object and mob steal tables can include both tables and items
Diffstat (limited to 'building_guide')
| -rw-r--r-- | building_guide/mobs.md | 12 | ||||
| -rw-r--r-- | building_guide/objects.md | 40 |
2 files changed, 34 insertions, 18 deletions
diff --git a/building_guide/mobs.md b/building_guide/mobs.md index 7a6f0aa..470a00e 100644 --- a/building_guide/mobs.md +++ b/building_guide/mobs.md @@ -215,10 +215,12 @@ Stealable mobs have a root-level `steal:` block. On failed steal, the mob turns ```yaml name: Farmer steal: - table: farmer_steal # Drop table for steal loot - level: 10 # Required thieving level - xp: 15 # XP per successful steal - speed: 4 # Ticks per steal attempt + level: 10 + speed: 4 + xp: 15 + drops: + - table: farmer_steal + weight: 1 combat: kind: combat attack_types: [slash] @@ -250,7 +252,7 @@ combat: | Field | Description | |---|---| -| `steal.table` | Drop table ID for loot when stealing | +| `steal.drops` | Array of drop entries: `item_id` vs `table` (mutually exclusive), `weight` (required for pity buckets), `quantity` (override; 0 = use sub-item's own for table / 1 for item) | | `steal.level` | Required thieving level | | `steal.xp` | XP awarded per successful steal | | `steal.speed` | Ticks per steal attempt (base wait) | diff --git a/building_guide/objects.md b/building_guide/objects.md index d377f23..a8877a7 100644 --- a/building_guide/objects.md +++ b/building_guide/objects.md @@ -275,25 +275,39 @@ use_interactions: ## Stealable Objects -Objects can be stealable via the `steal` command. These use the same drop table system as mobs and searches. +Objects can be stealable via the `steal` command. These use drop entries — either +item IDs or drop table references — resolved by weighted pick. The `steal` command +supports auto-selection when only one target is available, or `steal <name>` for +explicit targeting, including `steal <n>.<name>` to disambiguate identical defs. ```yaml name: Market Stall description: "A wooden stall piled with food and sundries." -steal_table: market_stall_steal -steal_level: 5 -steal_xp: 12 -steal_speed: 5 -guard_mob: guard +steal: + drops: + - table: market_stall_steal + weight: 1 + level: 5 + xp: 12 + speed: 5 + guard_mob: guard ``` -| Field | Description | -| ------------- | ------------------------------------------------ | -| `steal_table` | Drop table ID for loot when stealing | -| `steal_level` | Required thieving level | -| `steal_xp` | XP awarded per successful steal | -| `steal_speed` | Ticks per steal attempt (base wait) | -| `guard_mob` | Mob def ID that guards this object (watches it) | +| Field | Description | +| ---------------- | ------------------------------------------------ | +| `steal.drops` | Array of drop entries (item_id + weight, or table + weight) | +| `steal.level` | Required thieving level | +| `steal.xp` | XP awarded per successful steal | +| `steal.speed` | Ticks per steal attempt (base wait) | +| `steal.guard_mob`| Mob def ID that guards this object (watches it) | + +Each drop entry: +| Field | Description | +| ------------ | ------------------------------------------------ | +| `item_id` | Item ID (mutually exclusive with `table`) | +| `table` | Drop table ID to sub-resolve (mutually exclusive with `item_id`) | +| `weight` | Weight in the weighted-pick pool | +| `quantity` | Override quantity (0 = use sub-item's own qty for tables, or 1 for items) | When `guard_mob` is set, a mob with that def ID in the same room watches the object on a tick-based cycle (8 ticks watching, 4 ticks looking away). While the guard is |
