public static boolean tryGoingToRepairIfNeeded(Unit unit) {

		// Only wounded mechanical units should consider being repaired
		if (!unit.isWounded() || !unit.isRepairable()) {
			return false;
		}

		if (!isUnitReallyWoundedAndNotAScratch(unit)) {
			return false;
		}

		// =========================================================
		// Issue an ticket to repair this unit
		RepairAndSons.tryIssuingRepairOrderIfPossible(unit);

		// Go to repairer if distance is big
		Unit repairerForUnit = getRepairerForUnit(unit);
		if (repairerForUnit != null) {
			if (repairerForUnit.distanceTo(unit) > 3) {
				UnitActions.moveTo(unit, repairerForUnit);
				return true;
			}
		}
		// else {
		// System.out.println("TEST no repairer for " + unit.toStringType());
		// }
		return false;
	}