if (nDist <= 6) return true;
if ( nDist <= range ) return true;
    public static boolean isAffectedByECM(Entity ae, Coords a, Coords b) {                if (a == null || b == null) return false;                // Only grab enemies with active ECM        Vector vEnemyCoords = new Vector(16);        for (Enumeration e = ae.game.getEntities(); e.hasMoreElements(); ) {            Entity ent = (Entity)e.nextElement();            if (ent.isEnemyOf(ae) && ent.hasActiveECM() && ent.getPosition() != null) {                vEnemyCoords.addElement(ent.getPosition());            }        }                // none?  get out of here        if (vEnemyCoords.size() == 0) return false;                // get intervening Coords.  See the comments for intervening() and losDivided()        Coords[] coords = intervening(a, b);        boolean bDivided = (a.degree(b) % 60 == 30);        for (Enumeration e = vEnemyCoords.elements(); e.hasMoreElements(); ) {            Coords c = (Coords)e.nextElement();            int nLastDist = -1;                        // loop through intervening hexes and see if any of them are within range            for (int x = 0; x < coords.length; x++) {                int nDist = c.distance(coords[x]);                                if (nDist <= 6) return true;                                // optimization.  if we're getting farther away, forget it                // but ignore the doubled-up hexes intervening() adds along hexlines                if (!bDivided || (x % 3 == 0)) {                    if (nLastDist == -1) {                        nLastDist = nDist;                    }                    else if (nDist > nLastDist) {                        break;                    }                }            }        }        return false;    }    