public int calcElevation(IHex current, IHex next) { return calcElevation(current,next,elevation);
public int calcElevation(IHex current, IHex next, int assumedElevation) { int retVal = assumedElevation; if ((getMovementMode() == IEntityMovementMode.SUBMARINE) || (getMovementMode() == IEntityMovementMode.VTOL)) { retVal += current.surface(); retVal -= next.surface(); } if ((getMovementMode() != IEntityMovementMode.HOVER) && (getMovementMode() != IEntityMovementMode.NAVAL) && (getMovementMode() != IEntityMovementMode.HYDROFOIL) && (getMovementMode() != IEntityMovementMode.SUBMARINE) && (getMovementMode() != IEntityMovementMode.VTOL)) { if (current.containsTerrain(Terrains.WATER)) { if(!(current.containsTerrain(Terrains.ICE)) || assumedElevation < 0) {  retVal += current.terrainLevel(Terrains.WATER); } } if (next.containsTerrain(Terrains.WATER)) { int waterLevel = next.terrainLevel(Terrains.WATER); if(next.containsTerrain(Terrains.ICE)) {    if(waterLevel <= 2 || assumedElevation >= 0) { retVal += waterLevel; } } retVal -= waterLevel; } } return retVal;
    public int calcElevation(IHex current, IHex next) {        return calcElevation(current,next,elevation);    }