TODO: updated todo
authorLukas Krickl <lukas@krickl.dev>
Wed, 29 Oct 2025 13:03:08 +0000 (14:03 +0100)
committerLukas Krickl <lukas@krickl.dev>
Wed, 29 Oct 2025 13:03:08 +0000 (14:03 +0100)
STORY.md
TODO.md

index 34de6693b7d17805c9d8e7fea41adadab317f26f..c250eb4b6384c6e4fa724208f68bf7dcbef6906a 100644 (file)
--- 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 3475240f46132d0e1d056656092a16c68b93add9..4cf16281d1060590f02ae5e38f8d2daa758c55c5 100644 (file)
--- 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