diff options
2 files changed, 11 insertions, 6 deletions
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index ae42cf2a212..172f356bb7d 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -546,7 +546,9 @@ class boss_toc_champion_controller : public CreatureScript case DONE: { _championsKilled++; - if (_championsKilled >= summons.size()) + if (_championsKilled == 1) + instance->SetData(DATA_FACTION_CRUSADERS, 0); // Used in Resilience will Fix Achievement + else if (_championsKilled >= summons.size()) { instance->SetBossState(DATA_FACTION_CRUSADERS, DONE); summons.DespawnAll(); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp index 76026b9c31e..e50c84bae7c 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp @@ -119,6 +119,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript MistressOfPainCount = 0; TributeToImmortalityEligible = true; NeedSave = false; + CrusadersSpecialState = false; } void OnPlayerEnter(Player* player) override @@ -198,13 +199,10 @@ class instance_trial_of_the_crusader : public InstanceMapScript ResilienceWillFixItTimer = 0; break; case FAIL: + CrusadersSpecialState = false; if (Creature* fordring = GetCreature(DATA_FORDRING)) fordring->AI()->DoAction(ACTION_FACTION_WIPE); break; - case SPECIAL: //Means the first blood - ResilienceWillFixItTimer = 60*IN_MILLISECONDS; - state = IN_PROGRESS; - break; case DONE: DoUpdateCriteria(CriteriaType::BeSpellTarget, SPELL_DEFEAT_FACTION_CHAMPIONS); if (ResilienceWillFixItTimer > 0) @@ -434,6 +432,10 @@ class instance_trial_of_the_crusader : public InstanceMapScript else if (data == DECREASE) --MistressOfPainCount; break; + case DATA_FACTION_CRUSADERS: // Achivement Resilience will Fix + ResilienceWillFixItTimer = 60 * IN_MILLISECONDS; + CrusadersSpecialState = true; + break; default: break; } @@ -557,7 +559,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript NotOneButTwoJormungarsTimer -= diff; } - if (GetBossState(DATA_FACTION_CRUSADERS) == IN_PROGRESS && ResilienceWillFixItTimer) + if (CrusadersSpecialState && ResilienceWillFixItTimer) { if (ResilienceWillFixItTimer <= diff) ResilienceWillFixItTimer = 0; @@ -659,6 +661,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript uint32 NorthrendBeasts; uint32 Team; bool NeedSave; + bool CrusadersSpecialState; std::string SaveDataBuffer; GuidVector snoboldGUIDS; |