aboutsummaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-19 18:20:26 -0400
committerhistoria <[not public]>2026-06-19 18:20:26 -0400
commit0ea4eec5dd2122c6704216971eb1249276297867 (patch)
tree430fbbef04e837820f1d031c190f52ecd6112e25 /AGENTS.md
parent3a58125d14bb307f861b38c6c5b0a63babde7e08 (diff)
downloadthehouseoficarus-0ea4eec5dd2122c6704216971eb1249276297867.tar.gz
shop fixes, 'toggle' completely removed, movement speed increased
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md16
1 files changed, 7 insertions, 9 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 8903105..67b653e 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -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).