Better cannon logic