implement shot explosions, and revamp damage model to use explosions