Refactored WeaponObject