&& !(this instanceof Mech))
&& !(this instanceof Mech) && !(this instanceof Protomech))
    public boolean isElevationValid(int assumedElevation, IHex hex) {        int altitude = assumedElevation + hex.surface();        if(getMovementMode() == IEntityMovementMode.VTOL) {            if(hex.containsTerrain(Terrains.WOODS) || hex.containsTerrain(Terrains.WATER) || hex.containsTerrain(Terrains.JUNGLE)) {                return (assumedElevation <=50 && altitude > hex.ceiling());            } else {                return (assumedElevation <=50 && altitude >= hex.ceiling());            }        } else if (getMovementMode() == IEntityMovementMode.SUBMARINE) {            return (altitude >= hex.floor() && altitude <= hex.surface());        } else if (getMovementMode() == IEntityMovementMode.HYDROFOIL                || getMovementMode() == IEntityMovementMode.NAVAL){            return altitude == hex.surface();        } else {            //regular ground units            if(hex.containsTerrain(Terrains.ICE)                    || (getMovementMode() == IEntityMovementMode.HOVER && hex.containsTerrain(Terrains.WATER))) {                //surface of ice is OK, surface of water is OK for hovers                if(altitude == hex.surface()) return true;            }            //only mechs can move underwater            if(hex.containsTerrain(Terrains.WATER)                     && altitude < hex.surface()                    && !(this instanceof Mech))                 return false;            // can move on the ground unless its underwater            if(altitude == hex.floor()) return true;            if(hex.containsTerrain(Terrains.BRIDGE)) {                //can move on top of a bridge                if(assumedElevation == hex.terrainLevel(Terrains.BRIDGE_ELEV)) return true;            }            if(hex.containsTerrain(Terrains.BUILDING)) {                //Mechs, protos and infantry can occupy any floor in the building                if(this instanceof Mech || this instanceof Protomech || this instanceof Infantry) {                    if(altitude >= hex.floor() && altitude <= hex.ceiling()) return true;                }            }        }        return false;    }