aboutsummaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-11 20:41:06 -0400
committerhistoria <[not public]>2026-06-11 20:41:06 -0400
commitd6ab0e93a64525ce34f89e26d5272efbac513c32 (patch)
treed0ec59a72a32a15d0917d9c6c3bfa2f2a424c1f1 /TODO.md
parent6b2b4bf470b655f01c5a21c5f558a6102402c214 (diff)
downloadthehouseoficarus-d6ab0e93a64525ce34f89e26d5272efbac513c32.tar.gz
feat: big map and options changes
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md21
1 files changed, 16 insertions, 5 deletions
diff --git a/TODO.md b/TODO.md
index c049acf..a139835 100644
--- a/TODO.md
+++ b/TODO.md
@@ -195,7 +195,7 @@ See WORLDBUILDING.md for full examples of every data type with explanations.
### Phase 1: Tiny ASCII Map
-- [ ] Limit the room description to 70 characters wide. Add a setting named "maxWidth" in an appropriate section of config.yaml along with comment explaining it.
+- [x] Limit the room description to 70 characters wide. Add a setting named "maxWidth" in an appropriate section of config.yaml along with comment explaining it.
Next to the block of room description text should be an ASCII mini-map showing the current room as @ and a grid of the rooms and connections surrounding it. A full-size ASCII map for the "map" command will eventually be implemented so keep that in mind for methodology and potential functions we can reuse.
Each line of the map should print on the maxWidth+2 character after the description (so there's always at least one space between the description and map)
@@ -246,11 +246,11 @@ voices, a symphony of commerce and humanity that hasn't changed in ║o—o
generations. Overhead, September clouds drift lazily across the sky, ║| |↑|║
occasionally releasing weak sunlight that transforms the ancient ║o—@—o║
stone beneath countless feet into patches of burnished gold. ║|↓| |║
- ║o—o—o║
- ╚═════╝
+ ║o—o—o║
+ ╚═════╝
-- [ ] This is a feature that can be toggled with the "tinymap" toggle. If the toggle is off, don't print the map at all.
-- [ ] Add a toggle "left-tinymap". If this is enabled, the map should be printed on each line before the room description. For example:
+- [x] This is a feature that can be toggled with the "tinymap" toggle. If the toggle is off, don't print the map at all.
+- [x] Add a toggle "left-tinymap". If this is enabled, the map should be printed on each line before the room description. For example:
Central Market
╔═════╗ The market square pulses with the unbridled energy of a thousand
@@ -261,6 +261,17 @@ Central Market
║o—o—o║
╚═════╝
+### Phase 1b: Map & Option System
+
+- [x] Replaced `toggle` command with `option`/`options` — supports bool (on/off), string (choice lists), and int option types
+- [x] All old toggles migrated to the option system (tinymap, left-tinymap, xpdrops, exits, mobenter, mobleave, mobspawn, reserve, depletion, description)
+- [x] Added `color` option (none, ansi, xterm256)
+- [x] Added `mapwidth` and `mapheight` options for the `map` command viewport size
+- [x] `map` command — renders a full ASCII map centered on the player using BFS graph traversal with geometric coordinate assignment
+- [x] Shared BFS graph builder (`buildGraph`) reused by both the tiny map (in `look`) and the `map` command
+- [x] Added `mappadding` option (none, x, y, xy) — controls blank-row stripping and left-trimming of map output
+- [x] Tiny map built via BFS viewport rendering (3x3 room window at 2x zoom) — no hardcoded corner/cardinal rules, no room duplication
+
### Phase 2: Core Skill Chains (breadth over depth)
- [x] Woodcutting — tree objects + axes, shared depletion, bird's nests