@@ -1276,7 +1276,7 @@ private static String toHitIsImpossible(Game game, Entity ae, int attackerId, Ta
12761276 boolean networkFiringSolution = false ;
12771277 //Check to see if the attacker has a firing solution. Naval C3 networks share targeting data
12781278 if (ae .hasNavalC3 () && te != null
1279- && game .getC3NetworkMembers (ae ).stream ().anyMatch (en -> en .hasFiringSolutionFor (te .getId ())) {
1279+ && game .getC3NetworkMembers (ae ).stream ().anyMatch (en -> en .hasFiringSolutionFor (te .getId ()))) {
12801280 networkFiringSolution = true ;
12811281 }
12821282 if (!networkFiringSolution ) {
@@ -1299,15 +1299,14 @@ private static String toHitIsImpossible(Game game, Entity ae, int attackerId, Ta
12991299 && (te != null ) && te .hasSeenEntity (ae .getOwner ()))
13001300 && !isArtilleryIndirect && !isIndirect && !isBearingsOnlyMissile ) {
13011301 boolean networkSee = false ;
1302- if (ae .hasC3 () || ae .hasC3i () || ae .hasActiveNovaCEWS ()) {
1302+ if (ae .hasC3 () || ae .hasC3i () || ae .hasActiveNovaCEWS ()
1303+ && game .getEntitiesVector ().stream ().anyMatch (en ->
1304+ !en .isEnemyOf (ae )
1305+ && en .onSameC3NetworkAs (ae )
1306+ && Compute .canSee (game , en , target ))) {
13031307 // c3 units can fire if any other unit in their network is in
13041308 // visual or sensor range
1305- for (Entity en : game .getEntitiesVector ()) {
1306- if (!en .isEnemyOf (ae ) && en .onSameC3NetworkAs (ae ) && Compute .canSee (game , en , target )) {
1307- networkSee = true ;
1308- break ;
1309- }
1310- }
1309+ networkSee = true ;
13111310 }
13121311 if (!networkSee ) {
13131312 if (!Compute .inSensorRange (game , ae , target , null )) {
0 commit comments