mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-22 21:26:23 +00:00
converted all tabs to 4 spaces
This commit is contained in:
@@ -33,13 +33,13 @@ enum Spells
|
||||
|
||||
enum Events
|
||||
{
|
||||
EVENT_GROWTH = 1,
|
||||
EVENT_CAVE_IN = 2,
|
||||
EVENT_GROUND_SLAM = 3,
|
||||
EVENT_HURTFUL_STRIKE = 4,
|
||||
EVENT_REVERBERATION = 5,
|
||||
EVENT_SHATTER = 6,
|
||||
EVENT_RECENTLY_SPOKEN = 7
|
||||
EVENT_GROWTH = 1,
|
||||
EVENT_CAVE_IN = 2,
|
||||
EVENT_GROUND_SLAM = 3,
|
||||
EVENT_HURTFUL_STRIKE = 4,
|
||||
EVENT_REVERBERATION = 5,
|
||||
EVENT_SHATTER = 6,
|
||||
EVENT_RECENTLY_SPOKEN = 7
|
||||
};
|
||||
|
||||
class boss_gruul : public CreatureScript
|
||||
@@ -54,7 +54,7 @@ class boss_gruul : public CreatureScript
|
||||
void Reset()
|
||||
{
|
||||
_Reset();
|
||||
_caveInTimer = 29000;
|
||||
_caveInTimer = 29000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
@@ -62,20 +62,20 @@ class boss_gruul : public CreatureScript
|
||||
_EnterCombat();
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
events.ScheduleEvent(EVENT_GROWTH, 30000);
|
||||
events.ScheduleEvent(EVENT_CAVE_IN, _caveInTimer);
|
||||
events.ScheduleEvent(EVENT_REVERBERATION, 20000);
|
||||
events.ScheduleEvent(EVENT_HURTFUL_STRIKE, 10000);
|
||||
events.ScheduleEvent(EVENT_GROUND_SLAM, 35000);
|
||||
events.ScheduleEvent(EVENT_GROWTH, 30000);
|
||||
events.ScheduleEvent(EVENT_CAVE_IN, _caveInTimer);
|
||||
events.ScheduleEvent(EVENT_REVERBERATION, 20000);
|
||||
events.ScheduleEvent(EVENT_HURTFUL_STRIKE, 10000);
|
||||
events.ScheduleEvent(EVENT_GROUND_SLAM, 35000);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* who)
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_RECENTLY_SPOKEN) == 0)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_RECENTLY_SPOKEN, 5000);
|
||||
{
|
||||
events.ScheduleEvent(EVENT_RECENTLY_SPOKEN, 5000);
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
@@ -93,46 +93,46 @@ class boss_gruul : public CreatureScript
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_GROWTH:
|
||||
Talk(EMOTE_GROW);
|
||||
DoCast(me, SPELL_GROWTH);
|
||||
events.ScheduleEvent(EVENT_GROWTH, 30000);
|
||||
break;
|
||||
case EVENT_CAVE_IN:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
me->CastSpell(target, SPELL_CAVE_IN, false);
|
||||
_caveInTimer -= 1500;
|
||||
events.ScheduleEvent(EVENT_CAVE_IN, _caveInTimer);
|
||||
break;
|
||||
case EVENT_REVERBERATION:
|
||||
me->CastSpell(me, SPELL_REVERBERATION, false);
|
||||
events.ScheduleEvent(EVENT_REVERBERATION, 22000);
|
||||
break;
|
||||
case EVENT_HURTFUL_STRIKE:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1, 5.0f))
|
||||
me->CastSpell(target, SPELL_HURTFUL_STRIKE, false);
|
||||
events.ScheduleEvent(EVENT_HURTFUL_STRIKE, 15000);
|
||||
break;
|
||||
case EVENT_GROUND_SLAM:
|
||||
Talk(SAY_SLAM);
|
||||
me->CastSpell(me, SPELL_GROUND_SLAM, false);
|
||||
events.DelayEvents(8001);
|
||||
events.ScheduleEvent(EVENT_GROUND_SLAM, 60000);
|
||||
events.ScheduleEvent(EVENT_SHATTER, 8000);
|
||||
break;
|
||||
case EVENT_SHATTER:
|
||||
Talk(SAY_SHATTER);
|
||||
me->CastSpell(me, SPELL_SHATTER, false);
|
||||
break;
|
||||
}
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_GROWTH:
|
||||
Talk(EMOTE_GROW);
|
||||
DoCast(me, SPELL_GROWTH);
|
||||
events.ScheduleEvent(EVENT_GROWTH, 30000);
|
||||
break;
|
||||
case EVENT_CAVE_IN:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
me->CastSpell(target, SPELL_CAVE_IN, false);
|
||||
_caveInTimer -= 1500;
|
||||
events.ScheduleEvent(EVENT_CAVE_IN, _caveInTimer);
|
||||
break;
|
||||
case EVENT_REVERBERATION:
|
||||
me->CastSpell(me, SPELL_REVERBERATION, false);
|
||||
events.ScheduleEvent(EVENT_REVERBERATION, 22000);
|
||||
break;
|
||||
case EVENT_HURTFUL_STRIKE:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1, 5.0f))
|
||||
me->CastSpell(target, SPELL_HURTFUL_STRIKE, false);
|
||||
events.ScheduleEvent(EVENT_HURTFUL_STRIKE, 15000);
|
||||
break;
|
||||
case EVENT_GROUND_SLAM:
|
||||
Talk(SAY_SLAM);
|
||||
me->CastSpell(me, SPELL_GROUND_SLAM, false);
|
||||
events.DelayEvents(8001);
|
||||
events.ScheduleEvent(EVENT_GROUND_SLAM, 60000);
|
||||
events.ScheduleEvent(EVENT_SHATTER, 8000);
|
||||
break;
|
||||
case EVENT_SHATTER:
|
||||
Talk(SAY_SHATTER);
|
||||
me->CastSpell(me, SPELL_SHATTER, false);
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
uint32 _caveInTimer;
|
||||
private:
|
||||
uint32 _caveInTimer;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
@@ -153,7 +153,7 @@ class spell_gruul_ground_slam : public SpellScriptLoader
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* target = GetHitUnit())
|
||||
target->KnockbackFrom(GetCaster()->GetPositionX(), GetCaster()->GetPositionY(), 15.0f, 15.0f);
|
||||
target->KnockbackFrom(GetCaster()->GetPositionX(), GetCaster()->GetPositionY(), 15.0f, 15.0f);
|
||||
}
|
||||
|
||||
void Register()
|
||||
@@ -179,8 +179,8 @@ class spell_gruul_ground_slam_trigger : public SpellScriptLoader
|
||||
|
||||
void OnRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (GetUnitOwner()->GetAuraCount(GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell) == 5)
|
||||
GetUnitOwner()->CastSpell(GetUnitOwner(), SPELL_STONED, true);
|
||||
if (GetUnitOwner()->GetAuraCount(GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell) == 5)
|
||||
GetUnitOwner()->CastSpell(GetUnitOwner(), SPELL_STONED, true);
|
||||
}
|
||||
|
||||
void Register()
|
||||
@@ -207,10 +207,10 @@ class spell_gruul_shatter : public SpellScriptLoader
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* target = GetHitUnit())
|
||||
{
|
||||
{
|
||||
target->RemoveAurasDueToSpell(SPELL_STONED);
|
||||
target->CastSpell((Unit*)NULL, SPELL_SHATTER_EFFECT, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Register()
|
||||
@@ -263,8 +263,8 @@ class spell_gruul_shatter_effect : public SpellScriptLoader
|
||||
void AddSC_boss_gruul()
|
||||
{
|
||||
new boss_gruul();
|
||||
new spell_gruul_ground_slam();
|
||||
new spell_gruul_ground_slam_trigger();
|
||||
new spell_gruul_ground_slam();
|
||||
new spell_gruul_ground_slam_trigger();
|
||||
new spell_gruul_shatter();
|
||||
new spell_gruul_shatter_effect();
|
||||
}
|
||||
|
||||
@@ -48,18 +48,18 @@ enum HighKingMaulgar
|
||||
|
||||
enum HKMEvents
|
||||
{
|
||||
EVENT_RECENTLY_SPOKEN = 1,
|
||||
EVENT_ARCING_SMASH = 2,
|
||||
EVENT_MIGHTY_BLOW = 3,
|
||||
EVENT_WHIRLWIND = 4,
|
||||
EVENT_CHARGING = 5,
|
||||
EVENT_ROAR = 6,
|
||||
EVENT_CHECK_HEALTH = 7,
|
||||
EVENT_RECENTLY_SPOKEN = 1,
|
||||
EVENT_ARCING_SMASH = 2,
|
||||
EVENT_MIGHTY_BLOW = 3,
|
||||
EVENT_WHIRLWIND = 4,
|
||||
EVENT_CHARGING = 5,
|
||||
EVENT_ROAR = 6,
|
||||
EVENT_CHECK_HEALTH = 7,
|
||||
|
||||
EVENT_ADD_ABILITY1 = 10,
|
||||
EVENT_ADD_ABILITY2 = 11,
|
||||
EVENT_ADD_ABILITY3 = 12,
|
||||
EVENT_ADD_ABILITY4 = 13
|
||||
EVENT_ADD_ABILITY1 = 10,
|
||||
EVENT_ADD_ABILITY2 = 11,
|
||||
EVENT_ADD_ABILITY3 = 12,
|
||||
EVENT_ADD_ABILITY4 = 13
|
||||
};
|
||||
|
||||
class boss_high_king_maulgar : public CreatureScript
|
||||
@@ -73,52 +73,52 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
_Reset();
|
||||
me->SetLootMode(0);
|
||||
_Reset();
|
||||
me->SetLootMode(0);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_RECENTLY_SPOKEN) == 0)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_RECENTLY_SPOKEN, 5000);
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
if (events.GetNextEventTime(EVENT_RECENTLY_SPOKEN) == 0)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_RECENTLY_SPOKEN, 5000);
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
Talk(SAY_DEATH);
|
||||
if (instance->GetData(DATA_ADDS_KILLED) == MAX_ADD_NUMBER)
|
||||
_JustDied();
|
||||
if (instance->GetData(DATA_ADDS_KILLED) == MAX_ADD_NUMBER)
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void DoAction(int32 actionId)
|
||||
{
|
||||
if (me->IsAlive())
|
||||
{
|
||||
if (me->IsAlive())
|
||||
{
|
||||
Talk(SAY_OGRE_DEATH);
|
||||
if (actionId == MAX_ADD_NUMBER)
|
||||
me->SetLootMode(1);
|
||||
}
|
||||
else if (actionId == MAX_ADD_NUMBER)
|
||||
{
|
||||
me->loot.clear();
|
||||
me->loot.FillLoot(me->GetCreatureTemplate()->lootid, LootTemplates_Creature, me->GetLootRecipient(), false, false, 1);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
||||
_JustDied();
|
||||
}
|
||||
if (actionId == MAX_ADD_NUMBER)
|
||||
me->SetLootMode(1);
|
||||
}
|
||||
else if (actionId == MAX_ADD_NUMBER)
|
||||
{
|
||||
me->loot.clear();
|
||||
me->loot.FillLoot(me->GetCreatureTemplate()->lootid, LootTemplates_Creature, me->GetLootRecipient(), false, false, 1);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
||||
_JustDied();
|
||||
}
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
_EnterCombat();
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
events.ScheduleEvent(EVENT_ARCING_SMASH, 6000);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 20000);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 30000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
|
||||
events.ScheduleEvent(EVENT_ARCING_SMASH, 6000);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 20000);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 30000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
@@ -126,46 +126,46 @@ public:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ARCING_SMASH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARCING_SMASH, false);
|
||||
events.ScheduleEvent(EVENT_ARCING_SMASH, 10000);
|
||||
break;
|
||||
case EVENT_MIGHTY_BLOW:
|
||||
me->CastSpell(me->GetVictim(), SPELL_MIGHTY_BLOW, false);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 16000);
|
||||
break;
|
||||
case EVENT_WHIRLWIND:
|
||||
events.DelayEvents(15000);
|
||||
me->CastSpell(me, SPELL_WHIRLWIND, false);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 54000);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH:
|
||||
if (me->HealthBelowPct(50))
|
||||
{
|
||||
Talk(SAY_ENRAGE);
|
||||
me->CastSpell(me, SPELL_FLURRY, true);
|
||||
events.ScheduleEvent(EVENT_CHARGING, 0);
|
||||
events.ScheduleEvent(EVENT_ROAR, 3000);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
|
||||
break;
|
||||
case EVENT_ROAR:
|
||||
me->CastSpell(me, SPELL_ROAR, false);
|
||||
events.ScheduleEvent(EVENT_ROAR, 40000);
|
||||
break;
|
||||
case EVENT_CHARGING:
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ARCING_SMASH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARCING_SMASH, false);
|
||||
events.ScheduleEvent(EVENT_ARCING_SMASH, 10000);
|
||||
break;
|
||||
case EVENT_MIGHTY_BLOW:
|
||||
me->CastSpell(me->GetVictim(), SPELL_MIGHTY_BLOW, false);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 16000);
|
||||
break;
|
||||
case EVENT_WHIRLWIND:
|
||||
events.DelayEvents(15000);
|
||||
me->CastSpell(me, SPELL_WHIRLWIND, false);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 54000);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH:
|
||||
if (me->HealthBelowPct(50))
|
||||
{
|
||||
Talk(SAY_ENRAGE);
|
||||
me->CastSpell(me, SPELL_FLURRY, true);
|
||||
events.ScheduleEvent(EVENT_CHARGING, 0);
|
||||
events.ScheduleEvent(EVENT_ROAR, 3000);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
|
||||
break;
|
||||
case EVENT_ROAR:
|
||||
me->CastSpell(me, SPELL_ROAR, false);
|
||||
events.ScheduleEvent(EVENT_ROAR, 40000);
|
||||
break;
|
||||
case EVENT_CHARGING:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
|
||||
me->CastSpell(target, SPELL_BERSERKER_C, false);
|
||||
events.ScheduleEvent(EVENT_CHARGING, 35000);
|
||||
break;
|
||||
}
|
||||
me->CastSpell(target, SPELL_BERSERKER_C, false);
|
||||
events.ScheduleEvent(EVENT_CHARGING, 35000);
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -189,14 +189,14 @@ public:
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
InstanceScript* instance;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
instance->SetBossState(DATA_MAULGAR, NOT_STARTED);
|
||||
}
|
||||
|
||||
@@ -214,46 +214,46 @@ public:
|
||||
me->SetInCombatWithZone();
|
||||
instance->SetBossState(DATA_MAULGAR, IN_PROGRESS);
|
||||
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 10000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 15000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 10000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 15000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
instance->SetData(DATA_ADDS_KILLED, 1);
|
||||
instance->SetData(DATA_ADDS_KILLED, 1);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon)
|
||||
{
|
||||
summons.Summon(summon);
|
||||
}
|
||||
void JustSummoned(Creature* summon)
|
||||
{
|
||||
summons.Summon(summon);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
me->CastSpell(me->GetVictim(), SPELL_DARK_DECAY, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 20000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
me->CastSpell(me, SPELL_SUMMON_WFH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 30000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
me->CastSpell(target, SPELL_DEATH_COIL, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
break;
|
||||
}
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
me->CastSpell(me->GetVictim(), SPELL_DARK_DECAY, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 20000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
me->CastSpell(me, SPELL_SUMMON_WFH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 30000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
me->CastSpell(target, SPELL_DEATH_COIL, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -291,15 +291,15 @@ public:
|
||||
me->SetInCombatWithZone();
|
||||
instance->SetBossState(DATA_MAULGAR, IN_PROGRESS);
|
||||
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 5000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 10000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY4, 30000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 5000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 10000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY4, 30000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
instance->SetData(DATA_ADDS_KILLED, 1);
|
||||
instance->SetData(DATA_ADDS_KILLED, 1);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
@@ -307,31 +307,31 @@ public:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
|
||||
me->CastSpell(target, SPELL_GREATER_POLYMORPH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 20000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
|
||||
me->CastSpell(target, SPELL_LIGHTNING_BOLT, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 15000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARCANE_SHOCK, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY4:
|
||||
me->CastSpell(me, SPELL_ARCANE_EXPLOSION, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY4, 30000);
|
||||
break;
|
||||
}
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
|
||||
me->CastSpell(target, SPELL_GREATER_POLYMORPH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 20000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
|
||||
me->CastSpell(target, SPELL_LIGHTNING_BOLT, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 15000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARCANE_SHOCK, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY4:
|
||||
me->CastSpell(me, SPELL_ARCANE_EXPLOSION, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY4, 30000);
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -369,14 +369,14 @@ public:
|
||||
me->SetInCombatWithZone();
|
||||
instance->SetBossState(DATA_MAULGAR, IN_PROGRESS);
|
||||
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 5000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 10000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 5000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 10000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
instance->SetData(DATA_ADDS_KILLED, 1);
|
||||
instance->SetData(DATA_ADDS_KILLED, 1);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
@@ -384,26 +384,26 @@ public:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
me->CastSpell(me, SPELL_GREATER_PW_SHIELD, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 30000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
if (Unit* target = DoSelectLowestHpFriendly(60.0f, 50000))
|
||||
me->CastSpell(target, SPELL_HEAL, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 25000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
me->CastSpell(me, SPELL_PRAYER_OH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 30000);
|
||||
break;
|
||||
}
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
me->CastSpell(me, SPELL_GREATER_PW_SHIELD, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 30000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
if (Unit* target = DoSelectLowestHpFriendly(60.0f, 50000))
|
||||
me->CastSpell(target, SPELL_HEAL, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 25000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
me->CastSpell(me, SPELL_PRAYER_OH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 30000);
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -427,12 +427,12 @@ public:
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
EventMap events;
|
||||
EventMap events;
|
||||
InstanceScript* instance;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
events.Reset();
|
||||
instance->SetBossState(DATA_MAULGAR, NOT_STARTED);
|
||||
}
|
||||
|
||||
@@ -450,14 +450,14 @@ public:
|
||||
me->SetInCombatWithZone();
|
||||
instance->SetBossState(DATA_MAULGAR, IN_PROGRESS);
|
||||
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 1000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 5000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 1000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 5000);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
instance->SetData(DATA_ADDS_KILLED, 1);
|
||||
instance->SetData(DATA_ADDS_KILLED, 1);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
@@ -465,25 +465,25 @@ public:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
me->CastSpell(me->GetVictim(), SPELL_GREATER_FIREBALL, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 3500);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
me->CastSpell(me, SPELL_SPELLSHIELD, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 40000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
me->CastSpell(me, SPELL_BLAST_WAVE, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
break;
|
||||
}
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
me->CastSpell(me->GetVictim(), SPELL_GREATER_FIREBALL, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 3500);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
me->CastSpell(me, SPELL_SPELLSHIELD, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 40000);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
me->CastSpell(me, SPELL_BLAST_WAVE, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20000);
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@ enum DataTypes
|
||||
{
|
||||
DATA_MAULGAR = 0,
|
||||
DATA_GRUUL = 1,
|
||||
MAX_ENCOUNTER = 2,
|
||||
MAX_ENCOUNTER = 2,
|
||||
|
||||
DATA_ADDS_KILLED = 10,
|
||||
MAX_ADD_NUMBER = 4
|
||||
DATA_ADDS_KILLED = 10,
|
||||
MAX_ADD_NUMBER = 4
|
||||
};
|
||||
|
||||
enum CreatureIds
|
||||
|
||||
@@ -36,7 +36,7 @@ class instance_gruuls_lair : public InstanceMapScript
|
||||
LoadMinionData(minionData);
|
||||
|
||||
_maulgarGUID = 0;
|
||||
_addsKilled = 0;
|
||||
_addsKilled = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature)
|
||||
@@ -91,27 +91,27 @@ class instance_gruuls_lair : public InstanceMapScript
|
||||
}
|
||||
}
|
||||
|
||||
bool SetBossState(uint32 id, EncounterState state)
|
||||
{
|
||||
if (!InstanceScript::SetBossState(id, state))
|
||||
return false;
|
||||
bool SetBossState(uint32 id, EncounterState state)
|
||||
{
|
||||
if (!InstanceScript::SetBossState(id, state))
|
||||
return false;
|
||||
|
||||
if (id == DATA_MAULGAR && state == NOT_STARTED)
|
||||
_addsKilled = 0;
|
||||
return true;
|
||||
}
|
||||
if (id == DATA_MAULGAR && state == NOT_STARTED)
|
||||
_addsKilled = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 id)
|
||||
{
|
||||
if (type == DATA_ADDS_KILLED)
|
||||
if (Creature* maulgar = instance->GetCreature(_maulgarGUID))
|
||||
maulgar->AI()->DoAction(++_addsKilled);
|
||||
}
|
||||
void SetData(uint32 type, uint32 id)
|
||||
{
|
||||
if (type == DATA_ADDS_KILLED)
|
||||
if (Creature* maulgar = instance->GetCreature(_maulgarGUID))
|
||||
maulgar->AI()->DoAction(++_addsKilled);
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type) const
|
||||
{
|
||||
if (type == DATA_ADDS_KILLED)
|
||||
return _addsKilled;
|
||||
return _addsKilled;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ class instance_gruuls_lair : public InstanceMapScript
|
||||
}
|
||||
|
||||
protected:
|
||||
uint32 _addsKilled;
|
||||
uint32 _addsKilled;
|
||||
uint64 _maulgarGUID;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user