Made a doom gun; edited LevelController to remove destroyed non-zappy actors from the map.
Added in restriction to UIScreenSelectTool - cannot select a tool if on CD, no energy. Added in win condition (no Adversary objects on map) to LevelController. Placeholdder win condition.
Okay, so. The thing was, if you killed the last enemy, the game end screen did not come up, because it never backtraced to UIScreenLevel.handle_order() to return the defeat screen because that's not what it does. So, I added code in UIController to push the return from UIScreen.destruct() onto the stack if it's not None, and then renamed some things, and it works but is hacky and makes destruct_returns_screen() inconsistent with activate() and deactivate(). It was that or restructure how I do the screens completely...
I was getting annoyed by all the unnecessary printing that I'd put in and never took out (my fault really); went through and removed print statements/changed to warnings where appropriate.
I'm going to put in a faction system for Actors; class outlined, test for adding written.
The Faction file is done. Now - what to do about integrating it into Actor? First, should remove the player_controlled variable (functionality is eclipsed by faction system). Also, add accessor for faction name.