From 3d12d57e15508c530d0334a970a1d602d8fdde21 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sun, 16 Mar 2025 12:34:59 +0100 Subject: [PATCH] Scope change: Updated readme and TODO --- README.md | 2 -- STORY.md | 2 -- TODO.md | 101 +++++++++++++++++------------------------------------- 3 files changed, 32 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index 51c3df4..ce5b5df 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # gbrg -An action rougelike for the gameboy - ## Table of content - [Installation](#Installation) diff --git a/STORY.md b/STORY.md index 4611f55..762f7f8 100644 --- a/STORY.md +++ b/STORY.md @@ -4,6 +4,4 @@ ## World -## Characters - ## Goal diff --git a/TODO.md b/TODO.md index fbd86cd..4c8ebf0 100644 --- a/TODO.md +++ b/TODO.md @@ -1,81 +1,44 @@ # TODO -## turn based +## scope -- [x] Movement should be turn based -- [x] PLayer moves from one tile to another -- [x] Let animations play and then update AI actors after player move -- [x] Collision can then only use a single coordinate to check -- Animation system: - - while an animation is playing the game is stopped - - animations are queued in an animation queue with some simple parameters +[ ] simple city builder +[ ] map fills one scroll area of the gameboy - UI area +[ ] UI area in window +[ ] each frame a few tiles update. Tile updates end when the update max is exhausted of no more sprites are left for speical indicator (e.g. no power) +[ ] if indicator sprites were used wait a few frames to allow the user to see them +[ ] popup menu +[ ] when hovering over tile show meta information +[ ] display housing/commercial/industry demand in bottom UI +## simulation state -## dungeon generator +### global -- [x] Generate a map of rooms -- [x] Maps are stored in wram -- [x] Rooms are taken from a set of base rooms in rom -- [x] Each room has 4 possible exit pointers which are set to 0000 by default -- [x] When a room is made the next direction will be picked -- [x] The generator then sets the exit pointer accordingly -- [x] Low chance to backtrack in either direction. -- [x] If direction is already taken, try again -- [x] If it fails after 4 tries advance to a new room and try again -- [x] Do this until all rooms are filled -- [ ] Allow for maps that make more sense in 2D space (loops etc) -- [ ] Implement a mini map -- [ ] Do not hard-code enemy type instead only use location and pick an actor from an actor table randomly +[ ] housing demand (0-3) +[ ] commercial demand (0-3) +[ ] industry demand (0-3) +[ ] total population (24 bit) +[ ] money (24 bit) -## Room transition +### per tile -When a player hits the edge of the map a room transition should start. -A player can either go north, west, east or south. -The target room of a transition should be stored in a room exit table. -When a transition happens the state of the previous room should be written back to sram (e.g. actor table). -If possible make the animation smooth instead of simply blanking the screen. -Scroll offsets need to be applied to: - Actor objects - Player objects - The UI -After a transition the UI needs to be redrawn again. +[ ] type +[ ] gfx +[ ] traffic +[ ] energy surplus +[ ] crime rate +[ ] fire risk +[ ] FLAGS: on fire, destroyed, abandoned +[ ] tiles have different update loop based on tile type +[ ] occupdation/workers +[ ] some more for special tiles -## Actor table +## tick based -Refactor actor tables to only access the `curr_room_actor_table` which points to a region in ram. -This will allow us to avoid calling memcpy every time we load a new room. +[ ] simulation updates the entire map every N ticks +[ ] pause key pauses simulation but allows player to still look around -## Combat +## map generator -Combat happens on the map. The player opens an action menu, selects an action and then presses a direction. - -## Stats - -Add stats menu that shows all the player's stat numbers. -The player can level up. - -[ ] Player stats should be simple to understand - -- HP -- MP -- ATK -- DEF -- EXP - -Stats should be 8 bit numbers. -Only the player has stats saved, actors are simply looked up based on type + floor. - - -## Animations - -[x] Add cursor around current active actor. - -## Item slots - -All items are held in slots. -If the item space overflows one item if pushed out of the slots. -Display all held items (icons) in select menu. - -## Resting - -Resting should always be possible, but it has a chance to spawn an enemy nearby. +[ ] randomly generate maps with rivers -- 2.30.2