public void run() {
		fireLauncherAddedEvent();
		
		while (isRunning) {
			synchronized (this) {
				try {
					// Wait until user try to destroy missile
					wait();
				} catch (InterruptedException ex) {
					// used for end the war
					stopRunning();
					break;
				}
			}// synchronized
			
			// with this boolean you can see if the launcher is available to use
			isBusy = true;

			// checking if the missile you would like to destroy is alive (as a thread)
			// is not null (if there is any missile) and if he isn't hidden
			try{
				if (toDestroy != null && toDestroy.isAlive() && !toDestroy.getIsHidden()) {
					launchMissile();
					
				} else {
					if (toDestroy != null)
						fireLauncherIsHiddenEvent(toDestroy.getLauncherId());
				}
			} catch (InterruptedException e) {
				//e.printStackTrace();
				stopRunning();
				break;
			}
			
			// update that the launcher is not in use
			isBusy = false;
			
			//update that there is no missile to this launcher
			currentMissile = null;
		}// while
		
		// close the handler of the logger
		WarLogger.closeMyHandler(ldId);
	}// run