I'm not sure I like this solution. The gun knows a lot more now (which faction it belongs to etc), yet the BC asks. On the other hand, regarding the far more important (and restricting) field of aim, is checked by the gun (fireAtPoint) itself AFTER the FF test has run...
Either the BC should do (at least ask[call]) both checks, or the gun IMO