Commit graph

190 commits

Author SHA1 Message Date
2f9864edd8 Start the hero on the down stairs of the level 2023-02-10 22:37:26 -08:00
6c9d01771f Draw a path from the hero to the current mouse point
Add a highlight grid to Map, with locations set to True if that point should be
drawn with a "highlight" treatment.

Add the highlight graphic_dtype to all Tiles.
2023-02-10 22:37:21 -08:00
f05dfdef55 PEP8 formatter changes 2023-02-10 21:25:00 -08:00
727a0737c6 Use integer division for Rect.mid_y and Rect.mid_x 2023-02-10 21:13:49 -08:00
7b0b7ff5b6 Add Rect.intersects 2023-02-10 21:13:31 -08:00
0d0c5a2b35 Remove this unused DefaultConfiguration class variable 2023-02-10 21:13:16 -08:00
85b059dbd4 Add two new room generators
- OneBigRoomGenerator
- RandomRectRoomGenerator
2023-02-10 21:12:42 -08:00
9d00f3b638 Promote BSPRoomGenerator.Configuration to RoomGenerator.Configuration
This configuration object can actually apply to all room generators.

Notably: copy the default configuration object before setting it to self.configuration.
2023-02-10 21:12:12 -08:00
643ab0990b logging_config changes
Add erynrl.map to the config.
Something reformatted the logging config.
2023-02-10 21:10:21 -08:00
c59dc1b907 Break up room and corridor generation into generate and apply phases
- Generate creates rooms and corridors, and apply applies them to a tile grid.
- Add up and down stairs generation to the Room Generators.
- Clean up Room.wall_points and Room.floor_points to make it easier to
  write a generic apply() method on RoomGenerator
2023-02-10 21:07:50 -08:00
d4c4b5d879 Reformat some heckin' long initializers in object.py 2023-02-09 21:08:11 -08:00
d8dfe5c497 Fix some PEP8 formatting issues 2023-02-09 21:07:42 -08:00
350876347b Correct some Direction type annotations
They should always have been Vectors.
2023-02-09 21:05:05 -08:00
771926088c Remove an unused import 2023-02-09 21:04:26 -08:00
fff3260d01 Give MapGenerator up_stairs and down_stairs properties 2023-02-09 21:00:51 -08:00
d9aa8097c5 Add StairsUp and StairsDown tile types 2023-02-09 20:57:51 -08:00
ac5efa7518 PEP8 formatting in map.tile 2023-02-09 20:57:37 -08:00
aacc5d56ca "strict" type checking is too much 🙃 2023-02-09 20:55:03 -08:00
8e9b130ba7 Fix the ordering of imports in map/__init__.py 2023-02-09 20:54:40 -08:00
dabc9e70dd PEP8 formatter changes 2023-02-09 16:12:46 -08:00
391f84b21b Fix up the type annotations for geometry.Direction 2023-02-09 16:09:58 -08:00
175f94798b Enable strict type checking in the workspace 2023-02-09 16:09:06 -08:00
d8cb6b4242 Tell the linter to allow pt as a variable name 2023-02-09 16:07:45 -08:00
9a04692539 Refactor map generator package
- Move room generators to map.generators.room
- Move corridor generators to map.generators.corridor

Generators have a generate() method that generates the things they place,
and an apply() method that applies their objects to a grid of tiles.
2023-02-09 16:07:29 -08:00
843aa2823f Some messing around with fonts and BDF files from long ago 2023-02-08 08:36:44 -08:00
1df7cea2ad Move map modules to their own directory 2023-02-08 08:36:00 -08:00
a4f4584ffd Enable pep8 formatting on save 2023-02-08 08:35:06 -08:00
1b37807710 Add a pep8 code style configuration file 2023-02-08 08:34:46 -08:00
90994cafd7 Import Action and ActionResult from actions submodules 2022-05-29 21:24:31 -07:00
05eb5c4ade Add some docstrings to ai.py 2022-05-28 09:02:52 -07:00
ae1c7f5ce2 Refactor events into their own package
Most of the existing actions are game actions (they control the player character)
so they live in actions.game. Eventually, there will be modules for different
kinds of actions that only apply to, e.g. modal UI.
2022-05-28 08:52:54 -07:00
46af8863b1 Use a try/catch to check for the presence of actor/target.fighter in MeleeAction 2022-05-16 20:51:53 -07:00
99838cbd00 Convert the passive healing clock to a more granular tick mechanism
Instead of counting turns, count clock ticks. A WaitAction adds 10 ticks to the
passive healing clock and a WalkAction adds 5. So, you will heal while walking
but at a slower rate.
2022-05-16 20:50:23 -07:00
31bec25dcf Add a docstring to engine.Configuration 2022-05-16 20:49:42 -07:00
4124d1ae4e Clean up some pylint warnings in interface/color.py 2022-05-16 20:49:28 -07:00
d5f6cbe73a Clean up some pylint warnings in messages.py
Add a module doc string
Remove an extraneous else:
2022-05-16 20:49:01 -07:00
e5485300ef Rename interface.bar.Bar -> interface.percentage_bar.PercentageBar 2022-05-16 16:47:21 -07:00
6e0112fd59 Add some documentation to the things in object.py 2022-05-16 16:40:45 -07:00
18a068cff6 Add some more basic colors and some semantic colors for the Health Bar 2022-05-16 16:40:29 -07:00
11aee12320 Add colors attribute to Bar class
This list lets you specify a set of colors that the bar should be painted with
depending on the percentage the bar is filled
2022-05-16 16:40:04 -07:00
6073454ed3 Add line 1 comment to interface/__init__.py 2022-05-16 16:39:19 -07:00
85569595a9 FIX THE COLLISION DETECTION BUG 2022-05-15 19:58:39 -07:00
d4e4684694 Show Entity under mouse cursor in a line above the hit points 2022-05-15 16:50:24 -07:00
4e585a2650 Implement passive healing 2022-05-15 16:19:03 -07:00
ccd2e04d0e Doc strings in Messages module 2022-05-15 16:18:42 -07:00
8239b22157 Allow fg and bg as variable names 2022-05-15 16:03:47 -07:00
9f27899572 Print some messages when damage and death happen! 2022-05-15 13:58:37 -07:00
72cbd15fb0 Render the MessageLog and clean up the interface (lots of math errors here) 2022-05-15 13:58:26 -07:00
08ef1af4e4 Add a MessageLog that keeps a record of in-game events 2022-05-15 13:58:06 -07:00
ff6763d354 Add a unique identifier to all entities (a monotonically increasing integer) 2022-05-15 13:57:32 -07:00