public NPC[] getSpawns() {
		int npcs[] = new int[6];
		int index = 0;
		int id = stage;
		for (int i = 6; i >= 1; i--) {
			int threshold = (1 << i) - 1;
			if (id >= threshold) {
				for (int j = 0; j <= id / threshold; j++) {
					npcs[index++] = BASE_NPCS[i - 1]
							+ (i == 6 ? 0 : RANDOM.nextInt(2));
					id -= threshold;
				}

			}
		}

		FightCaveNPC enemies[] = new FightCaveNPC[index];
		for (int i = 0; i < enemies.length; i++) {
			int random = Misc.random(3);
			switch (random) {
			case 0: // '\0'
				enemies[i] = new FightCaveNPC(npcs[i], new WorldTile(
						2399 - Misc.random(3), 5086 - Misc.random(3), 0));
				break;

			case 1: // '\001'
				enemies[i] = new FightCaveNPC(npcs[i], new WorldTile(
						2399 + Misc.random(3), 5086 + Misc.random(3), 0));
				break;

			case 2: // '\002'
				enemies[i] = new FightCaveNPC(npcs[i], new WorldTile(
						2399 - Misc.random(3), 5086 + Misc.random(3), 0));
				break;

			case 3: // '\003'
				enemies[i] = new FightCaveNPC(npcs[i], new WorldTile(
						2399 + Misc.random(3), 5086 - Misc.random(3), 0));
				break;
			}
		}

		return enemies;
	}