aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp13
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;