&& !(curHex.containsTerrain(Terrains.ICE) && getElevation() >= 0)
&& !(curHex.containsTerrain(Terrains.ICE) && step.getElevation() >= 0)
    public PilotingRollData checkWaterMove(MoveStep step, IHex curHex,                                           Coords lastPos, Coords curPos,                                           boolean isPavementStep) {        if (curHex.terrainLevel(Terrains.WATER) > 0            && !(curHex.containsTerrain(Terrains.ICE) && getElevation() >= 0)            && !lastPos.equals(curPos)            && step.getMovementType() != IEntityMovementType.MOVE_JUMP            && getMovementMode() != IEntityMovementMode.HOVER            && getMovementMode() != IEntityMovementMode.VTOL            && getMovementMode() != IEntityMovementMode.NAVAL            && getMovementMode() != IEntityMovementMode.HYDROFOIL            && getMovementMode() != IEntityMovementMode.SUBMARINE            && !isPavementStep) {            return checkWaterMove(curHex.terrainLevel(Terrains.WATER));        } else {            return checkWaterMove(0);        }    }