diff options
| author | historia <[not public]> | 2026-06-24 20:58:25 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-24 20:58:25 -0400 |
| commit | 9d4b799db4868bcab291b83599ff088763cd4ed6 (patch) | |
| tree | 252f0fcc779acf35243983d643d6399ee2e0cd0b /worldbuilding_guide/hacking.md | |
| parent | d25638d98fe63efdeab570ef77e6a6a97f2d7a60 (diff) | |
| download | thehouseoficarus-9d4b799db4868bcab291b83599ff088763cd4ed6.tar.gz | |
feat: new type of non-violent 'combat': work
Diffstat (limited to 'worldbuilding_guide/hacking.md')
| -rw-r--r-- | worldbuilding_guide/hacking.md | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/worldbuilding_guide/hacking.md b/worldbuilding_guide/hacking.md deleted file mode 100644 index 8927b3e..0000000 --- a/worldbuilding_guide/hacking.md +++ /dev/null @@ -1,49 +0,0 @@ -## Hacking - -Hacking minigames are played by jacking into terminal objects. Terminals are YAML objects that are registered in Go's `terminalDefs` map. - -### Terminal Object YAML - -```yaml -id: terminal_basic -name: basic terminal -color: "40" -description: "A battered terminal with a cracked screen. {40}[Level 1 Hacking]{/}" -inroom_description: "A {40}basic terminal{/} hums quietly against the wall." -``` - -- `id` must match a key in `terminalDefs` (Go code in `internal/game/hacking.go`) -- `name` is used for matching in the `jack` command -- `color` controls the display color -- `description` is shown when examining the terminal -- `inroom_description` is shown in room listings -- No `behavior` field — terminals are registered in Go, not YAML behaviors - -### Adding a New Terminal - -1. Create an object YAML file in `data/objects/terminal_<name>.yaml` -2. Add an entry to `terminalDefs` in `internal/game/hacking.go` -3. Optionally create a new minigame implementation in `internal/game/hacking_<name>.go` -4. Place the terminal object in a room's `objects:` list - -### Adding a New Minigame - -New minigames implement the `HackingMinigame` interface: - -```go -type HackingMinigame interface { - Init(level int) string - HandleInput(input string) (output string, done bool, won bool) - Name() string -} -``` - -Optionally implement `XPBonuser` for bonus XP: - -```go -type XPBonuser interface { - BonusXP() int -} -``` - - |
