a9ebc38078
Update the Makefile to use .venv as the virtual env directory
2022-05-08 08:54:54 -07:00
4f7e477b24
Add a WaitAction and trigger it with .
2022-05-07 22:34:43 -07:00
85423e739c
Remove the shbang from map.py
2022-05-07 17:44:30 -07:00
eea49ed3c1
Resolve all the pylint warnings in geometry
2022-05-07 12:37:35 -07:00
427e7c8e84
Remove some unused imports
2022-05-07 12:28:02 -07:00
8b3c0137a5
Refactor event handling into EventHandler
...
Move all the event handling code from Engine to EventHandler. EventHandler has a
reference to Engine and can deal with entities from its methods.
Refactor Action to take an optional Entity in its initializer. Some actions
don't require an Entity, but many do/will.
2022-05-07 12:25:46 -07:00
d75c9faea3
Little bits of cleanup
2022-05-07 12:25:44 -07:00
15e188b9f2
Convert the keysym matching to match/case from if/elif
2022-05-07 11:57:08 -07:00
7b747fb4d3
Doc comments and stuff
2022-05-07 11:56:55 -07:00
54568d70c2
Add a sight_radius parameter to the Species dataclass
2022-05-07 11:43:02 -07:00
04aa61fe4b
Doc strings and import reordering per pylint
2022-05-07 11:42:48 -07:00
d0a2e2c2ef
Clean up imports and terminal newlines in files according to pylint
2022-05-07 11:22:54 -07:00
372cd5f295
Generate a .pylintrc and tweak it slightly for this project
2022-05-07 11:20:57 -07:00
3510bab79a
Document return value of MapGenerator.generate
2022-05-07 11:20:41 -07:00
4002b64640
Attack!!!
...
Refactor MovePlayerAction into a few different Action subclasses. Move direction
to a parent MoveAction, and create three new subclasses of MoveAction:
- BumpAction: perform the test that an action can be performed in the given direction
- WalkAction, take a step in the given direction
- MeleeAction, attack another Entity in the given direction
Add an ActionResult class that communicates the result of performing an Action.
- ActionResult.succeeded indicates whether the action succeeded.
- ActionResult.done indicates if the action is fully complete or requires followup.
- ActionResult.alternate specifies the follow-up action to perform.
Convert all the key handling actions to BumpActions.
In the Engine's event handler method, loop until an action is completed,
performing specified alternate actions until the result object indicates the
action is done.
2022-05-07 11:16:17 -07:00
57bbb2c3fc
Some more fixes from the linter
2022-05-07 09:57:39 -07:00
7720bc525a
Address some linter issues; add doc strings
...
- Clean up some import ordering
- Write some Numpy style doc strings for classes and functions
2022-05-07 08:55:10 -07:00
f3d5e273db
Remove this unimplemented method
2022-05-07 08:54:46 -07:00
16b4b64099
Clean up the logging; use % formats instead of f-strings
2022-05-07 08:53:58 -07:00
a1c1609908
Enable linting
2022-05-07 08:51:55 -07:00
ded318e659
Reorganize the package
...
- Create an __init__.py, which makes this directory a Python package.
- Replace the contents of __main__.py with the contents of main.py
2022-05-07 08:51:44 -07:00
d99c97408c
Generate orcs and trolls randomly throughout the dungeon
2022-05-06 21:16:39 -07:00
08b1841bdf
Add monsters module and define Species, Monster, Orc, and Troll
2022-05-06 21:16:19 -07:00
1e69667ba8
Create a Hero class for the character the player moves; stop using tcod.Color for foreground and background; use tuples instead
2022-05-06 21:16:00 -07:00
5f6247ef13
I decided: every dungeon map has rooms
2022-05-06 21:14:42 -07:00
c2c67ae9ef
Move logging hero movement into the if block where it actually does the move
2022-05-06 21:13:37 -07:00
00462f6005
Change Engine.Configuration to a clas and convert moved_entities to a set
2022-05-06 14:34:26 -07:00
6a431ee574
Tweaking the room size ratios
2022-05-05 08:55:49 -07:00
1d4882a8ac
Do not allow entities to move into squares previously moved entities have moved to
2022-05-05 08:45:30 -07:00
a43e403e9c
Let NPCs randomly walk
2022-05-05 08:38:06 -07:00
1cd45d366b
Add Direction.all() that returns an iterator that produces all the Direction values
2022-05-05 08:37:48 -07:00
1247617b87
Add diagonal movement
2022-05-04 09:25:35 -07:00
084385f8f2
Add a map shroud over tiles and compute field of view based on player position!!!
2022-05-04 09:22:40 -07:00
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