private void intercept() {
		// only one missile will be hit at iron dome
		synchronized (missile) {
			// calculate to know if missile will be intercept before he will hit
			// the ground
			if (destructAfterLaunch < missile.getFlyTime()
					+ missile.getLaunchTime()
					&& missile.getLaunchTime() <= destructAfterLaunch) {
				// check if missile is live and if he already launched
				if (missile.alive()
						&& missile.getMode() == EnemyMissile.Mode.Launched) {
					War.theLogger.log(
							Level.INFO,
							" Iron dome #" + father.getDomeId()
									+ " intercepted missile #"
									+ missile.getID(), father);
					War.theLogger.log(
							Level.INFO,
							" Iron dome #" + father.getDomeId()
									+ " intercepted missile #"
									+ missile.getID(), missile.getFather());
					missile.setIsAlive(false);
					// remove the destroyed missile from his launcher
					missile.getFather().removeMissile(missile);
					// Setting status to intercept
					this.status = Status.Intercept;
					missile.interrupt(); // stop thread sleep if missile is
					// intercepted

				} else if (missile.alive()
						&& missile.getMode() == EnemyMissile.Mode.Launched) {
					War.theLogger.log(Level.INFO,
							" Iron dome #" + father.getDomeId()
									+ " failed to intercept missile #"
									+ missile.getID(), father);
					War.theLogger.log(
							Level.INFO,
							" Iron dome #" + father.getDomeId()
									+ " failed to intercept #"
									+ missile.getID(), missile.getFather());
					// Setting enum status to missed
					this.status = Status.missed;
				}
			}

		}
	}