diff --git a/resources/res/settings.yml b/resources/res/settings.yml index 37c331d..bda2174 100644 --- a/resources/res/settings.yml +++ b/resources/res/settings.yml @@ -4,6 +4,7 @@ protect: true entry-fee: '' clear-wave-before-next: false clear-boss-before-next: false +clear-wave-before-boss: false lightning: true auto-equip-armor: true soft-restore: false diff --git a/src/com/garbagemule/MobArena/MASpawnThread.java b/src/com/garbagemule/MobArena/MASpawnThread.java index f3a8a36..116f4d7 100644 --- a/src/com/garbagemule/MobArena/MASpawnThread.java +++ b/src/com/garbagemule/MobArena/MASpawnThread.java @@ -35,7 +35,7 @@ public class MASpawnThread implements Runnable private MonsterManager monsterManager; private int playerCount, monsterLimit; - private boolean waveClear, bossClear; + private boolean waveClear, bossClear, preBossClear; /** * Create a new monster spawner for the input arena. @@ -64,6 +64,7 @@ public class MASpawnThread implements Runnable monsterLimit = arena.getSettings().getInt("monster-limit", 100); waveClear = arena.getSettings().getBoolean("clear-wave-before-next", false); bossClear = arena.getSettings().getBoolean("clear-boss-before-next", false); + preBossClear = arena.getSettings().getBoolean("clear-wave-before-boss", false); } public void run() { @@ -214,10 +215,15 @@ public class MASpawnThread implements Runnable return false; } - // Check for wave clear + // Check for wave and pre boss clear if (waveClear && !monsterManager.getMonsters().isEmpty()) { return false; } + + // Check for pre boss clear + if (preBossClear && waveManager.getNext().getType() == WaveType.BOSS && !monsterManager.getMonsters().isEmpty()) { + return false; + } // Check for final wave if (!monsterManager.getMonsters().isEmpty() && waveManager.getWaveNumber() == waveManager.getFinalWave()) {