public static void circleAroundEnemyBaseWith(Unit explorer, MapPoint aroundThisPoint) {
		// System.out.println("$$$$ " + explorer.toStringShort() + " / "
		// + enemyBase.toStringLocation());
		if (explorer == null || aroundThisPoint == null) {
			return;
		}

		// Define explorer action according to the last action
		MapPoint tryGoTo = defineGoToPointAccordingToPhase(aroundThisPoint, _circlingEnemyBasePhase);

		// Paint destination for this unit
		explorer.setPainterGoTo(tryGoTo);

		// =========================================================

		// Move to the proper point
		tryGoTo = Map.getClosestWalkablePointTo(tryGoTo);
		if (tryGoTo != null) {
			UnitActions.moveTo(explorer, tryGoTo);
			explorer.setAiOrder("Around the base! (" + _circlingEnemyBasePhase + ")");
		}

		// if already near the point, update the circling phase
		if (explorer.distanceTo(tryGoTo) <= 2 || !explorer.isMoving() || tryGoTo == null
				|| _circlingEnemyBasePhase == 0) {
			_circlingEnemyBasePhase++;
			if (_circlingEnemyBasePhase > 4) {
				_circlingEnemyBasePhase = 1;
			}
		}
	}