I'm going to approve your script, but there's a couple things...
1. Stop deleting all of your code every time you change anything, it makes my life VERY difficult.
2. A lot of the things you're doing are already included in our API (Execution, Health, etc).
3. Look into using RegionPaths occasionally, they're better than Bresenham paths when available (although they aren't always available).