Edited Camera to contain a list of explored cells. Only draws cells which have been explored.
Changed Actor to fix bug with tools list not assigning properly; created TemplateAdversary; moved _create_tool_list() up to Template. Note that it will return None if called on a Template which doesn't have a _tools data member.
Made a couple of adversaries for testing purposes and edited Level 1.
Edited LevelController to go through the list of entities, attempting to replenish their moves and get them to take their actions. Edited Level to create the (horribly inefficiently implemented at the moment) get_all_entities() function. You can get chased around the level by enemies now; honestly, making them faster than the player was a bad idea.
Added failure, success variables to LevelController. Edited BehaviorMoveStupid classes so that they don't actually run onto Zappy - the instead move directly adjacent and then stop.
Added hp to the Actor class. One note - it may not be a Great Idea to structure the program so that if you want to update Actor to add something (like HP), you also have to update four (FOUR!) distinct classes - Actor, Adversary, TemplateActor, and TemplateAdversary. That's cumbersome at best and horrible at worst. What kind of design changes can I make to address this problem?
Added in an attack, and allowed the player to lose. Now when the player's hit points go to zero, it pulls up UIScreenLevelEnd. Note that we now have a bug; when you select the same level, the loader returns the object already created, instead of regenerating it. Fixing next.
Added a regen_level() function to LoaderLevel, a replace_cells() function to Level, which also wipes the player_actor. Edited Camera because I was silly and put a non-static outside of the constructor. Finally, edited UIScreenMenuLevel to regen the level. It now properly refreshes if you re-enter.
Now it tells you you've lost. Also, for some reason, you don't need to store the pyglet labels - internal label ref in the module somewhere, perhaps?
Going to add in a ranged attack; to do so, require a functioning LOS algorithm. Repurposes existing LOS algorithm for ZappyAlgs.check_LOS().
Added a ranged attack; added checks for available moves for attacks. For some reason the ranged attack only fires once, though, when it should be firing twice...
I forgot that _can_execute was supposed to return. Fixed that; works properly now.