Added a moves cost and check to tool, added test in testTool. Also - why was LevelController.zappy_attempt_move returning, of all things, self?
UIScreenTargetLocation almost done; just need to work out the drawing (why does it not matter which order the underlying screens are drawn in?) and the hook up UIScreenTargetEntity to the factory so I can call it.
Okay, I'm stupid. It's because (duh) the head was drawing over the older layer by invoking camera.draw(). Yup.
Added UIScreen.activate() UIScreen.deactivate() called when entering, exiting, so that the screens know when they're Head or not.
Added a destrut() function to UIScreen; hooked everything together so that you can now use a tool on an entity; edited the 'can use on' code - my system of TYPE_ACTOR TYPE_ENTITY is messed up, and if I add any more will become labarynthine, so I should consider revising that.