diff options
| author | historia <[not public]> | 2026-10-01 14:38:08 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-10-01 14:38:08 -0400 |
| commit | 1082f3336085c15992ca83d5553c0ba52208d70a (patch) | |
| tree | 4fcedaa90bc01c41456258a9d57f492f31754948 /dev_guide/bank.md | |
| parent | d4eae333a8d8a96452bbf3617aa85b50466c11a7 (diff) | |
| download | thehouseoficarus-1082f3336085c15992ca83d5553c0ba52208d70a.tar.gz | |
feat: pai gow poker added to the casino
Diffstat (limited to 'dev_guide/bank.md')
| -rw-r--r-- | dev_guide/bank.md | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/dev_guide/bank.md b/dev_guide/bank.md new file mode 100644 index 0000000..ed890a7 --- /dev/null +++ b/dev_guide/bank.md @@ -0,0 +1,26 @@ +# Bank system internals + +Builder-facing bank documentation (booth object, room placement, player +commands) lives in [../building_guide/bank.md](../building_guide/bank.md). +This page covers the engine side. + +## Session state + +`StateBank` (defined in `internal/net/server.go`) is the session state for +the bank interface. Input is routed through `handleBankInput` in +`internal/game/cmd_bank.go`. + +## Player storage + +Bank items are stored in the `Player.Bank` field (`map[int]*InventorySlot`), +saved in character YAML. Bank slots are sequential and reuse freed slots. +There is no slot limit. + +## Command dispatch + +- `bank` is classified as `ClassActive` in `classifyCommand()` +- `bank` case in `executeCommand()` calls `doBank(sess)` +- `doUse()` checks for `"bank"` or `"bank booth"` targets and routes to + `doBank()` +- `doBank()` checks for a `bank_booth` object in the current room +- `handleBankInput()` dispatches deposit/withdraw/browse/leave commands |
