aboutsummaryrefslogtreecommitdiff
path: root/internal/game/doc.go
blob: e2769946221304cb5888a16f61b5980d1edc6319 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Package game is the core session handler, command dispatch, login flow,
// and action system for the MUD.
//
// The Game struct holds all world state: room/world access, item/object
// stores, mob instances, behavior definitions, the player hub, and the
// tick engine. HandleSession routes incoming input through the login
// state machine into the in-game command dispatch.
//
// Commands are dispatched via handleGameCommand in game.go, which
// resolves account aliases before switching on the command word.
// Most commands cancel the player's ongoing action (gathering, etc.).
//
// Action system: StartAction normalizes verbs, resolves object/mob
// targets, loads behaviors, and routes to type-specific handlers.
// Actions that take time (gather, use, burn, stoke) tick via
// AdvanceActions, called each 600ms tick.
//
// Tick handlers: ProcessQueuedCommands, DisconnectTick, RegenTick,
// WanderTick, SharedDepletionTick, and FireTick run each game tick to
// advance world simulation.
//
// File organization:
//   cmd_*.go    — player command handlers (doLook, doMove, doGet, etc.)
//   action_*.go — action lifecycle (startGather, advanceBurn, talk, toggle, etc.)
//   login.go    — account creation, authentication, character management
//   map.go      — BFS graph builder, tiny + full-map rendering
//   tick.go     — per-tick world updates (disconnect, regen, wander, woodcutting)
//   utils.go    — shared types and helper functions
//   help.go     — help topic loading and display
package game