Refactor weapon scripts

Now allows rotating the weapon in either direction and also firing
ranged weapons on demand