diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index 82e02bc..16cf28b 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -635,7 +635,7 @@ public: } break; case AREA_BOUGH_SHADOW: - if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA)) + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA) || isExcludedFromProgression(player)) { player->RemoveAura(IPP_PHASE); player->RemoveAura(IPP_PHASE_II); @@ -643,7 +643,7 @@ public: } break; case AREA_SERADANE: - if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA)) + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA) || isExcludedFromProgression(player)) { player->RemoveAura(IPP_PHASE); player->RemoveAura(IPP_PHASE_II); @@ -651,7 +651,7 @@ public: } break; case AREA_DREAM_BOUGH: - if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA)) + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA) || isExcludedFromProgression(player)) { player->RemoveAura(IPP_PHASE); player->RemoveAura(IPP_PHASE_II); @@ -659,7 +659,7 @@ public: } break; case AREA_JADEMIR_LAKE: - if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA)) + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA) || isExcludedFromProgression(player)) { player->RemoveAura(IPP_PHASE); player->RemoveAura(IPP_PHASE_II); @@ -667,7 +667,7 @@ public: } break; case AREA_TWILIGHT_GROVE: - if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA)) + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_ONYXIA) || isExcludedFromProgression(player)) { player->RemoveAura(IPP_PHASE); player->RemoveAura(IPP_PHASE_II); @@ -992,7 +992,7 @@ public: case AREA_THE_ALLIANCE_VALIANTS_RING: case AREA_THE_HORDE_VALIANTS_RING: case AREA_ARGENT_PAVILION: - if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_WOTLK_TIER_2)) + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_WOTLK_TIER_2) || isExcludedFromProgression(player)) { player->RemoveAura(IPP_PHASE); player->RemoveAura(IPP_PHASE_II); @@ -1003,40 +1003,55 @@ public: uint32 mapid = player->GetMapId(); - if (mapid == MAP_SHADOWFANG_KEEP && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))) + if (mapid == MAP_SHADOWFANG_KEEP) { - player->RemoveAura(IPP_PHASE); - player->RemoveAura(IPP_PHASE_II); - player->CastSpell(player, IPP_PHASE, false); - break; + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ) && sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)) + { + player->RemoveAura(IPP_PHASE); + player->RemoveAura(IPP_PHASE_II); + player->CastSpell(player, IPP_PHASE, false); + break; + } } - if (mapid == MAP_RAZORFEN_DOWNS && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))) + if (mapid == MAP_RAZORFEN_DOWNS) { - player->RemoveAura(IPP_PHASE); - player->RemoveAura(IPP_PHASE_II); - player->CastSpell(player, IPP_PHASE, false); - break; + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ) && sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)) + { + player->RemoveAura(IPP_PHASE); + player->RemoveAura(IPP_PHASE_II); + player->CastSpell(player, IPP_PHASE, false); + break; + } } - if (mapid == MAP_SCARLET_MONASTERY && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))) + if (mapid == MAP_SCARLET_MONASTERY) { - player->RemoveAura(IPP_PHASE); - player->RemoveAura(IPP_PHASE_II); - player->CastSpell(player, IPP_PHASE, false); - break; + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ) && sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)) + { + player->RemoveAura(IPP_PHASE); + player->RemoveAura(IPP_PHASE_II); + player->CastSpell(player, IPP_PHASE, false); + break; + } } - if (mapid == MAP_STRATHOLME && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))) + if (mapid == MAP_STRATHOLME) { - player->RemoveAura(IPP_PHASE); - player->RemoveAura(IPP_PHASE_II); - player->CastSpell(player, IPP_PHASE, false); - break; + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ) && sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)) + { + player->RemoveAura(IPP_PHASE); + player->RemoveAura(IPP_PHASE_II); + player->CastSpell(player, IPP_PHASE, false); + break; + } } - if (mapid == MAP_DIRE_MAUL && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))) + if (mapid == MAP_DIRE_MAUL) { - player->RemoveAura(IPP_PHASE); - player->RemoveAura(IPP_PHASE_II); - player->CastSpell(player, IPP_PHASE, false); - break; + if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ) && sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)) + { + player->RemoveAura(IPP_PHASE); + player->RemoveAura(IPP_PHASE_II); + player->CastSpell(player, IPP_PHASE, false); + break; + } } player->RemoveAura(IPP_PHASE);