Refactor ranged attacks.
Fix totally broken drop code!

It was dropping lots of extra items, and screwed up the probabilities. :(