Commit graph

53 commits

Author SHA1 Message Date
25aa5506c8 Convert the generator.Configuration class to a dataclass 2022-05-04 09:22:06 -07:00
0b577ad5ea Merge branch 'diggin-tunnels' 2022-05-03 19:05:57 -07:00
39832c7f74 A little script to visualize how BSP works; emits a DOT graph 2022-05-03 19:05:53 -07:00
c638ee506a Carve walls and floors out of Empty tiles
Walls fill all the Empty tiles around Floors, including rooms and hallways.
2022-05-03 19:04:59 -07:00
7c5c3c57ec Fill the map with Empty tiles instead of Wall tiles 2022-05-03 19:03:31 -07:00
fcfab9fc1b Add Rect.inset_rect 2022-05-03 19:02:39 -07:00
09bdf8a7a6 Place NPCs randomly in a generated room 2022-05-03 19:00:45 -07:00
58e732c923 Clean up and document room rect generation 2022-05-03 18:25:30 -07:00
7ba33cc6eb Fix this type annotation 2022-05-03 18:24:14 -07:00
50d6550e17 Parameterize maximum room size; make minimum_room_size the actual floor size, not counting walls 2022-05-03 18:23:48 -07:00
e1044f3a73 Move MovePlayerAction.Direction to geometry.Direction 2022-05-03 18:21:24 -07:00
8aa7cd30ae Merge remote-tracking branch 'origin/main' 2022-05-03 07:17:39 -07:00
558bd86b16
Initial commit 2022-05-03 07:15:41 -07:00
010c67fd78 Attempt #1 to dig tunnels -- it does not work 2022-05-01 18:03:47 -07:00
3e87ef7279 Implement __iter__ on the geometry types so you can tuple(thing) 2022-05-01 17:43:13 -07:00
33c147d670 Default --debug on 2022-05-01 17:41:42 -07:00
f89ff42f02 Clean up logging, and refine some bits of the map generator algorithm 2022-05-01 17:41:07 -07:00
ed312e985d Add a __repr__ for map.RectangularRoom 2022-05-01 17:34:57 -07:00
8b9897f0cc Convert the geometry types to frozen dataclasses 2022-05-01 17:32:48 -07:00
a072ad507e Move map generation into a new MapGenerator subclass; add RoomsAndCorridorsGenerator to uses BSP 2022-05-01 10:46:30 -07:00
a54828c7fb Fix up all the runtime errors caused by the previous refactoring 2022-05-01 09:51:22 -07:00
f1b95a697e Remove the commented out RegenerateRoomsAction handling
It still is not implemented but RegenerateRoomsAction will handle it when I
bring it back.
2022-05-01 09:29:58 -07:00
5ce26e310b Move the action perform logic to Action.perform() on each Action subclass
Rename Object to Entity to avoid name clashes with Python.object
2022-05-01 09:29:30 -07:00
cde6ea2065 Make the MovePlayerAction.Direction values Vectors 2022-05-01 09:27:59 -07:00
cf64d517de Add some error logging to main and a --debug argument 2022-05-01 09:26:57 -07:00
a422a74a17 Refine the geometry classes; add __add__ method for Points and Vectors 2022-05-01 09:26:20 -07:00
7f225e9e01 Start the player in the middle of the first room 2022-05-01 00:09:45 -07:00
5302b5cf5e Redo tiles to use numpy datatypes
This gives us some nice optimizations when splatting the map to the console.
2022-05-01 00:09:12 -07:00
e7a5af59ed Add mid coordinate and midpoint properties to Rect 2022-05-01 00:08:10 -07:00
52a71b3b8a Clean up now-unused imports in main.py 2022-05-01 00:07:54 -07:00
d56bcc7b4a Add an Engine class and move all the engine-y bits over there from main 2022-04-30 23:30:23 -07:00
dc78669abf Add a map module with a Map class 2022-04-30 23:29:52 -07:00
3e4f065b96 Fix the max properties on Rect; add min properties 2022-04-30 23:29:24 -07:00
82f16a81e3 Add map regeneration, first pass at BSP room generation 2022-04-30 22:06:34 -07:00
730e36a721 Actually install the stderr log handler 2022-04-30 22:06:15 -07:00
204fa66e22 Place player and NPC in the map, not in the whole console 2022-04-30 22:06:01 -07:00
4f6361a7ce Overhaul the event handling to use the new EventHandler class 2022-04-30 22:05:38 -07:00
4f6d04456c Add some basic geometry primitives
Point, Vector, Size, and Rect. These are modeled on the CoreGraphics types.
2022-04-30 21:59:33 -07:00
9ddeef2561 Add actions and events modules 2022-04-30 21:59:01 -07:00
367b284d31 Add a map with tiles that can block player movement 2022-04-27 13:53:42 -07:00
4419eb360d Draw a PLAYER and NPC @; make the NPC yellow 2022-04-27 08:19:56 -07:00
638f2d8826 Make the roguebasin a proper module 2022-04-26 22:25:22 -07:00
d069ca4981 Define an Object with a position and symbol; make the player an Object 2022-04-26 22:25:04 -07:00
f98243b047 Add a launch.json to run the module 2022-04-26 22:23:17 -07:00
9826cd9e73 Use the terminal16x16 font for the 01 script 2022-04-26 20:36:33 -07:00
f6ed6f0627 Add a basic event loop, print an @ and move it with vim keys! 2022-04-26 20:14:41 -07:00
8ec8a094fd Add a VSCode workspace 2022-04-26 19:50:40 -07:00
8a5892cd3c Add terminal 16x16 font and move font PNGs to fonts/ 2022-04-26 19:06:49 -07:00
2c9b390b23 Add the two scripts from the libtcod docs. These are mostly useful basic functionality checks. 2022-04-26 19:00:22 -07:00
8130a8ee82 Update the README 2022-04-26 18:59:51 -07:00