if ( hasVibroblades() ) return true;
    public boolean isEligibleForPhysical() {        boolean canHit = false;        boolean friendlyFire = game.getOptions().booleanOption("friendly_fire");        // only mechs and protos have physical attacks (except tank charges)        if (!(this instanceof Mech || this instanceof Protomech || this instanceof Infantry)) {            return false;        }        // if you're charging or finding a club, it's already declared        if (isUnjammingRAC()            || isCharging()            || isMakingDfa()            || isFindingClub()            || isSpotting()            || isOffBoard()            || isAssaultDropInProgress()) {            return false;        }        // check game options        if (game.getOptions().booleanOption("no_clan_physical") &&            isClan() &&            !hasINarcPodsAttached() &&            getSwarmAttackerId()==NONE) {            return false;        }        if (!game.getOptions().booleanOption("skip_ineligable_physical")) {            return true;        }        // dead mek walking        if (!isActive()) {            return false;        }                if(getPosition() == null) {            return false; //not on board?        }                // check if we have iNarc pods attached that can be brushed off        if (hasINarcPodsAttached() && this instanceof Mech) {            return true;        }        // Try to find a valid entity target.        Enumeration e = game.getEntities();        while ( !canHit && e.hasMoreElements() ) {            Entity target = (Entity)e.nextElement();            // don't shoot at friendlies unless you are into that sort of thing            // and do not shoot yourself even then            if (!(isEnemyOf(target) || (friendlyFire && getId() != target.getId() ))) {                continue;            }            // No physical attack works at distances > 1.            if ( target.getPosition() == null ||                 getPosition().distance(target.getPosition()) > 1 ) {                continue;            }            canHit |= Compute.canPhysicalTarget(game, getId(), target);            // check if we can dodge and target can attack us,            // then we are eligible.            canHit |= ( this instanceof Mech && !isProne() &&                     getCrew().getOptions().booleanOption("dodge_maneuver") &&                    Compute.canPhysicalTarget(game, target.getId(), this) );        }        // If there are no valid Entity targets, check for add valid buildings.        Enumeration bldgs = game.getBoard().getBuildings();        while ( !canHit && bldgs.hasMoreElements() ) {            final Building bldg = (Building) bldgs.nextElement();            // Walk through the hexes of the building.            Enumeration hexes = bldg.getCoords();            while ( !canHit && hexes.hasMoreElements() ) {                final Coords coords = (Coords) hexes.nextElement();                // No physical attack works at distances > 1.                if ( getPosition().distance(coords) > 1 ) {                    continue;                }                // Can the entity target *this* hex of the building?                final BuildingTarget target = new BuildingTarget( coords,                                                                  game.getBoard(),                                                                  false );                canHit |= Compute.canPhysicalTarget(game, getId(), target);            } // Check the next hex of the building        } // Check the next building        return canHit;    }