Commit graph

198 commits

Author SHA1 Message Date
253db06683 Add the --sandbox argument to the default run config 2023-02-12 14:29:11 -08:00
2851ce36a0 Update virtualenv requirements 2023-02-12 14:28:57 -08:00
d8275725b8 Allow many more (30) attempts at generating a random rect for the RandomRectRoomGenerator 2023-02-12 14:28:42 -08:00
cf31bcc272 Create a more semantic Size.numpy_shape property 2023-02-12 14:28:14 -08:00
84f7bdb947 Little grammar fix in RenderOrder's doc comment 2023-02-12 14:24:56 -08:00
06ae79ccd0 Redo the configuration metchanism
- Allow passing a font on the command line via --font
- Move the engine configuration to its own module
- Redo entirely the font configuration: move it to the configuration module
- Pass the configuration object to the Map in place of the size argument
2023-02-12 14:24:36 -08:00
6780b0495c Move all the interface stuff to interface.Interface
Draw three windows with frames:
- map window
- info window (hit point bar; turn count)
- message window

Clean up the UI code in the Engine.
2023-02-11 01:21:52 -08:00
df4df06013 Fix this import in ai.py 2023-02-10 22:37:26 -08:00
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