From f3a6ae488bbd2128af8356b0da016699c5abb70e Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Fri, 12 Jun 2026 18:59:22 -0400 Subject: feat: commands automatically target if unambiguous, depleted node improvements --- TODO.md | 72 ++--------------------------------------------------------------- 1 file changed, 2 insertions(+), 70 deletions(-) (limited to 'TODO.md') diff --git a/TODO.md b/TODO.md index a139835..52a4d54 100644 --- a/TODO.md +++ b/TODO.md @@ -4,7 +4,7 @@ A low-tech sci-fi MUD set on a terraformed asteroid. Runescape-style combat and ## Theme -Not generic fantasy. Takes place on a terraformed asteroid. Technology has regressed — people scrap and scavenge remnants of the old world. "Science" replaces Prayer, "Technology" replaces Magic. Scavenging replaces Runecrafting. +Takes place on a terraformed asteroid. Technology has regressed — people scrap and scavenge remnants of the old world. "Science" replaces Prayer, "Technology" replaces Magic. Scavenging replaces Runecrafting. ## Skills (23 total, all go from 1-99) @@ -193,75 +193,7 @@ See WORLDBUILDING.md for full examples of every data type with explanations. ## Action Plan -### Phase 1: Tiny ASCII Map - -- [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) -If the map is longer than the description, just keep printing new lines for the map. - -The first line is always ╔═════╗ -The last line is always ╚═════╝ -Each of the 5 inner lines begins and ends with ║ - -The map shows up to 9 rooms and any exits connecting them. The 5 inner lines have 7 characters each (including the border) which be defined like this: - -Line 1: [║, Room A (shown if there is a west exit from North Room or north exit from West Room), — if there is a west exit from North Room, North Room, — if there is an east exit from North Room, Room B (shown if there is an east exit from North Room or north exit from East Room), ║] -Line 2: [║, | if there is a north exit from West Room, Blank, | if there is a north exit from Current Room, ↑ if there is an up exit from Current Room, | if there is a north exit from East Room, ║] -Line 3: [║, West Room, — if there is a west exit from Current Room, @, — if there is an east exit from Current Room, East Room, ║] -Line 4: [║, | if there is a south exit from West Room, ↓ if there is a down exit from Current Room, | if there is a south exit from Current Room, Blank, | if there is a south exit from East Room, ║] -Line 5: [║, Room C (shown if there is a west exit from South Room or south exit from West Room), — if there is a west exit from South Room, South Room, — if there is an east exit from South Room, Room D (shown if there is an east exit from South Room or south exit from East Room), ║] - -Note that North Room, East Room, South Room, and West Room can still show up even if there isn't a direct link from the current room to them. For example if there is a to East Room, then that has an exit north, then that room has an exit west, the 'north room' still shows up on the map. - -Each room has a parameter map_symbol to identify it on the map. - -This is how the map looks when every possible room and exit is shown. o is the map_symbol for each room in this example: - -╔═════╗ -║o—o—o║ -║| |↑|║ -║o—@—o║ -║|↓| |║ -║o—o—o║ -╚═════╝ - -This is a map with fewer connections. Note that 'Room A' and 'North Room' show up despite only being connected through East Room and Room B. - -╔═════╗ -║o—o—o║ -║ |║ -║o—@—o║ -║| ║ -║o ║ -╚═════╝ - - -Here's how the room description would look limited to 70 characters long with the map to the right: - -Central Market -The market square pulses with the unbridled energy of a thousand ╔═════╗ -voices, a symphony of commerce and humanity that hasn't changed in ║o—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║ - ╚═════╝ - -- [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 -║o—o—o║ voices, a symphony of commerce and humanity that hasn't changed in -║| |↑|║ generations. Overhead, September clouds drift lazily across the sky, -║o—@—o║ occasionally releasing weak sunlight that transforms the ancient -║|↓| |║ stone beneath countless feet into patches of burnished gold. -║o—o—o║ -╚═════╝ - -### Phase 1b: Map & Option System +### Phase 1: ASCII map implemented with BFS - [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) -- cgit v1.2.3