public void startWave() {
		if(stage != Stages.RUNNING)
			return;
		int currentWave = getCurrentWave();
		player.getInterfaceManager().sendTab(player.getInterfaceManager().hasRezizableScreen() ? 11 : 0, 316);
		player.getPackets().sendConfig(639, currentWave);
		if(currentWave > WAVES.length) {
			if(currentWave == 37) 
				aliveNPCSCount = 1;
			return;
		}else if (currentWave == 0) {
			exitCave(1);
			return;
		}
		aliveNPCSCount = WAVES[currentWave-1].length;
		for(int i = 0; i <  WAVES[currentWave-1].length; i += 4) {
			final int next = i;
			CoresManager.fastExecutor.schedule(new TimerTask() {
				@Override
				public void run() {
					try {
						if(stage != Stages.RUNNING)
							return;
						spawn(next);
					} catch (Throwable e) {
						Logger.handle(e);
					}
				}
			}, (next / 4) * 4000);
		}
	}