if (mounted.isDestroyed() || !locationIsLeg(mounted.getLocation())) {
if (mounted.isDestroyed() || mounted.isBreached() || !locationIsLeg(mounted.getLocation())) {
    private int sinksUnderwater() {        if (getPosition() == null) {            return 0;        }                Hex curHex = game.board.getHex(getPosition());        // are we even in water?  is it depth 1+        if (curHex.levelOf(Terrain.WATER) <= 0) {            return 0;        }                // are we entirely underwater?        if (isProne() || curHex.levelOf(Terrain.WATER) >= 2) {            return getHeatCapacity();        }                // okay, count leg sinks        int sinksUnderwater = 0;        for (Enumeration i = miscList.elements(); i.hasMoreElements();) {            Mounted mounted = (Mounted)i.nextElement();            if (mounted.isDestroyed() || !locationIsLeg(mounted.getLocation())) {                continue;            }            if (mounted.getType().hasFlag(MiscType.F_HEAT_SINK)) {                sinksUnderwater++;            } else if (mounted.getType().hasFlag(MiscType.F_DOUBLE_HEAT_SINK)) {                sinksUnderwater += 2;            }        }        return sinksUnderwater;    }