From 2a727563a58998574118704f9c5f7c922dc63c7c Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Wed, 29 Oct 2025 14:03:08 +0100 Subject: [PATCH] TODO: updated todo --- STORY.md | 9 ------ TODO.md | 97 +++++++++++++++++++++++++------------------------------- 2 files changed, 44 insertions(+), 62 deletions(-) diff --git a/STORY.md b/STORY.md index 34de669..c250eb4 100644 --- a/STORY.md +++ b/STORY.md @@ -1,11 +1,2 @@ # Setting -It has been 1000 years since the collapse of the ley lines. -The Empire collapsed due to the loss of magic. -The world fell into barbarism. -A new evil is rising in the west. -You are sent by the local wizard to investiage. -Infiltrate their base and defeat their leader. -You are equipped with your bow. -Good luck. -You must not fail. diff --git a/TODO.md b/TODO.md index 3475240..4cf1628 100644 --- a/TODO.md +++ b/TODO.md @@ -4,58 +4,49 @@ ## scope -[ ] Bullet shooter +[ ] Ant simulator +[ ] Cellular automata + +## Game field + +[ ] 20x20 map with a set spawn for player and enemy +[ ] Load map with pre-determined tiles +[ ] Each tile can have a graphic + - a controlling player (0: nobody or 1: player, 2: enemy, 3-255: wild insects) (display as tile that animates) + - a number of ants (0-255) + when there is food nearby (tile next to ants) it is collected + and new ants spawn + - amount of food (regenerates 0-255) (display as tile) + - if no food is nearby some ants die + - if food is nearby ants spawn and food is collected + - food tiles cannot be occupied, only collected from + - flags + - special tile type: e.g. hive +[ ] The field tiles are updated every frame (up to a set amount, start in top left and go down) +[ ] only one action may be active at a time (e.g. spread, attack etc) + actions may be animated (e.g. attack shows a sword sprite) +[ ] when the cursor hovers over a tile show info about it in window (e.g. ant number, food number, controlling actor) + + + +## Actors + +[ ] Player +[ ] Player controls a cursor +[ ] enemy +[ ] Enemy performs actions based on a map script +[ ] Each player has a spawn rate of ants based on food collected +[ ] if a player loses their hive they lose + +Possible actions: +[ ] gather food (clears tile) +[ ] spread to tile + if spreading to an empty tile all nearby tiles lose some population + and it moves to the new tile. + if spreading to an enemy controlled tile the populations fight + whoever has more units nearby wins. if tiles get cleared because of this + they become empty. (display attack animation on map) +[ ] actions can only be performed when the player controls an adjacent tile +[ ] select actions from a menu when clicking on a tile -## Randomness - - -## Weapons - -## Inventory -[ ] Stackable upgrade items -[ ] Each time has an inventory slot, an enable bit as well as a stack count -[ ] Each stack increases the overall effect -[ ] Items can be consumed to get temporary buffs (e.g. hp, ammo etc) -[ ] Each item type has a callback per stat that the stat functions call if unit is player type - -## Mechanics - -[ ] shootable doors and walls -[ ] remove stats -> only leave hp and def - -## animations - -[x] make table for each actor type where animations can be looked up - e.g. idle for each, walk left, walk right, walk up, walk down, attack etc - -## movement - -[ ] rework movement to be pixel instead of tile based -[ ] each actor has 8 collision points that get checked every frame -[ ] multi-directional movement -> handle collision for each cardinal direction -[ ] when a collision occured -> movement/2 and try again to get as close as possible until movement is 0 -[ ] player can turn with direction keys -[ ] if shoot is pressed turning is disabled and the direction is held - -## actors: - -[ ] actors have a specific collision box -[ ] actors update code is based on type - -## map - -[ ] maps are vertical levels -[ ] each map can have many map objects -[ ] map objects are based on the current page -[ ] objec types: - - wall (collision rectangle) - - shootable wall (takes damage) - - enemy spwaner (spwans n enemies of a specific type) - - enemies always spawn slightly off screen and walk in once a spwaner is triggered -[ ] scrolling is only possible up. moving back cannot be done -[ ] maps can run code when objects are loaded based on type - -## sate machine - -[ ] rework state machine to only consist of a sub pointer that can be changed with a call -- 2.30.2