aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp20
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp2
2 files changed, 18 insertions, 4 deletions
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 3efbd52533a..213eb44f9ec 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -396,7 +396,7 @@ struct boss_gormok : public boss_northrend_beastsAI
struct npc_snobold_vassal : public ScriptedAI
{
- npc_snobold_vassal(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _mountedOnPlayer(false)
+ npc_snobold_vassal(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _mountedOnPlayer(false), _gormokDead(false)
{
_instance->SetData(DATA_SNOBOLD_COUNT, INCREASE);
SetCombatMovement(false);
@@ -486,10 +486,17 @@ struct npc_snobold_vassal : public ScriptedAI
{
me->RemoveUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE));
_events.CancelEvent(EVENT_CHECK_MOUNT);
+ _events.CancelEvent(EVENT_FIRE_BOMB);
me->AttackStop();
+ SetCombatMovement(true);
+ _gormokDead = true;
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
+ {
AttackStart(target);
- SetCombatMovement(true);
+ me->GetMotionMaster()->MoveChase(target);
+ _events.ScheduleEvent(EVENT_BATTER, 5s);
+ _events.ScheduleEvent(EVENT_HEAD_CRACK, 1s);
+ }
}
}
@@ -515,11 +522,15 @@ struct npc_snobold_vassal : public ScriptedAI
case EVENT_HEAD_CRACK:
if (Unit* target = me->GetVehicleBase())
DoCast(target, SPELL_HEAD_CRACK);
+ else
+ DoCastVictim(SPELL_HEAD_CRACK);
_events.Repeat(30s);
break;
case EVENT_BATTER:
if (Unit* target = me->GetVehicleBase())
DoCast(target, SPELL_BATTER);
+ else
+ DoCastVictim(SPELL_BATTER);
_events.Repeat(10s, 15s);
break;
case EVENT_SNOBOLLED:
@@ -538,8 +549,8 @@ struct npc_snobold_vassal : public ScriptedAI
return;
}
- // do melee attack only if is in player back.
- if (_mountedOnPlayer)
+ // do melee attack only if is in player back or if gormok is dead.
+ if (_mountedOnPlayer || _gormokDead)
DoMeleeAttackIfReady();
}
@@ -548,6 +559,7 @@ private:
InstanceScript* _instance;
ObjectGuid _targetGUID;
bool _mountedOnPlayer;
+ bool _gormokDead;
};
struct npc_fire_bomb : public ScriptedAI
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 e50c84bae7c..ca70d60f7e4 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
@@ -184,6 +184,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
{
if (Creature* fordring = GetCreature(DATA_FORDRING))
fordring->AI()->DoAction(ACTION_JARAXXUS_WIPE);
+ MistressOfPainCount = 0;
}
else if (state == DONE)
{
@@ -408,6 +409,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
SetBossState(DATA_NORTHREND_BEASTS, FAIL);
if (Creature* tirion = GetCreature(DATA_FORDRING))
tirion->AI()->DoAction(ACTION_NORTHREND_BEASTS_WIPE);
+ SnoboldCount = 0;
break;
default:
break;