diff options
| author | historia <[not public]> | 2026-06-19 18:20:26 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-19 18:20:26 -0400 |
| commit | 0ea4eec5dd2122c6704216971eb1249276297867 (patch) | |
| tree | 430fbbef04e837820f1d031c190f52ecd6112e25 /AGENTS.md | |
| parent | 3a58125d14bb307f861b38c6c5b0a63babde7e08 (diff) | |
| download | thehouseoficarus-0ea4eec5dd2122c6704216971eb1249276297867.tar.gz | |
shop fixes, 'toggle' completely removed, movement speed increased
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 16 |
1 files changed, 7 insertions, 9 deletions
@@ -49,7 +49,7 @@ internal/ | `login_char.go` | Character creation, connection, rename, delete | | `cmd_*.go` | Command handlers for each command (see Commands section) | | `action.go` | StartAction, CancelAction, AdvanceActions, checkCondition, verbAliases, verbSkill | -| `action_*.go` | Action lifecycle per type (gather, talk, use, toggle, production) | +| `action_*.go` | Action lifecycle per type (gather, talk, use, production) | | `action_burn.go` | Burn/stoke firemaking (standalone, not behavior-YAML-driven) | | `action_search.go` | Search bird's nests for loot | | `action_room.go` | RunEnterSteps (on_enter scripts), BroadcastRespawns | @@ -123,7 +123,7 @@ data/rooms/<id>.yaml Room definitions (exits, objects, mobs, spawns, on_ent data/items/<id>.yaml Item definitions (stats, equip_slot, tool_type, burn_ticks, search_table, etc.) data/mobs/<id>.yaml Mob definitions (combat stats, drops, behavior — NO wander config) data/objects/<id>.yaml Object definitions (name, behavior, hidden, inroom_description, removal_item, props) -data/behaviors/<id>.yaml Behaviors (gather, talk, use, toggle) +data/behaviors/<id>.yaml Behaviors (gather, talk, use) data/drops/<id>.yaml Shared drop tables (weighted item lists) data/help/<id>.yaml Help topics data/recipes/<id>.yaml Recipe definitions (cooking, crafting, smithing, etc.) @@ -204,7 +204,7 @@ Item and object YAML `color` fields also support gradient syntax: `color: "g:196 | `smith [item]` | Smith bars into items at an anvil with a hammer (Smithing skill) | | `mix [item]` | Mix potions from unfinished potions and reagents (Pharmacy skill) | | `talk` / `speak` / `ask <target>` | NPC conversations (objects or mobs with behavior) | -| `pull` / `push <object>` | Toggle interactions (levers, gates) | +| `pull` / `push <object>` | Interact with objects (shortcut for use) | | `search <item>` | Search bird's nests / searchable items (rolls on search_table) | | `burn [item]` | Start a fire (smart default: auto-select single log type) | | `stoke [item]` | Add logs to existing fire for XP | @@ -242,12 +242,12 @@ Queue feedback controlled by `queue_silently` option (default on). ## Action System Actions that interact with objects/mobs route through `StartAction()` in `action.go`: -1. Normalizes verb via `verbAliases` map (mine/chop/fish/cut → gather, talk/speak/ask → talk, pull/push → toggle) +1. Normalizes verb via `verbAliases` map (mine/chop/fish/cut → gather, talk/speak/ask → talk) 2. Multiple object types → "That's ambiguous, which one?" 3. Searches object instances in room (numbered targeting via `N.name`) 4. Falls back to mob instances if no object matches 5. Loads the behavior from YAML -6. Routes to type-specific handler (startGather, startTalk, startUse, startToggle) +6. Routes to type-specific handler (startGather, startTalk, startUse) The `verbSkill` map maps verb → skill name for default target resolution: - mine → mining, chop/cut → woodcutting, fish → fishing @@ -260,7 +260,6 @@ The `verbSkill` map maps verb → skill name for default target resolution: | `combating` | attack/kill | Combat with attack/defense rolls | | `using` | use | Crafting — consume items, produce output | | `talking` | talk/speak/ask | NPC conversation trees with choices/conditions/actions | -| `toggling` | pull/push | Levers/switches — set world flags | | `burning` | burn | Firemaking startup (3 phases) | | `stoking` | stoke | Adding logs to existing fire | | `searching` | search | Search bird's nests / items with search_table | @@ -283,7 +282,6 @@ The `verbSkill` map maps verb → skill name for default target resolution: | `gather` | mine, chop, cut, fish | Resource gathering with skill checks, tool requirements, depletion/respawn | | `use` | use | Crafting stations — consume items, produce output, optional skill checks | | `talk` | talk, speak, ask | NPC conversation trees with choices, conditions, actions | -| `toggle` | pull, push | Levers, switches, gates — set world flags, conditional on existing values | ### Behaviors Not in YAML (hardcoded) @@ -341,7 +339,7 @@ clamped to [0, cfg.Cap] ### Condition System -Used by exits, talk options, on-enter scripts, and toggle checks: +Used by exits, talk options, on-enter scripts, and use_interactions checks: | Field | Scope | Example | |---|---|---| @@ -592,7 +590,7 @@ Implemented: Mining, Fishing, Woodcutting, Firemaking, Cooking, Smithing (smelti - `StartAction` searches objects first, then mobs. A mob must have `behavior:` set on its YAML def to be interactable. - Exits changed from `map[ExitDir]int` to `map[ExitDir]ExitDef` — old `north: 2` still works via custom `UnmarshalYAML`. Same pattern for `RoomMob`. -- `checkCondition` is the single condition evaluator — used by exits, talk options, on-enter scripts, and toggle checks. +- `checkCondition` is the single condition evaluator — used by exits, talk options, on-enter scripts, and use_interactions checks. - Object `Hidden: true` means the object doesn't appear in room listings but is still interactable. - Alias expansion happens before command dispatch and can shadow built-in commands. - `say` preserves case (alias expansion preserves case, dispatch extracts original input text). |
