diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index 918853184..a6498b867 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -426,20 +426,49 @@ public: case ACHIEV_CRITERIA_THE_HUNDRED_CLUB_25_PLAYER: return _sapphironAchievement; case ACHIEV_CRITERIA_THE_UNDYING_KELTHUZAD: - case ACHIEV_CRITERIA_THE_UNDYING_THE_FOUR_HORSEMEN: - case ACHIEV_CRITERIA_THE_UNDYING_MAEXXNA: - case ACHIEV_CRITERIA_THE_UNDYING_LOATHEB: - case ACHIEV_CRITERIA_THE_UNDYING_THADDIUS: case ACHIEV_CRITERIA_THE_IMMORTAL_KELTHUZAD: + case ACHIEV_CRITERIA_THE_UNDYING_THE_FOUR_HORSEMEN: case ACHIEV_CRITERIA_THE_IMMORTAL_THE_FOUR_HORSEMEN: + case ACHIEV_CRITERIA_THE_UNDYING_MAEXXNA: case ACHIEV_CRITERIA_THE_IMMORTAL_MAEXXNA: + case ACHIEV_CRITERIA_THE_UNDYING_LOATHEB: case ACHIEV_CRITERIA_THE_IMMORTAL_LOATHEB: + case ACHIEV_CRITERIA_THE_UNDYING_THADDIUS: case ACHIEV_CRITERIA_THE_IMMORTAL_THADDIUS: - for (int i = 0; i < MAX_ENCOUNTERS; ++i) - if (GetBossState(i) != DONE) + { + uint32 currentBoss; + switch (criteria_id) + { + case ACHIEV_CRITERIA_THE_UNDYING_KELTHUZAD: + case ACHIEV_CRITERIA_THE_IMMORTAL_KELTHUZAD: + currentBoss = BOSS_KELTHUZAD; + break; + case ACHIEV_CRITERIA_THE_UNDYING_THE_FOUR_HORSEMEN: + case ACHIEV_CRITERIA_THE_IMMORTAL_THE_FOUR_HORSEMEN: + currentBoss = BOSS_HORSEMAN; + break; + case ACHIEV_CRITERIA_THE_UNDYING_MAEXXNA: + case ACHIEV_CRITERIA_THE_IMMORTAL_MAEXXNA: + currentBoss = BOSS_MAEXXNA; + break; + case ACHIEV_CRITERIA_THE_UNDYING_LOATHEB: + case ACHIEV_CRITERIA_THE_IMMORTAL_LOATHEB: + currentBoss = BOSS_LOATHEB; + break; + case ACHIEV_CRITERIA_THE_UNDYING_THADDIUS: + case ACHIEV_CRITERIA_THE_IMMORTAL_THADDIUS: + currentBoss = BOSS_THADDIUS; + break; + default: + return false; + } + + for (uint32 i = 0; i < MAX_ENCOUNTERS; ++i) + if (i != currentBoss && GetBossState(i) != DONE) return false; return !GetPersistentData(PERSISTENT_DATA_IMMORTAL_FAIL); + } default: return false; }