Refactored gun code out of NPCShip into Gun