@@ -456,48 +456,41 @@ private static ToHitData toHitCalc(Game game, int attackerId, Targetable target,
456
456
&& (munition .contains (AmmoType .Munitions .M_FOLLOW_THE_LEADER )
457
457
&& !ComputeECM .isAffectedByECM (ae , ae .getPosition (), target .getPosition ()));
458
458
459
- Mounted mLinker = weapon . getLinkedBy () ;
459
+ Mounted mLinker ;
460
460
461
- boolean bApollo = ((mLinker != null ) && (mLinker .getType () instanceof MiscType ) && !mLinker .isDestroyed ()
462
- && !mLinker .isMissing () && !mLinker .isBreached () && mLinker .getType ().hasFlag (MiscType .F_APOLLO ))
463
- && (atype != null ) && (atype .getAmmoType () == AmmoType .T_MRM );
461
+ boolean bApollo ;
464
462
465
- boolean bArtemisV = ((mLinker != null ) && (mLinker .getType () instanceof MiscType ) && !mLinker .isDestroyed ()
466
- && !mLinker .isMissing () && !mLinker .isBreached () && mLinker .getType ().hasFlag (MiscType .F_ARTEMIS_V )
467
- && !isECMAffected && !bMekTankStealthActive && (atype != null )
468
- && (munition .contains (AmmoType .Munitions .M_ARTEMIS_V_CAPABLE )));
463
+ boolean bArtemisV ;
469
464
470
- if (ae .usesWeaponBays ()) {
471
- for (WeaponMounted bayW : weapon .getBayWeapons ()) {
472
- Mounted <?> bayWAmmo = bayW .getLinked ();
465
+ (ae .usesWeaponBays () ? weapon .streamBayWeapons () : Stream .of (weapon )).forEach (bayW ->
466
+ Mounted bayWAmmo = bayW .getLinked ();
473
467
474
- if (bayWAmmo == null ) {
475
- //At present, all weapons below using mLinker use ammo, so this won't be a problem
476
- continue ;
477
- }
478
- AmmoType bAmmo = (AmmoType ) bayWAmmo .getType ();
468
+ if (bayWAmmo == null ) {
469
+ //At present, all weapons below using mLinker use ammo, so this won't be a problem
470
+ return ;
471
+ }
472
+ AmmoType bAmmo = (AmmoType ) bayWAmmo .getType ();
479
473
480
- //If we're using optional rules and firing Arrow Homing missiles from a bay...
481
- isHoming = bAmmo != null && bAmmo .getMunitionType ().contains (AmmoType .Munitions .M_HOMING );
474
+ //If we're using optional rules and firing Arrow Homing missiles from a bay...
475
+ isHoming = bAmmo != null && bAmmo .getMunitionType ().contains (AmmoType .Munitions .M_HOMING );
482
476
483
- //If the artillery bay is firing cruise missiles, they have some special rules
484
- //It is possible to combine cruise missiles and other artillery in a bay, so
485
- //set this to true if any of the weapons are cruise missile launchers.
486
- if (bayW .getType ().hasFlag (WeaponType .F_CRUISE_MISSILE )) {
487
- isCruiseMissile = true ;
488
- }
477
+ //If the artillery bay is firing cruise missiles, they have some special rules
478
+ //It is possible to combine cruise missiles and other artillery in a bay, so
479
+ //set this to true if any of the weapons are cruise missile launchers.
480
+ if (bayW .getType ().hasFlag (WeaponType .F_CRUISE_MISSILE )) {
481
+ isCruiseMissile = true ;
482
+ }
489
483
490
- mLinker = bayW .getLinkedBy ();
491
- bApollo = ((mLinker != null ) && (mLinker .getType () instanceof MiscType ) && !mLinker .isDestroyed ()
492
- && !mLinker .isMissing () && !mLinker .isBreached () && mLinker .getType ().hasFlag (MiscType .F_APOLLO ))
493
- && (bAmmo != null ) && (bAmmo .getAmmoType () == AmmoType .T_MRM );
484
+ mLinker = bayW .getLinkedBy ();
485
+ bApollo = ((mLinker != null ) && (mLinker .getType () instanceof MiscType ) && !mLinker .isDestroyed ()
486
+ && !mLinker .isMissing () && !mLinker .isBreached () && mLinker .getType ().hasFlag (MiscType .F_APOLLO ))
487
+ && (bAmmo != null ) && (bAmmo .getAmmoType () == AmmoType .T_MRM );
494
488
495
- bArtemisV = ((mLinker != null ) && (mLinker .getType () instanceof MiscType ) && !mLinker .isDestroyed ()
496
- && !mLinker .isMissing () && !mLinker .isBreached () && mLinker .getType ().hasFlag (MiscType .F_ARTEMIS_V )
497
- && !isECMAffected && !bMekTankStealthActive && (atype != null )
498
- && (bAmmo != null ) && (bAmmo .getMunitionType ().contains (AmmoType .Munitions .M_ARTEMIS_V_CAPABLE )));
499
- }
500
- }
489
+ bArtemisV = ((mLinker != null ) && (mLinker .getType () instanceof MiscType ) && !mLinker .isDestroyed ()
490
+ && !mLinker .isMissing () && !mLinker .isBreached () && mLinker .getType ().hasFlag (MiscType .F_ARTEMIS_V )
491
+ && !isECMAffected && !bMekTankStealthActive && (atype != null )
492
+ && (bAmmo != null ) && (bAmmo .getMunitionType ().contains (AmmoType .Munitions .M_ARTEMIS_V_CAPABLE )));
493
+ );
501
494
502
495
boolean inSameBuilding = Compute .isInSameBuilding (game , ae , te );
503
496
0 commit comments