4084d98efd 
								
							 
						 
						
							
							
								
								Clean up Action processing a little bit  
							
							 
							
							... 
							
							
							
							- Sort entities by their Euclidean distance to the hero so actions from entities
  near the hero are processed first
- Fewer local variables for cleaner reading
- Pass hero into the RegerateRoomsAction, which was causing a pylint error 
							
						 
						
							2022-05-12 08:53:26 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								70c17b6235 
								
							 
						 
						
							
							
								
								Condense the declaration of engine.hero; add a FIXME  
							
							 
							
							
							
						 
						
							2022-05-12 08:49:46 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e4f8aa5e80 
								
							 
						 
						
							
							
								
								Clean up the __str__ for a few Action subclasses  
							
							 
							
							
							
						 
						
							2022-05-12 08:48:28 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6f1d68db20 
								
							 
						 
						
							
							
								
								Update the logging config  
							
							 
							
							
							
						 
						
							2022-05-12 08:46:59 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e9db004a7a 
								
							 
						 
						
							
							
								
								Add Point.euclidean_distance_to()  
							
							 
							
							... 
							
							
							
							Does what it says on the tin. 
							
						 
						
							2022-05-12 08:46:45 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								99ca090448 
								
							 
						 
						
							
							
								
								Remove a newline  
							
							 
							
							
							
						 
						
							2022-05-11 08:08:47 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a4adbcca85 
								
							 
						 
						
							
							
								
								Add RenderOrder to Entity  
							
							 
							
							... 
							
							
							
							This enum dictates what order an entity
will be rendered in. 
							
						 
						
							2022-05-11 07:59:54 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7820adf057 
								
							 
						 
						
							
							
								
								Generate entities in rooms at different locations  
							
							 
							
							... 
							
							
							
							Prior to this change, entities in rooms would always be spawned on the
same tile. 
							
						 
						
							2022-05-11 07:57:28 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c9b86271d3 
								
							 
						 
						
							
							
								
								Remove these two logging messages  
							
							 
							
							... 
							
							
							
							They aren't serving a good purpose. 
							
						 
						
							2022-05-11 07:55:47 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2762933c83 
								
							 
						 
						
							
							
								
								Configure logging with logging_config.json  
							
							 
							
							... 
							
							
							
							See https://docs.python.org/3/library/logging.config.html  for details on
the schema for this file. 
							
						 
						
							2022-05-11 07:52:35 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8849a9de73 
								
							 
						 
						
							
							
								
								Allow 'hp' as a valid variable name  
							
							 
							
							
							
						 
						
							2022-05-11 07:50:35 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bc46856117 
								
							 
						 
						
							
							
								
								Every action needs an actor, even ExitAction  
							
							 
							
							
							
						 
						
							2022-05-08 23:45:20 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								17bad9fd4d 
								
							 
						 
						
							
							
								
								Don't try to Melee entities that don't block movement  
							
							 
							
							
							
						 
						
							2022-05-08 23:43:33 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7d871e52a9 
								
							 
						 
						
							
							
								
								Copy the entities set into a list before iterating it so there's no risk of modifying the array while iterating  
							
							 
							
							
							
						 
						
							2022-05-08 23:43:08 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								cef1ad25cb 
								
							 
						 
						
							
							
								
								Small cleanup of log statement  
							
							 
							
							
							
						 
						
							2022-05-08 23:42:36 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c0c8584f45 
								
							 
						 
						
							
							
								
								Implement is_adjacent_to and direction_to_adjacent_point on Point  
							
							 
							
							
							
						 
						
							2022-05-08 23:42:24 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2266511ec5 
								
							 
						 
						
							
							
								
								Implement attacking and reducing hit points  
							
							 
							
							... 
							
							
							
							Attacks are computed with attack_power and defense. When an Actor dies,
a DieAction is produced and possibly also a DropItemAction. 
							
						 
						
							2022-05-08 23:41:54 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								aae1251660 
								
							 
						 
						
							
							
								
								Rename Action.entity -> Action.actor  
							
							 
							
							
							
						 
						
							2022-05-08 23:40:33 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b604ff30ec 
								
							 
						 
						
							
							
								
								Implement a basic AI for HostileMonster  
							
							 
							
							... 
							
							
							
							This AI will walk randomly around the dungeon (pausing periodically) and
if the Hero comes into view, will b-line and attack 
							
						 
						
							2022-05-08 23:38:48 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1f750a0c7c 
								
							 
						 
						
							
							
								
								Add an Item subclass of Entity for instances of items on the map  
							
							 
							
							
							
						 
						
							2022-05-08 23:37:31 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e8b2729353 
								
							 
						 
						
							
							
								
								Add blocks_movement to the Entity class  
							
							 
							
							
							
						 
						
							2022-05-08 23:36:56 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a13ef89832 
								
							 
						 
						
							
							
								
								Add an Item type class and a Corpse item type  
							
							 
							
							
							
						 
						
							2022-05-08 23:36:13 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								021b82c93a 
								
							 
						 
						
							
							
								
								Add an Actor subclass of Entity  
							
							 
							
							... 
							
							
							
							Make Hero and Monster subclasses of Actor 
							
						 
						
							2022-05-08 23:35:47 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7653df1e3f 
								
							 
						 
						
							
							
								
								Add Action.success() and Action.failure() helper methods to produce results for straight success and failure  
							
							 
							
							
							
						 
						
							2022-05-08 23:34:09 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								46e1a42060 
								
							 
						 
						
							
							
								
								Let Entity.ai produce its own Actions!  
							
							 
							
							
							
						 
						
							2022-05-08 10:03:28 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6bb5d819bf 
								
							 
						 
						
							
							
								
								Lots of comment and type documentation in object.py  
							
							 
							
							
							
						 
						
							2022-05-08 09:56:21 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e1562b2b2b 
								
							 
						 
						
							
							
								
								Add a Fighter component to the Hero  
							
							 
							
							
							
						 
						
							2022-05-08 09:55:56 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ee0e4b1dba 
								
							 
						 
						
							
							
								
								Instantiate Monsters with a HostileEnemy AI  
							
							 
							
							
							
						 
						
							2022-05-08 09:55:10 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								550cde6a8f 
								
							 
						 
						
							
							
								
								Allow "ai" as a variable name  
							
							 
							
							
							
						 
						
							2022-05-08 09:54:24 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								687511d69e 
								
							 
						 
						
							
							
								
								Add an ai attribute to Entity  
							
							 
							
							
							
						 
						
							2022-05-08 09:54:08 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								49b48ec7a8 
								
							 
						 
						
							
							
								
								Add a HostileEnemy AI component  
							
							 
							
							
							
						 
						
							2022-05-08 09:48:22 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								cf9ec2d17e 
								
							 
						 
						
							
							
								
								Move Monster to the object module  
							
							 
							
							
							
						 
						
							2022-05-08 09:48:05 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								cf0b120fad 
								
							 
						 
						
							
							
								
								Add a Fighter component that tracks hit points, attack power, defense, etc  
							
							 
							
							
							
						 
						
							2022-05-08 09:46:32 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f5a8a55182 
								
							 
						 
						
							
							
								
								Add WaitAction to the class hierarchy  
							
							 
							
							
							
						 
						
							2022-05-08 08:55:08 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								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