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
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
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
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
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
090272854d
Add a turn count that increments after successfully handling actions for that turn
2022-05-15 13:13:12 -07:00
5a9df0a322
Add my first interface element: a Bar!
...
It renders a bar of a certain width and a percentage full. Use it to render HP.
Add a new Python package called interface. The Bar class lives there. Also add a
bunch of color defintions to a module called interface.color.
2022-05-15 00:12:05 -07:00
388754e5dd
When the Hero dies, swap MainGameEventHandler for GameOverEventHandler
2022-05-14 23:43:38 -07:00
e5b3cbd2cd
Prepare for a GameOver state
...
- Factor a bunch of event handling into a base EventHandler class
- Rename the previous event handler MainGameEventHandler
- Add a GameOverEventHandler that only responds to Exit actions
2022-05-14 23:43:04 -07:00
5b0b33782f
Move handling hero actions and entity actions to the Engine
2022-05-14 23:41:43 -07:00
c44c4e7bc6
Move the event loop to Engine.run_event_loop()
2022-05-14 23:39:03 -07:00
2b367c7bb6
Quit the game on Escape
2022-05-12 20:40:46 -07:00
ee915bd7c1
Add a doc string and a terminal newline
2022-05-12 20:40:40 -07:00
ce63c825b0
Move all the logging to log.py and prefix all the log names with "erynrl"
2022-05-12 20:40:15 -07:00
f6fe9d0f09
Move the roguebasin package to erynrl
2022-05-12 09:05:27 -07:00