Scripts/Icecrown Citadel: Fixed Gaseous Blight removal on Festergut's death
Scripts/Icecrown Citadel: Added missing in room check for Blood Prince Council Scripts/Icecrown Citadel: Fixed Professor Putricide facing during phase transitions --HG-- branch : trunk
This commit is contained in:
@@ -471,7 +471,7 @@ class boss_prince_keleseth_icc : public CreatureScript
|
|||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
if (!UpdateVictim())
|
if (!UpdateVictim() || !CheckInRoom())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
events.Update(diff);
|
events.Update(diff);
|
||||||
@@ -656,7 +656,7 @@ class boss_prince_taldaram_icc : public CreatureScript
|
|||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
if (!UpdateVictim())
|
if (!UpdateVictim() || !CheckInRoom())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
events.Update(diff);
|
events.Update(diff);
|
||||||
@@ -860,7 +860,7 @@ class boss_prince_valanar_icc : public CreatureScript
|
|||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
if (!UpdateVictim())
|
if (!UpdateVictim() || !CheckInRoom())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
events.Update(diff);
|
events.Update(diff);
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ class boss_festergut : public CreatureScript
|
|||||||
DoScriptText(SAY_AGGRO, me);
|
DoScriptText(SAY_AGGRO, me);
|
||||||
if (Creature* gasDummy = GetClosestCreatureWithEntry(me, NPC_GAS_DUMMY, 100.0f, true))
|
if (Creature* gasDummy = GetClosestCreatureWithEntry(me, NPC_GAS_DUMMY, 100.0f, true))
|
||||||
gasDummyGUID = gasDummy->GetGUID();
|
gasDummyGUID = gasDummy->GetGUID();
|
||||||
if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
|
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
|
||||||
professor->AI()->DoAction(ACTION_FESTERGUT_COMBAT);
|
professor->AI()->DoAction(ACTION_FESTERGUT_COMBAT);
|
||||||
|
|
||||||
DoZoneInCombat(me);
|
DoZoneInCombat(me);
|
||||||
@@ -132,8 +132,15 @@ class boss_festergut : public CreatureScript
|
|||||||
{
|
{
|
||||||
DoScriptText(SAY_DEATH, me);
|
DoScriptText(SAY_DEATH, me);
|
||||||
instance->SetBossState(DATA_FESTERGUT, DONE);
|
instance->SetBossState(DATA_FESTERGUT, DONE);
|
||||||
if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
|
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
|
||||||
professor->AI()->DoAction(ACTION_FESTERGUT_DEATH);
|
professor->AI()->DoAction(ACTION_FESTERGUT_DEATH);
|
||||||
|
|
||||||
|
if (Creature* gasDummy = ObjectAccessor::GetCreature(*me, gasDummyGUID))
|
||||||
|
for (uint8 i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
|
gasDummy->RemoveAurasDueToSpell(gaseousBlight[i]);
|
||||||
|
gasDummy->RemoveAurasDueToSpell(gaseousBlightVisual[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustReachedHome()
|
void JustReachedHome()
|
||||||
@@ -144,7 +151,7 @@ class boss_festergut : public CreatureScript
|
|||||||
void EnterEvadeMode()
|
void EnterEvadeMode()
|
||||||
{
|
{
|
||||||
ScriptedAI::EnterEvadeMode();
|
ScriptedAI::EnterEvadeMode();
|
||||||
if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
|
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
|
||||||
professor->AI()->EnterEvadeMode();
|
professor->AI()->EnterEvadeMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,7 +188,7 @@ class boss_festergut : public CreatureScript
|
|||||||
{
|
{
|
||||||
case EVENT_INHALE_BLIGHT:
|
case EVENT_INHALE_BLIGHT:
|
||||||
{
|
{
|
||||||
if (Creature* gasDummy = Unit::GetCreature(*me, gasDummyGUID))
|
if (Creature* gasDummy = ObjectAccessor::GetCreature(*me, gasDummyGUID))
|
||||||
for (uint8 i = 0; i < 3; ++i)
|
for (uint8 i = 0; i < 3; ++i)
|
||||||
{
|
{
|
||||||
gasDummy->RemoveAurasDueToSpell(gaseousBlight[i]);
|
gasDummy->RemoveAurasDueToSpell(gaseousBlight[i]);
|
||||||
@@ -193,7 +200,7 @@ class boss_festergut : public CreatureScript
|
|||||||
DoScriptText(SAY_PUNGENT_BLIGHT, me);
|
DoScriptText(SAY_PUNGENT_BLIGHT, me);
|
||||||
DoCast(me, SPELL_PUNGENT_BLIGHT);
|
DoCast(me, SPELL_PUNGENT_BLIGHT);
|
||||||
uiInhaleCounter = 0;
|
uiInhaleCounter = 0;
|
||||||
if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
|
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
|
||||||
professor->AI()->DoAction(ACTION_FESTERGUT_GAS);
|
professor->AI()->DoAction(ACTION_FESTERGUT_GAS);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -338,7 +338,6 @@ class boss_professor_putricide : public CreatureScript
|
|||||||
case POINT_TABLE:
|
case POINT_TABLE:
|
||||||
// stop attack
|
// stop attack
|
||||||
me->GetMotionMaster()->MoveIdle();
|
me->GetMotionMaster()->MoveIdle();
|
||||||
me->Attack(me->getVictim(), false);
|
|
||||||
me->SetSpeed(MOVE_RUN, fBaseSpeed, true);
|
me->SetSpeed(MOVE_RUN, fBaseSpeed, true);
|
||||||
if (GameObject* table = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_PUTRICIDE_TABLE)))
|
if (GameObject* table = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_PUTRICIDE_TABLE)))
|
||||||
me->SetFacingToObject(table);
|
me->SetFacingToObject(table);
|
||||||
@@ -443,6 +442,7 @@ class boss_professor_putricide : public CreatureScript
|
|||||||
case ACTION_CHANGE_PHASE:
|
case ACTION_CHANGE_PHASE:
|
||||||
me->SetSpeed(MOVE_RUN, fBaseSpeed*2.0f, true);
|
me->SetSpeed(MOVE_RUN, fBaseSpeed*2.0f, true);
|
||||||
events.DelayEvents(30000);
|
events.DelayEvents(30000);
|
||||||
|
me->AttackStop();
|
||||||
if (!IsHeroic())
|
if (!IsHeroic())
|
||||||
{
|
{
|
||||||
DoCast(me, SPELL_TEAR_GAS);
|
DoCast(me, SPELL_TEAR_GAS);
|
||||||
|
|||||||
Reference in New Issue
Block a user