public void launchMissile() throws InterruptedException {
		// create launcher destructor missile
		createMissile();

		// sleep for launch time;
		sleep(Utils.LAUNCH_DURATION);

		if (toDestroy != null && toDestroy.isAlive() && !toDestroy.getIsHidden()) {
			// Throw event
			fireLaunchMissileEvent(currentMissile.getMissileId());

			// Start missile and wait until he will finish to be able
			// to shoot anther one
			currentMissile.start();
			currentMissile.join();
		}
		else{
			if (toDestroy.getIsHidden()){
				fireLauncherIsHiddenEvent(toDestroy.getLauncherId());
			}
			else{
				fireLauncherNotExist(toDestroy.getLauncherId());
			}
		}
	}