I've always been a fan of finite state machines. Of course, it would be possible to tweak it into something more complex -- or to simply stuff them all together into one loop. I think a finite state machine would work better in this instance because of how it blocks everything out nicely. There are always hooks back to a "core" behavior.
As for pathfinding, I'm only familiar with A*, but I know there are numerous other ways of doing it. I know for my autonomous critters I've created, I generally make them stupid: they move until they run into something, at which point they try to go around it. You can see a slightly more intelligent version of this here: http://www.red3d.com/cwr/steer/Obstacle.html and http://www.red3d.com/cwr/steer/Unaligned.html
I think a hook calculation would be relatively easy to factor in. We'd need formulas for how the hook extends based on distance and velocity, but from that it's a pretty trivial calculation to figure out where we're going to end up (retraction of it is based on velocity, so at a high enough speed the retraction factor is small enough to be negligible, and at other speeds it could be factored in, but it might not have to be). A possible way of programming this behavior is that if a bot chooses a target above itself, it looks to see if there's an edge nearby. If there is, plot a path at puts the bot within hook range of the edge, hook it, and spin around, then continue path. Ideally, this sort of behavior would be exhibited naturally by describing ranges of motion and allowing the bot to string them together.
One also has to factor in which weapon to use. Generally speaking, the hammer should be used only as a last resort (if all ammo is gone), with the one exception of all ammo gone except for the rocket. This way we wouldn't have to worry about the bot blowing itself up. Of course, if the bot is given a short term memory of sorts, it could take a gamble -- if it thinks the target is weak enough and the bot is healthy enough, shoot a rocket at the target in close range. If the target is within a certain range, prefer the shotgun to the pistol, especially if the target and/or the bot is moving. If one or both are stationary, the rocket may be a better choice.