Scripts/VioletHold: rewrote the whole instance

thanks @MitchesD for help

(cherry picked from commit df21162fe44d2ff29c201a9004586f560789c38b)
(cherry picked from commit 3a4f54197c05ce4209c7e659acfd382896607265)
(cherry picked from commit f50df728201849ee7185d33c5a061c91e781c8de)
(cherry picked from commit 95bae7143f0f4bb7d5975f8a61daa3c533f48225)
(cherry picked from commit 5406f82044e7bd6ceb024a67f33c1674400cdc1f)
This commit is contained in:
joschiwald
2015-11-01 13:09:30 +01:00
committed by Shauren
parent 7b684e8813
commit 92b08fc74b
32 changed files with 3261 additions and 3277 deletions
@@ -446,7 +446,13 @@ BossAI::BossAI(Creature* creature, uint32 bossId) : ScriptedAI(creature),
instance(creature->GetInstanceScript()),
summons(creature),
_boundary(instance ? instance->GetBossBoundary(bossId) : NULL),
_bossId(bossId) { }
_bossId(bossId)
{
scheduler.SetValidator([this]
{
return !me->HasUnitState(UNIT_STATE_CASTING);
});
}
void BossAI::_Reset()
{
@@ -457,6 +463,7 @@ void BossAI::_Reset()
me->ResetLootMode();
events.Reset();
summons.DespawnAll();
scheduler.CancelAll();
if (instance)
instance->SetBossState(_bossId, NOT_STARTED);
}
@@ -465,15 +472,13 @@ void BossAI::_JustDied()
{
events.Reset();
summons.DespawnAll();
scheduler.CancelAll();
if (instance)
instance->SetBossState(_bossId, DONE);
}
void BossAI::_EnterCombat()
{
me->SetCombatPulseDelay(5);
me->setActive(true);
DoZoneInCombat();
if (instance)
{
// bosses do not respawn, check only on enter combat
@@ -484,6 +489,11 @@ void BossAI::_EnterCombat()
}
instance->SetBossState(_bossId, IN_PROGRESS);
}
me->SetCombatPulseDelay(5);
me->setActive(true);
DoZoneInCombat();
ScheduleTasks();
}
void BossAI::TeleportCheaters()