private static boolean canCompleteNodePath(Entity start,Entity end,ArrayList<Entity> network,int startPosition,List<ECMInfo> allECMInfo){
  Entity spotter=network.get(startPosition);
  ECMInfo spotterStartECM=ComputeECM.getECMEffects(spotter,start.getPosition(),spotter.getPosition(),true,allECMInfo);
  boolean isC3BDefeated=start.hasBoostedC3() && (spotterStartECM != null) && spotterStartECM.isAngelECM();
  boolean isNovaDefeated=start.hasNovaCEWS() && (spotterStartECM != null) && spotterStartECM.isNovaECM();
  boolean isC3Defeated=!(start.hasBoostedC3() || start.hasNovaCEWS()) && (spotterStartECM != null) && spotterStartECM.isECM();
  if (isC3BDefeated || isNovaDefeated || isC3Defeated) {
    return false;
  }
  ECMInfo spotterEndECM=ComputeECM.getECMEffects(spotter,spotter.getPosition(),end.getPosition(),true,allECMInfo);
  isC3BDefeated=start.hasBoostedC3() && (spotterEndECM != null) && spotterEndECM.isAngelECM();
  isNovaDefeated=start.hasNovaCEWS() && (spotterEndECM != null) && spotterEndECM.isNovaECM();
  isC3Defeated=!(start.hasBoostedC3() || start.hasNovaCEWS()) && (spotterEndECM != null) && spotterEndECM.isECM();
  if (!(isC3BDefeated || isNovaDefeated || isC3Defeated)) {
    return true;
  }
  for (++startPosition; startPosition < network.size(); startPosition++) {
    if (Compute.canCompleteNodePath(spotter,end,network,startPosition,allECMInfo)) {
      return true;
    }
  }
  return false;
}

private static boolean canCompleteNodePath ( Entity start , Entity end , ArrayList < Entity > network , int startPosition , List < ECMInfo > allECMInfo ) { Entity spotter = network . get ( startPosition ) ; ECMInfo spotterStartECM = ComputeECM . getECMEffects ( spotter , start . getPosition ( ) , spotter . getPosition ( ) , true , allECMInfo ) ; boolean isC3BDefeated = start . hasBoostedC3 ( ) && ( spotterStartECM != null ) && spotterStartECM . isAngelECM ( ) ; boolean isNovaDefeated = start . hasNovaCEWS ( ) && ( spotterStartECM != null ) && spotterStartECM . isNovaECM ( ) ; boolean isC3Defeated = ! ( start . hasBoostedC3 ( ) || start . hasNovaCEWS ( ) ) && ( spotterStartECM != null ) && spotterStartECM . isECM ( ) ; if ( isC3BDefeated || isNovaDefeated || isC3Defeated ) { return false ; } ECMInfo spotterEndECM = ComputeECM . getECMEffects ( spotter , spotter . getPosition ( ) , end . getPosition ( ) , true , allECMInfo ) ; isC3BDefeated = start . hasBoostedC3 ( ) && ( spotterEndECM != null ) && spotterEndECM . isAngelECM ( ) ; isNovaDefeated = start . hasNovaCEWS ( ) && ( spotterEndECM != null ) && spotterEndECM . isNovaECM ( ) ; isC3Defeated = ! ( start . hasBoostedC3 ( ) || start . hasNovaCEWS ( ) ) && ( spotterEndECM != null ) && spotterEndECM . isECM ( ) ; if ( ! ( isC3BDefeated || isNovaDefeated || isC3Defeated ) ) { return true ; } for ( ++ startPosition ; startPosition < network . size ( ) ; startPosition ++ ) { if ( Compute . canCompleteNodePath ( spotter , end , network , startPosition , allECMInfo ) ) { return true ; } } return false ; }
looks through the network list to ensure that the given entity is connected to the network .
