Basic weapon framework