public void createMissile() { // generate missile id String MissileId = IdGenerator.defenseDestractorLauncherMissileIdGenerator(type.charAt(0)); // create new missile currentMissile = new DefenseDestructorMissile(MissileId, toDestroy, this, statistics); // register all listeners for (WarEventListener l : allListeners) currentMissile.registerListeners(l); }
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()); } } }