public long getWeightToLowProcess(List<ShapeInArea> targets, Class<? extends MoveType> type) { long min = Long.MAX_VALUE; MoveType movetype = moves.get(type.hashCode()); for (ShapeInArea shapeInArea : targets) { if (shapeInArea .getArea(me.model()) .equals(me.me().getAreaPosition())) { // source and destination is in same area if (shapeInArea.contains(((Human) me.me()).getX(), ((Human) me.me()).getY())) { log().debug("in shape--Yoosef"); return 0; } } min = Math.min( min, movetype.getWeightToLowProcess( shapeInArea.getArea(me.model()), shapeInArea.getCenterX(), shapeInArea.getCenterY())); } if (min < 0) log().error(new Error("why it become negetive here???")); return min; }