General code fixes

Weapons now have types