refactor(Core/AI): Some more refactoring prep for Comat Threat system… (#15026)

Co-authored-by: Treeston <14020072+Treeston@users.noreply.github.com>
This commit is contained in:
Kitzunu
2023-02-13 21:39:40 +01:00
committed by GitHub
parent fdfa88093e
commit bd6034e1a9
391 changed files with 873 additions and 846 deletions
+12 -2
View File
@@ -68,7 +68,12 @@ void CombatAI::JustDied(Unit* killer)
me->CastSpell(killer, *i, true); me->CastSpell(killer, *i, true);
} }
void CombatAI::EnterCombat(Unit* who) /**
* @brief Called for reaction when initially engaged
*
* @param who Who 'me' Engaged combat with
*/
void CombatAI::JustEngagedWith(Unit* who)
{ {
for (SpellVct::iterator i = spells.begin(); i != spells.end(); ++i) for (SpellVct::iterator i = spells.begin(); i != spells.end(); ++i)
{ {
@@ -114,7 +119,12 @@ void CasterAI::InitializeAI()
m_attackDist = MELEE_RANGE; m_attackDist = MELEE_RANGE;
} }
void CasterAI::EnterCombat(Unit* who) /**
* @brief Called for reaction when initially engaged
*
* @param who Who 'me' Engaged combat with
*/
void CasterAI::JustEngagedWith(Unit* who)
{ {
if (spells.empty()) if (spells.empty())
return; return;
+2 -2
View File
@@ -43,7 +43,7 @@ public:
void InitializeAI() override; void InitializeAI() override;
void Reset() override; void Reset() override;
void EnterCombat(Unit* who) override; void JustEngagedWith(Unit* who) override;
void JustDied(Unit* killer) override; void JustDied(Unit* killer) override;
void UpdateAI(uint32 diff) override; void UpdateAI(uint32 diff) override;
@@ -61,7 +61,7 @@ public:
void InitializeAI() override; void InitializeAI() override;
void AttackStart(Unit* victim) override { AttackStartCaster(victim, m_attackDist); } void AttackStart(Unit* victim) override { AttackStartCaster(victim, m_attackDist); }
void UpdateAI(uint32 diff) override; void UpdateAI(uint32 diff) override;
void EnterCombat(Unit* /*who*/) override; void JustEngagedWith(Unit* /*who*/) override;
private: private:
float m_attackDist; float m_attackDist;
}; };
+1 -1
View File
@@ -69,7 +69,7 @@ void PossessedAI::KilledUnit(Unit* /*victim*/)
// victim->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE); // victim->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
} }
void CritterAI::EnterCombat(Unit* who) void CritterAI::JustEngagedWith(Unit* who)
{ {
if (!me->HasUnitState(UNIT_STATE_FLEEING)) if (!me->HasUnitState(UNIT_STATE_FLEEING))
{ {
+1 -1
View File
@@ -68,7 +68,7 @@ class CritterAI : public PassiveAI
public: public:
explicit CritterAI(Creature* c) : PassiveAI(c) { } explicit CritterAI(Creature* c) : PassiveAI(c) { }
void EnterCombat(Unit* /*who*/) override; void JustEngagedWith(Unit* /*who*/) override;
void EnterEvadeMode(EvadeReason why) override; void EnterEvadeMode(EvadeReason why) override;
void MovementInform(uint32 type, uint32 id) override; void MovementInform(uint32 type, uint32 id) override;
void UpdateAI(uint32 /*diff*/) override { } void UpdateAI(uint32 /*diff*/) override { }
+15
View File
@@ -332,6 +332,21 @@ public:
targetList.resize(num); targetList.resize(num);
} }
/**
* @brief Called when the unit enters combat
* (NOTE: Creature engage logic should NOT be here, but in JustEngagedWith, which happens once threat is established!)
*
* @todo Never invoked right now. Preparation for Combat Threat refactor
*/
virtual void JustEnteredCombat(Unit* /*who*/) { }
/**
* @brief Called when the unit leaves combat
*
* @todo Never invoked right now. Preparation for Combat Threat refactor
*/
virtual void JustExitedCombat() { }
// Called at any Damage to any victim (before damage apply) // Called at any Damage to any victim (before damage apply)
virtual void DamageDealt(Unit* /*victim*/, uint32& /*damage*/, DamageEffectType /*damageType*/) { } virtual void DamageDealt(Unit* /*victim*/, uint32& /*damage*/, DamageEffectType /*damageType*/) { }
+4 -2
View File
@@ -116,8 +116,10 @@ public:
// Called for reaction at stopping attack at no attackers or targets // Called for reaction at stopping attack at no attackers or targets
virtual void EnterEvadeMode(EvadeReason why = EVADE_REASON_OTHER); virtual void EnterEvadeMode(EvadeReason why = EVADE_REASON_OTHER);
// Called for reaction when initially engaged /**
virtual void EnterCombat(Unit* /*victim*/) {} * @brief Called for reaction when initially engaged
*/
virtual void JustEngagedWith(Unit* /*who*/) {}
// Called when the creature is killed // Called when the creature is killed
virtual void JustDied(Unit* /*killer*/) {} virtual void JustDied(Unit* /*killer*/) {}
@@ -593,7 +593,7 @@ void BossAI::_JustDied()
} }
} }
void BossAI::_EnterCombat() void BossAI::_JustEngagedWith()
{ {
me->SetCombatPulseDelay(5); me->SetCombatPulseDelay(5);
me->setActive(true); me->setActive(true);
@@ -690,7 +690,7 @@ void WorldBossAI::_JustDied()
summons.DespawnAll(); summons.DespawnAll();
} }
void WorldBossAI::_EnterCombat() void WorldBossAI::_JustEngagedWith()
{ {
Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true); Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true);
if (target) if (target)
@@ -278,9 +278,9 @@ struct ScriptedAI : public CreatureAI
void Reset() override {} void Reset() override {}
//Called at creature aggro either by MoveInLOS or Attack Start //Called at creature aggro either by MoveInLOS or Attack Start
void EnterCombat(Unit* /*victim*/) override {} void JustEngagedWith(Unit* /*who*/) override {}
// Called before EnterCombat even before the creature is in combat. // Called before JustEngagedWith even before the creature is in combat.
void AttackStart(Unit* /*target*/) override; void AttackStart(Unit* /*target*/) override;
// ************* // *************
@@ -455,13 +455,13 @@ public:
virtual void ScheduleTasks() { } virtual void ScheduleTasks() { }
void Reset() override { _Reset(); } void Reset() override { _Reset(); }
void EnterCombat(Unit* /*who*/) override { _EnterCombat(); } void JustEngagedWith(Unit* /*who*/) override { _JustEngagedWith(); }
void JustDied(Unit* /*killer*/) override { _JustDied(); } void JustDied(Unit* /*killer*/) override { _JustDied(); }
void JustReachedHome() override { _JustReachedHome(); } void JustReachedHome() override { _JustReachedHome(); }
protected: protected:
void _Reset(); void _Reset();
void _EnterCombat(); void _JustEngagedWith();
void _JustDied(); void _JustDied();
void _JustReachedHome() { me->setActive(false); } void _JustReachedHome() { me->setActive(false); }
@@ -493,12 +493,12 @@ public:
virtual void ExecuteEvent(uint32 /*eventId*/) { } virtual void ExecuteEvent(uint32 /*eventId*/) { }
void Reset() override { _Reset(); } void Reset() override { _Reset(); }
void EnterCombat(Unit* /*who*/) override { _EnterCombat(); } void JustEngagedWith(Unit* /*who*/) override { _JustEngagedWith(); }
void JustDied(Unit* /*killer*/) override { _JustDied(); } void JustDied(Unit* /*killer*/) override { _JustDied(); }
protected: protected:
void _Reset(); void _Reset();
void _EnterCombat(); void _JustEngagedWith();
void _JustDied(); void _JustDied();
EventMap events; EventMap events;
+1 -1
View File
@@ -787,7 +787,7 @@ void SmartAI::JustReachedHome()
mJustReset = false; mJustReset = false;
} }
void SmartAI::EnterCombat(Unit* enemy) void SmartAI::JustEngagedWith(Unit* enemy)
{ {
// Xinef: Interrupt channeled spells // Xinef: Interrupt channeled spells
if (IsAIControlled()) if (IsAIControlled())
+1 -1
View File
@@ -80,7 +80,7 @@ public:
void JustReachedHome() override; void JustReachedHome() override;
// Called for reaction at enter to combat if not in combat yet (enemy can be nullptr) // Called for reaction at enter to combat if not in combat yet (enemy can be nullptr)
void EnterCombat(Unit* enemy) override; void JustEngagedWith(Unit* enemy) override;
// Called for reaction at stopping attack at no attackers or targets // Called for reaction at stopping attack at no attackers or targets
void EnterEvadeMode(EvadeReason why = EVADE_REASON_OTHER) override; void EnterEvadeMode(EvadeReason why = EVADE_REASON_OTHER) override;
+1 -1
View File
@@ -13675,7 +13675,7 @@ void Unit::SetInCombatState(bool PvP, Unit* enemy, uint32 duration)
if (enemy) if (enemy)
{ {
if (IsAIEnabled) if (IsAIEnabled)
creature->AI()->EnterCombat(enemy); creature->AI()->JustEngagedWith(enemy);
if (creature->GetFormation()) if (creature->GetFormation())
creature->GetFormation()->MemberEngagingTarget(creature, enemy); creature->GetFormation()->MemberEngagingTarget(creature, enemy);
@@ -125,7 +125,7 @@ public:
summons.DespawnAll(); summons.DespawnAll();
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(YELL_AGGRO); Talk(YELL_AGGRO);
} }
@@ -67,7 +67,7 @@ public:
Attacked = false; Attacked = false;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(YELL_AGGRO); Talk(YELL_AGGRO);
} }
@@ -59,7 +59,7 @@ public:
ResetTimer = 5 * IN_MILLISECONDS; ResetTimer = 5 * IN_MILLISECONDS;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(YELL_AGGRO); Talk(YELL_AGGRO);
} }
@@ -62,7 +62,7 @@ public:
Attacked = false; Attacked = false;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(YELL_AGGRO); Talk(YELL_AGGRO);
} }
@@ -104,7 +104,7 @@ public:
dwarfRune->SetGoState(state); dwarfRune->SetGoState(state);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_events.ScheduleEvent(EVENT_SPELL_FIREBLAST, 2s); _events.ScheduleEvent(EVENT_SPELL_FIREBLAST, 2s);
@@ -51,9 +51,9 @@ public:
{ {
boss_anubshiahAI(Creature* creature) : BossAI(creature, DATA_ANUBSHIAH) { } boss_anubshiahAI(Creature* creature) : BossAI(creature, DATA_ANUBSHIAH) { }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_SHADOWBOLT, 0.2 * (int)TIMER_SHADOWBOLT); events.ScheduleEvent(SPELL_SHADOWBOLT, 0.2 * (int)TIMER_SHADOWBOLT);
events.ScheduleEvent(SPELL_CURSE_TONGUES, 0.2 * (int)TIMER_CURSE_TONGUES); events.ScheduleEvent(SPELL_CURSE_TONGUES, 0.2 * (int)TIMER_CURSE_TONGUES);
events.ScheduleEvent(SPELL_CURSE_WEAKNESS, 0.2 * (int)TIMER_CURSE_WEAKNESS); events.ScheduleEvent(SPELL_CURSE_WEAKNESS, 0.2 * (int)TIMER_CURSE_WEAKNESS);
@@ -51,7 +51,7 @@ public:
boss_draganthaurissanAI(Creature* creature) : BossAI(creature, DATA_EMPEROR){} boss_draganthaurissanAI(Creature* creature) : BossAI(creature, DATA_EMPEROR){}
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
if (hasYelled != 5) if (hasYelled != 5)
{ {
@@ -49,9 +49,9 @@ public:
bool SpellShieldReady = false; bool SpellShieldReady = false;
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_SHADOWBOLT_VOLLEY, 0.2 * (int)TIMER_SHADOWBOLT_VOLLEY); events.ScheduleEvent(SPELL_SHADOWBOLT_VOLLEY, 0.2 * (int)TIMER_SHADOWBOLT_VOLLEY);
events.ScheduleEvent(SPELL_REND, 0.2 * (int) TIMER_REND); events.ScheduleEvent(SPELL_REND, 0.2 * (int) TIMER_REND);
events.ScheduleEvent(SPELL_SHIELD, 0.2 * (int) TIMER_SHIELD); events.ScheduleEvent(SPELL_SHIELD, 0.2 * (int) TIMER_SHIELD);
@@ -55,7 +55,7 @@ public:
Medics = false; Medics = false;
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void SummonAdds(Unit* victim) void SummonAdds(Unit* victim)
{ {
@@ -49,9 +49,9 @@ public:
uint32 nextWhirlwindTime; uint32 nextWhirlwindTime;
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_WHIRLWIND, 0.2 * (int) TIMER_WHIRLWIND); events.ScheduleEvent(SPELL_WHIRLWIND, 0.2 * (int) TIMER_WHIRLWIND);
events.ScheduleEvent(SPELL_MORTALSTRIKE, 0.2 * (int) TIMER_MORTAL); events.ScheduleEvent(SPELL_MORTALSTRIKE, 0.2 * (int) TIMER_MORTAL);
events.ScheduleEvent(SPELL_BLOODLUST, 0.2 * (int) TIMER_BLOODLUST); events.ScheduleEvent(SPELL_BLOODLUST, 0.2 * (int) TIMER_BLOODLUST);
@@ -48,9 +48,9 @@ public:
uint32 nextTremorTime; uint32 nextTremorTime;
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_GROUNDTREMOR, 0.2 * (int) TIMER_GROUNDTREMOR); events.ScheduleEvent(SPELL_GROUNDTREMOR, 0.2 * (int) TIMER_GROUNDTREMOR);
events.ScheduleEvent(SPELL_FRENZY, 0.2 * (int) TIMER_FRENZY); events.ScheduleEvent(SPELL_FRENZY, 0.2 * (int) TIMER_FRENZY);
} }
@@ -47,9 +47,9 @@ public:
{ {
boss_hedrumAI(Creature* creature) : BossAI(creature, DATA_HEDRUM) {} boss_hedrumAI(Creature* creature) : BossAI(creature, DATA_HEDRUM) {}
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_PARALYZING, 0.2 * (int) TIMER_PARALYZING); events.ScheduleEvent(SPELL_PARALYZING, 0.2 * (int) TIMER_PARALYZING);
events.ScheduleEvent(SPELL_BANEFUL, 0.2 * (int) TIMER_BANEFUL); events.ScheduleEvent(SPELL_BANEFUL, 0.2 * (int) TIMER_BANEFUL);
events.ScheduleEvent(SPELL_WEB_EXPLOSION, 0.2 * (int) TIMER_WEB_EXPLOSION); events.ScheduleEvent(SPELL_WEB_EXPLOSION, 0.2 * (int) TIMER_WEB_EXPLOSION);
@@ -54,7 +54,7 @@ public:
ShadowShield_Timer = 8000; ShadowShield_Timer = 8000;
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void UpdateAI(uint32 diff) override void UpdateAI(uint32 diff) override
{ {
@@ -45,10 +45,10 @@ public:
instance->SetData(TYPE_IRON_HALL, NOT_STARTED); instance->SetData(TYPE_IRON_HALL, NOT_STARTED);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
instance->SetData(TYPE_IRON_HALL, IN_PROGRESS); instance->SetData(TYPE_IRON_HALL, IN_PROGRESS);
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_WARSTOMP, 8s, 12s); events.ScheduleEvent(SPELL_WARSTOMP, 8s, 12s);
events.ScheduleEvent(SPELL_FIERYBURST, 4s, 8s); events.ScheduleEvent(SPELL_FIERYBURST, 4s, 8s);
} }
@@ -41,9 +41,9 @@ struct boss_moira_bronzebeardAI : public BossAI
{ {
// use a default value so we can inherit for priestess // use a default value so we can inherit for priestess
boss_moira_bronzebeardAI(Creature* creature, uint32 data = DATA_MOIRA) : BossAI(creature, data) {} boss_moira_bronzebeardAI(Creature* creature, uint32 data = DATA_MOIRA) : BossAI(creature, data) {}
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_MINDBLAST, 0.5 * (int) TIMER_MINDBLAST); events.ScheduleEvent(SPELL_MINDBLAST, 0.5 * (int) TIMER_MINDBLAST);
events.ScheduleEvent(SPELL_HEAL, 0.5 * (int) TIMER_HEAL); events.ScheduleEvent(SPELL_HEAL, 0.5 * (int) TIMER_HEAL);
events.ScheduleEvent(SPELL_RENEW, 0.5 * (int) TIMER_RENEW); events.ScheduleEvent(SPELL_RENEW, 0.5 * (int) TIMER_RENEW);
@@ -103,9 +103,9 @@ struct boss_high_priestess_thaurissanAI : public boss_moira_bronzebeardAI
{ {
boss_high_priestess_thaurissanAI(Creature* creature) : boss_moira_bronzebeardAI(creature, DATA_PRIESTESS) {} boss_high_priestess_thaurissanAI(Creature* creature) : boss_moira_bronzebeardAI(creature, DATA_PRIESTESS) {}
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
Talk(0); Talk(0);
events.ScheduleEvent(SPELL_WORDPAIN, 0.5 * (int)TIMER_WORDPAIN); events.ScheduleEvent(SPELL_WORDPAIN, 0.5 * (int)TIMER_WORDPAIN);
events.ScheduleEvent(SPELL_HEAL, 0.5 * (int) TIMER_HEAL); events.ScheduleEvent(SPELL_HEAL, 0.5 * (int) TIMER_HEAL);
@@ -51,9 +51,9 @@ public:
uint32 nextArcaneExplosionTime; uint32 nextArcaneExplosionTime;
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_ARCANE_BOLT, 0.2 * (int) TIMER_ARCANE_BOLT); events.ScheduleEvent(SPELL_ARCANE_BOLT, 0.2 * (int) TIMER_ARCANE_BOLT);
events.ScheduleEvent(SPELL_ARCANE_EXPLOSION, 0.2 * (int) TIMER_ARCANE_EXPLOSION); events.ScheduleEvent(SPELL_ARCANE_EXPLOSION, 0.2 * (int) TIMER_ARCANE_EXPLOSION);
events.ScheduleEvent(SPELL_POLYMORPH, 0.2 * (int) TIMER_POLYMORPH); events.ScheduleEvent(SPELL_POLYMORPH, 0.2 * (int) TIMER_POLYMORPH);
@@ -191,7 +191,7 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_events.ScheduleEvent(EVENT_SPELL_SHADOWBOLTVOLLEY, 10s); _events.ScheduleEvent(EVENT_SPELL_SHADOWBOLTVOLLEY, 10s);
_events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 18s); _events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 18s);
@@ -52,9 +52,9 @@ public:
_conflagrateThreat = 0.0f; _conflagrateThreat = 0.0f;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_FLAMESTRIKE, 6s); events.ScheduleEvent(EVENT_FLAMESTRIKE, 6s);
events.ScheduleEvent(EVENT_CLEAVE, 8s); events.ScheduleEvent(EVENT_CLEAVE, 8s);
events.ScheduleEvent(EVENT_CONFLAGRATION, 15s); events.ScheduleEvent(EVENT_CONFLAGRATION, 15s);
@@ -70,9 +70,9 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8s, 16s); events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8s, 16s);
events.ScheduleEvent(EVENT_FREEZE, 8s, 16s); events.ScheduleEvent(EVENT_FREEZE, 8s, 16s);
@@ -52,9 +52,9 @@ public:
_Reset(); _Reset();
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_REND, 17s, 20s); events.ScheduleEvent(EVENT_REND, 17s, 20s);
events.ScheduleEvent(EVENT_THRASH, 10s, 12s); events.ScheduleEvent(EVENT_THRASH, 10s, 12s);
} }
@@ -50,9 +50,9 @@ public:
_Reset(); _Reset();
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_FRENZY, 20s); events.ScheduleEvent(EVENT_FRENZY, 20s);
events.ScheduleEvent(EVENT_KNOCK_AWAY, 18s); events.ScheduleEvent(EVENT_KNOCK_AWAY, 18s);
} }
@@ -74,9 +74,9 @@ public:
StartTalking(TALK_SUMMON, 8 * IN_MILLISECONDS); StartTalking(TALK_SUMMON, 8 * IN_MILLISECONDS);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
Talk(TALK_AGGRO); Talk(TALK_AGGRO);
@@ -189,9 +189,9 @@ struct boss_mor_grayhoof : public BossAI
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
_scheduler.Schedule(5s, 10s, PHASE_HUMAN, [this](TaskContext context) _scheduler.Schedule(5s, 10s, PHASE_HUMAN, [this](TaskContext context)
{ {
@@ -68,9 +68,9 @@ public:
Summoned = false; Summoned = false;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_BLAST_WAVE, 20s); events.ScheduleEvent(EVENT_BLAST_WAVE, 20s);
events.ScheduleEvent(EVENT_SHOUT, 2s); events.ScheduleEvent(EVENT_SHOUT, 2s);
events.ScheduleEvent(EVENT_CLEAVE, 6s); events.ScheduleEvent(EVENT_CLEAVE, 6s);
@@ -120,7 +120,7 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
// ### TODO Check combat timing ### // ### TODO Check combat timing ###
events.ScheduleEvent(EVENT_FIRENOVA, 6s); events.ScheduleEvent(EVENT_FIRENOVA, 6s);
@@ -376,7 +376,7 @@ public:
_events.ScheduleEvent(EVENT_ENCAGED_EMBERSEER, 1s); _events.ScheduleEvent(EVENT_ENCAGED_EMBERSEER, 1s);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
// Used to close doors // Used to close doors
if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true)) if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
@@ -49,9 +49,9 @@ struct boss_quartermaster_zigris : public BossAI
_hasDrunkPotion = false; _hasDrunkPotion = false;
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_STUN_BOMB, 16s); events.ScheduleEvent(EVENT_STUN_BOMB, 16s);
events.ScheduleEvent(EVENT_HOOKED_NET, 14s); events.ScheduleEvent(EVENT_HOOKED_NET, 14s);
events.ScheduleEvent(EVENT_SHOOT, 1s); events.ScheduleEvent(EVENT_SHOOT, 1s);
@@ -158,9 +158,9 @@ public:
summon->AI()->DoZoneInCombat(nullptr, 100.0f); summon->AI()->DoZoneInCombat(nullptr, 100.0f);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_WHIRLWIND, 13s, 15s); events.ScheduleEvent(EVENT_WHIRLWIND, 13s, 15s);
events.ScheduleEvent(EVENT_CLEAVE, 15s, 17s); events.ScheduleEvent(EVENT_CLEAVE, 15s, 17s);
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 17s, 19s); events.ScheduleEvent(EVENT_MORTAL_STRIKE, 17s, 19s);
@@ -65,7 +65,7 @@ public:
targetEgg = nullptr; targetEgg = nullptr;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
events.ScheduleEvent(SPELL_HATCH_EGG, 1s); events.ScheduleEvent(SPELL_HATCH_EGG, 1s);
} }
@@ -181,9 +181,9 @@ public:
DoZoneInCombat(nullptr, 100.0f); DoZoneInCombat(nullptr, 100.0f);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_WAR_STOMP, 17s, 20s); events.ScheduleEvent(SPELL_WAR_STOMP, 17s, 20s);
resetTimer = 0; resetTimer = 0;
} }
@@ -113,9 +113,9 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_FLAME_BREAK, 12s); events.ScheduleEvent(EVENT_FLAME_BREAK, 12s);
events.ScheduleEvent(EVENT_IMMOLATE, 3s); events.ScheduleEvent(EVENT_IMMOLATE, 3s);
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 23s); events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 23s);
@@ -67,9 +67,9 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(SPELL_REND, 17s, 20s); events.ScheduleEvent(SPELL_REND, 17s, 20s);
events.ScheduleEvent(SPELL_STRIKE, 10s, 12s); events.ScheduleEvent(SPELL_STRIKE, 10s, 12s);
events.ScheduleEvent(SPELL_INTIMIDATING_ROAR, 25s, 30s); events.ScheduleEvent(SPELL_INTIMIDATING_ROAR, 25s, 30s);
@@ -64,9 +64,9 @@ public:
{ {
boss_warmastervooneAI(Creature* creature) : BossAI(creature, DATA_WARMASTER_VOONE) { } boss_warmastervooneAI(Creature* creature) : BossAI(creature, DATA_WARMASTER_VOONE) { }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.SetPhase(PHASE_BRAWLER); events.SetPhase(PHASE_BRAWLER);
events.ScheduleEvent(EVENT_THRASH, 3s, GROUP_BRAWLER, PHASE_BRAWLER); events.ScheduleEvent(EVENT_THRASH, 3s, GROUP_BRAWLER, PHASE_BRAWLER);
@@ -65,9 +65,9 @@ public:
{ {
boss_broodlordAI(Creature* creature) : BossAI(creature, DATA_BROODLORD_LASHLAYER) { } boss_broodlordAI(Creature* creature) : BossAI(creature, DATA_BROODLORD_LASHLAYER) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_CLEAVE, 8s); events.ScheduleEvent(EVENT_CLEAVE, 8s);
@@ -100,9 +100,9 @@ public:
Initialize(); Initialize();
} }
void EnterCombat(Unit* victim) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(victim); BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SHIMMER, 1s); events.ScheduleEvent(EVENT_SHIMMER, 1s);
events.ScheduleEvent(EVENT_BREATH, 30s); events.ScheduleEvent(EVENT_BREATH, 30s);
@@ -57,9 +57,9 @@ public:
}, 15s); }, 15s);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SHADOWFLAME, 18s); events.ScheduleEvent(EVENT_SHADOWFLAME, 18s);
events.ScheduleEvent(EVENT_WINGBUFFET, 30s); events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
@@ -42,9 +42,9 @@ public:
{ {
boss_firemawAI(Creature* creature) : BossAI(creature, DATA_FIREMAW) { } boss_firemawAI(Creature* creature) : BossAI(creature, DATA_FIREMAW) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SHADOWFLAME, 18s); events.ScheduleEvent(EVENT_SHADOWFLAME, 18s);
events.ScheduleEvent(EVENT_WINGBUFFET, 30s); events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
@@ -47,9 +47,9 @@ public:
{ {
boss_flamegorAI(Creature* creature) : BossAI(creature, DATA_FLAMEGOR) { } boss_flamegorAI(Creature* creature) : BossAI(creature, DATA_FLAMEGOR) { }
void EnterCombat(Unit* victim) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(victim); BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SHADOWFLAME, 18s); events.ScheduleEvent(EVENT_SHADOWFLAME, 18s);
events.ScheduleEvent(EVENT_WINGBUFFET, 30s); events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
@@ -352,7 +352,7 @@ public:
void BeginEvent() void BeginEvent()
{ {
_EnterCombat(); _JustEngagedWith();
Talk(SAY_GAMESBEGIN_2); Talk(SAY_GAMESBEGIN_2);
@@ -552,7 +552,7 @@ struct boss_nefarian : public BossAI
classesPresent.clear(); classesPresent.clear();
} }
void EnterCombat(Unit* /*who*/) override {} void JustEngagedWith(Unit* /*who*/) override {}
void JustDied(Unit* /*killer*/) override void JustDied(Unit* /*killer*/) override
{ {
@@ -129,9 +129,9 @@ public:
return true; return true;
} }
void EnterCombat(Unit* /*victim*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_CLEAVE, 15s); events.ScheduleEvent(EVENT_CLEAVE, 15s);
events.ScheduleEvent(EVENT_STOMP, 35s); events.ScheduleEvent(EVENT_STOMP, 35s);
@@ -114,9 +114,9 @@ public:
} }
} }
void EnterCombat(Unit* victim) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(victim); BossAI::JustEngagedWith(who);
DoCastAOE(SPELL_ESSENCE_OF_THE_RED); DoCastAOE(SPELL_ESSENCE_OF_THE_RED);
// now drop damage requirement to be able to take loot // now drop damage requirement to be able to take loot
@@ -60,9 +60,9 @@ public:
armageddonCasted = false; armageddonCasted = false;
} }
void EnterCombat(Unit* /*attacker*/) override void JustEngagedWith(Unit* /*attacker*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_INFERNO, 13s, 15s); events.ScheduleEvent(EVENT_INFERNO, 13s, 15s);
events.ScheduleEvent(EVENT_IGNITE_MANA, 7s, 19s); events.ScheduleEvent(EVENT_IGNITE_MANA, 7s, 19s);
events.ScheduleEvent(EVENT_LIVING_BOMB, 11s, 16s); events.ScheduleEvent(EVENT_LIVING_BOMB, 11s, 16s);
@@ -69,9 +69,9 @@ public:
massEruptionTimer = 600000; massEruptionTimer = 600000;
} }
void EnterCombat(Unit* /*attacker*/) override void JustEngagedWith(Unit* /*attacker*/) override
{ {
_EnterCombat(); _JustEngagedWith();
DoCastSelf(SPELL_SEPARATION_ANXIETY, true); DoCastSelf(SPELL_SEPARATION_ANXIETY, true);
events.ScheduleEvent(EVENT_ANTIMAGIC_PULSE, 15s); events.ScheduleEvent(EVENT_ANTIMAGIC_PULSE, 15s);
events.ScheduleEvent(EVENT_MAGMA_SHACKLES, 10s); events.ScheduleEvent(EVENT_MAGMA_SHACKLES, 10s);
@@ -43,9 +43,9 @@ public:
{ {
boss_gehennasAI(Creature* creature) : BossAI(creature, DATA_GEHENNAS) {} boss_gehennasAI(Creature* creature) : BossAI(creature, DATA_GEHENNAS) {}
void EnterCombat(Unit* /*attacker*/) override void JustEngagedWith(Unit* /*attacker*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_GEHENNAS_CURSE, 6s, 9s); events.ScheduleEvent(EVENT_GEHENNAS_CURSE, 6s, 9s);
events.ScheduleEvent(EVENT_RAIN_OF_FIRE, 10s); events.ScheduleEvent(EVENT_RAIN_OF_FIRE, 10s);
events.ScheduleEvent(EVENT_SHADOW_BOLT, 3s, 5s); events.ScheduleEvent(EVENT_SHADOW_BOLT, 3s, 5s);
@@ -42,9 +42,9 @@ public:
{ {
boss_lucifronAI(Creature* creature) : BossAI(creature, DATA_LUCIFRON) {} boss_lucifronAI(Creature* creature) : BossAI(creature, DATA_LUCIFRON) {}
void EnterCombat(Unit* /*victim*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_IMPENDING_DOOM, 6s, 11s); events.ScheduleEvent(EVENT_IMPENDING_DOOM, 6s, 11s);
events.ScheduleEvent(EVENT_LUCIFRON_CURSE, 11s, 14s); events.ScheduleEvent(EVENT_LUCIFRON_CURSE, 11s, 14s);
events.ScheduleEvent(EVENT_SHADOW_SHOCK, 5s); events.ScheduleEvent(EVENT_SHADOW_SHOCK, 5s);
@@ -55,9 +55,9 @@ public:
{ {
boss_magmadarAI(Creature* creature) : BossAI(creature, DATA_MAGMADAR) {} boss_magmadarAI(Creature* creature) : BossAI(creature, DATA_MAGMADAR) {}
void EnterCombat(Unit* /*victim*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_FRENZY, 8500ms); events.ScheduleEvent(EVENT_FRENZY, 8500ms);
events.ScheduleEvent(EVENT_PANIC, 9500ms); events.ScheduleEvent(EVENT_PANIC, 9500ms);
events.ScheduleEvent(EVENT_LAVA_BOMB, 12s); events.ScheduleEvent(EVENT_LAVA_BOMB, 12s);
@@ -237,14 +237,14 @@ public:
} }
} }
void EnterCombat(Unit* /*attacker*/) override void JustEngagedWith(Unit* /*attacker*/) override
{ {
if (!events.IsInPhase(PHASE_COMBAT)) if (!events.IsInPhase(PHASE_COMBAT))
{ {
return; return;
} }
_EnterCombat(); _JustEngagedWith();
DoCastAOE(SPELL_SEPARATION_ANXIETY); DoCastAOE(SPELL_SEPARATION_ANXIETY);
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
DoCastSelf(SPELL_AEGIS_OF_RAGNAROS, true); DoCastSelf(SPELL_AEGIS_OF_RAGNAROS, true);
@@ -204,9 +204,9 @@ public:
} }
} }
void EnterCombat(Unit* /*victim*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.SetPhase(PHASE_EMERGED); events.SetPhase(PHASE_EMERGED);
ScheduleCombatEvents(); ScheduleCombatEvents();
} }
@@ -49,9 +49,9 @@ public:
{ {
boss_shazzrahAI(Creature* creature) : BossAI(creature, DATA_SHAZZRAH) {} boss_shazzrahAI(Creature* creature) : BossAI(creature, DATA_SHAZZRAH) {}
void EnterCombat(Unit* /*target*/) override void JustEngagedWith(Unit* /*target*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, 2s, 4s); events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, 2s, 4s);
events.ScheduleEvent(EVENT_SHAZZRAH_CURSE, 7s,11s); events.ScheduleEvent(EVENT_SHAZZRAH_CURSE, 7s,11s);
events.ScheduleEvent(EVENT_MAGIC_GROUNDING, 14s, 19s); events.ScheduleEvent(EVENT_MAGIC_GROUNDING, 14s, 19s);
@@ -56,9 +56,9 @@ public:
{ {
boss_sulfuronAI(Creature* creature) : BossAI(creature, DATA_SULFURON) {} boss_sulfuronAI(Creature* creature) : BossAI(creature, DATA_SULFURON) {}
void EnterCombat(Unit* /*victim*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, 6s, 20s); events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, 6s, 20s);
events.ScheduleEvent(EVENT_INSPIRE, 7s, 10s); events.ScheduleEvent(EVENT_INSPIRE, 7s, 10s);
events.ScheduleEvent(EVENT_KNOCKDOWN, 6s); events.ScheduleEvent(EVENT_KNOCKDOWN, 6s);
@@ -128,7 +128,7 @@ public:
events.Reset(); events.Reset();
} }
void EnterCombat(Unit* /*victim*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
events.ScheduleEvent(EVENT_DARK_STRIKE, 4s, 7s); events.ScheduleEvent(EVENT_DARK_STRIKE, 4s, 7s);
events.ScheduleEvent(EVENT_DARK_MENDING, 15s, 30s); events.ScheduleEvent(EVENT_DARK_MENDING, 15s, 30s);
@@ -226,7 +226,7 @@ struct npc_lava_spawn : public ScriptedAI
_scheduler.CancelAll(); _scheduler.CancelAll();
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_scheduler.Schedule(15s, [this](TaskContext context) _scheduler.Schedule(15s, [this](TaskContext context)
{ {
@@ -71,7 +71,7 @@ public:
me->SetReactState(REACT_AGGRESSIVE); me->SetReactState(REACT_AGGRESSIVE);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 500ms); events.ScheduleEvent(EVENT_CHECK_HEALTH1, 500ms);
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 500ms); events.ScheduleEvent(EVENT_CHECK_HEALTH2, 500ms);
@@ -79,9 +79,9 @@ public:
Talk(SAY_DEATH); Talk(SAY_DEATH);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_SPELL_HATEFUL_BOLT, 10000); events.ScheduleEvent(EVENT_SPELL_HATEFUL_BOLT, 10000);
@@ -43,9 +43,9 @@ struct boss_maiden_of_virtue : public BossAI
{ {
boss_maiden_of_virtue(Creature* creature) : BossAI(creature, DATA_MAIDEN) { } boss_maiden_of_virtue(Creature* creature) : BossAI(creature, DATA_MAIDEN) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
DoCastAOE(SPELL_HOLY_GROUND, true); DoCastAOE(SPELL_HOLY_GROUND, true);
@@ -366,9 +366,9 @@ public:
} }
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
scheduler.Schedule(Seconds(15), Seconds(25), [this](TaskContext task) scheduler.Schedule(Seconds(15), Seconds(25), [this](TaskContext task)
{ {
@@ -124,9 +124,9 @@ struct boss_moroes : public BossAI
DoCastSelf(SPELL_DUAL_WIELD, true); DoCastSelf(SPELL_DUAL_WIELD, true);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_SPELL_VANISH, 30s); events.ScheduleEvent(EVENT_SPELL_VANISH, 30s);
@@ -251,7 +251,7 @@ public:
Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
HandleDoors(false); HandleDoors(false);
SwitchToPortalPhase(); SwitchToPortalPhase();
@@ -158,7 +158,7 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
if (instance) if (instance)
instance->SetData(DATA_NIGHTBANE, IN_PROGRESS); instance->SetData(DATA_NIGHTBANE, IN_PROGRESS);
@@ -105,7 +105,7 @@ public:
InfernalPoint* point; InfernalPoint* point;
void Reset() override { } void Reset() override { }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void MoveInLineOfSight(Unit* /*who*/) override { } void MoveInLineOfSight(Unit* /*who*/) override { }
void UpdateAI(uint32 diff) override void UpdateAI(uint32 diff) override
@@ -233,7 +233,7 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
DoZoneInCombat(); DoZoneInCombat();
@@ -485,7 +485,7 @@ public:
{ {
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
DoZoneInCombat(); DoZoneInCombat();
} }
@@ -70,7 +70,7 @@ struct boss_servant_quarters : public BossAI
me->DespawnOrUnsummon(1); me->DespawnOrUnsummon(1);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
me->setActive(true); me->setActive(true);
if (me->GetEntry() == NPC_HYAKISS_THE_LURKER) if (me->GetEntry() == NPC_HYAKISS_THE_LURKER)
@@ -150,7 +150,7 @@ public:
instance->HandleGameObject(instance->GetGuidData(DATA_GO_LIBRARY_DOOR), true); instance->HandleGameObject(instance->GetGuidData(DATA_GO_LIBRARY_DOOR), true);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
@@ -584,7 +584,7 @@ public:
CastTimer = 2000 + (rand() % 3000); CastTimer = 2000 + (rand() % 3000);
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void UpdateAI(uint32 diff) override void UpdateAI(uint32 diff) override
{ {
@@ -91,7 +91,7 @@ public:
AmplifyTimer = 2000; AmplifyTimer = 2000;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
} }
@@ -148,7 +148,7 @@ public:
SacrificeGUID.Clear(); SacrificeGUID.Clear();
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void AttackStart(Unit* /*who*/) override { } void AttackStart(Unit* /*who*/) override { }
void MoveInLineOfSight(Unit* /*who*/) override { } void MoveInLineOfSight(Unit* /*who*/) override { }
@@ -219,7 +219,7 @@ public:
FireboltTimer = 2000; FireboltTimer = 2000;
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void UpdateAI(uint32 diff) override void UpdateAI(uint32 diff) override
{ {
@@ -313,7 +313,7 @@ public:
DoCast(me, SPELL_SUMMON_IMP, true); DoCast(me, SPELL_SUMMON_IMP, true);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
DoZoneInCombat(); DoZoneInCombat();
@@ -158,7 +158,7 @@ public:
Initialize(); Initialize();
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_DOROTHEE_AGGRO); Talk(SAY_DOROTHEE_AGGRO);
DoZoneInCombat(); DoZoneInCombat();
@@ -263,7 +263,7 @@ public:
YipTimer = 10000; YipTimer = 10000;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
DoZoneInCombat(); DoZoneInCombat();
} }
@@ -358,7 +358,7 @@ public:
ScriptedAI::MoveInLineOfSight(who); ScriptedAI::MoveInLineOfSight(who);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_STRAWMAN_AGGRO); Talk(SAY_STRAWMAN_AGGRO);
DoZoneInCombat(); DoZoneInCombat();
@@ -467,7 +467,7 @@ public:
RustCount = 0; RustCount = 0;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_TINHEAD_AGGRO); Talk(SAY_TINHEAD_AGGRO);
DoZoneInCombat(); DoZoneInCombat();
@@ -599,7 +599,7 @@ public:
ScriptedAI::AttackStart(who); ScriptedAI::AttackStart(who);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_ROAR_AGGRO); Talk(SAY_ROAR_AGGRO);
DoZoneInCombat(); DoZoneInCombat();
@@ -707,7 +707,7 @@ public:
Talk(SAY_CRONE_SLAY); Talk(SAY_CRONE_SLAY);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_CRONE_AGGRO); Talk(SAY_CRONE_AGGRO);
DoZoneInCombat(); DoZoneInCombat();
@@ -775,7 +775,7 @@ public:
MoveTimer = 1000; MoveTimer = 1000;
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void MoveInLineOfSight(Unit* /*who*/) override void MoveInLineOfSight(Unit* /*who*/) override
@@ -886,7 +886,7 @@ public:
IsChasing = false; IsChasing = false;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_WOLF_AGGRO); Talk(SAY_WOLF_AGGRO);
DoZoneInCombat(); DoZoneInCombat();
@@ -1118,7 +1118,7 @@ public:
RomuloDead = false; RomuloDead = false;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
DoZoneInCombat(); DoZoneInCombat();
} }
@@ -1288,7 +1288,7 @@ public:
//LOG_ERROR("scripts", "boss_romuloAI: DamageTaken reach end of code, that should not happen."); //LOG_ERROR("scripts", "boss_romuloAI: DamageTaken reach end of code, that should not happen.");
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
DoZoneInCombat(); DoZoneInCombat();
Talk(SAY_ROMULO_AGGRO); Talk(SAY_ROMULO_AGGRO);
@@ -168,7 +168,7 @@ public:
Start(false, false); Start(false, false);
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void WaypointReached(uint32 waypointId) override void WaypointReached(uint32 waypointId) override
{ {
@@ -480,7 +480,7 @@ public:
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
} }
void EnterCombat(Unit* /*who*/) override {} void JustEngagedWith(Unit* /*who*/) override {}
uint32 NextStep(uint32 nextStep) uint32 NextStep(uint32 nextStep)
{ {
@@ -128,7 +128,7 @@ public:
instance->SetData(DATA_KAELTHAS_EVENT, DONE); instance->SetData(DATA_KAELTHAS_EVENT, DONE);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
instance->SetData(DATA_KAELTHAS_EVENT, IN_PROGRESS); instance->SetData(DATA_KAELTHAS_EVENT, IN_PROGRESS);
me->SetInCombatWithZone(); me->SetInCombatWithZone();
@@ -147,7 +147,7 @@ public:
++HelpersKilled; ++HelpersKilled;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
summons.DoZoneInCombat(); summons.DoZoneInCombat();
@@ -336,7 +336,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
ScriptedAI::EnterEvadeMode(why); ScriptedAI::EnterEvadeMode(why);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
if (Creature* delrissa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_DELRISSA))) if (Creature* delrissa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_DELRISSA)))
if (delrissa->IsAlive() && !delrissa->IsEngaged()) if (delrissa->IsAlive() && !delrissa->IsEngaged())
@@ -434,9 +434,9 @@ public:
{ {
boss_kagani_nightstrikeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { } boss_kagani_nightstrikeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
boss_priestess_lackey_commonAI::EnterCombat(who); boss_priestess_lackey_commonAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SPELL_GOUGE, 5500); events.ScheduleEvent(EVENT_SPELL_GOUGE, 5500);
events.ScheduleEvent(EVENT_SPELL_KICK, 9000); events.ScheduleEvent(EVENT_SPELL_KICK, 9000);
@@ -534,10 +534,10 @@ public:
{ {
boss_ellris_duskhallowAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { } boss_ellris_duskhallowAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
me->CastSpell(me, SPELL_SUMMON_IMP, false); me->CastSpell(me, SPELL_SUMMON_IMP, false);
boss_priestess_lackey_commonAI::EnterCombat(who); boss_priestess_lackey_commonAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 3000); events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 3000);
events.ScheduleEvent(EVENT_SPELL_SHADOW_BOLT, 1000); events.ScheduleEvent(EVENT_SPELL_SHADOW_BOLT, 1000);
@@ -612,9 +612,9 @@ public:
{ {
boss_eramas_brightblazeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { } boss_eramas_brightblazeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
boss_priestess_lackey_commonAI::EnterCombat(who); boss_priestess_lackey_commonAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SPELL_KNOCKDOWN, 6000); events.ScheduleEvent(EVENT_SPELL_KNOCKDOWN, 6000);
events.ScheduleEvent(EVENT_SPELL_SNAP_KICK, 3000); events.ScheduleEvent(EVENT_SPELL_SNAP_KICK, 3000);
@@ -686,9 +686,9 @@ public:
{ {
boss_yazzaiAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { } boss_yazzaiAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
boss_priestess_lackey_commonAI::EnterCombat(who); boss_priestess_lackey_commonAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SPELL_POLYMORPH, 1000); events.ScheduleEvent(EVENT_SPELL_POLYMORPH, 1000);
events.ScheduleEvent(EVENT_SPELL_ICE_BLOCK, 1000); events.ScheduleEvent(EVENT_SPELL_ICE_BLOCK, 1000);
@@ -794,9 +794,9 @@ public:
{ {
boss_warlord_salarisAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { } boss_warlord_salarisAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
boss_priestess_lackey_commonAI::EnterCombat(who); boss_priestess_lackey_commonAI::JustEngagedWith(who);
me->CastSpell(me, SPELL_BATTLE_SHOUT, false); me->CastSpell(me, SPELL_BATTLE_SHOUT, false);
events.ScheduleEvent(EVENT_SPELL_DISARM, 6000); events.ScheduleEvent(EVENT_SPELL_DISARM, 6000);
@@ -886,9 +886,9 @@ public:
me->SummonCreature(NPC_SLIVER, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0); me->SummonCreature(NPC_SLIVER, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
boss_priestess_lackey_commonAI::EnterCombat(who); boss_priestess_lackey_commonAI::JustEngagedWith(who);
me->CastSpell(me, SPELL_FREEZING_TRAP, true); me->CastSpell(me, SPELL_FREEZING_TRAP, true);
events.ScheduleEvent(EVENT_SPELL_AIMED_SHOT, 8000); events.ScheduleEvent(EVENT_SPELL_AIMED_SHOT, 8000);
@@ -976,9 +976,9 @@ public:
uint32 Healing_Wave_Timer; uint32 Healing_Wave_Timer;
// uint32 Frost_Shock_Timer; // uint32 Frost_Shock_Timer;
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
boss_priestess_lackey_commonAI::EnterCombat(who); boss_priestess_lackey_commonAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SPELL_TOTEM1, 2000); events.ScheduleEvent(EVENT_SPELL_TOTEM1, 2000);
events.ScheduleEvent(EVENT_SPELL_TOTEM2, 4000); events.ScheduleEvent(EVENT_SPELL_TOTEM2, 4000);
@@ -1067,9 +1067,9 @@ public:
{ {
boss_zelfanAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { } boss_zelfanAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
boss_priestess_lackey_commonAI::EnterCombat(who); boss_priestess_lackey_commonAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SPELL_DRAGON_GUN, 20000); events.ScheduleEvent(EVENT_SPELL_DRAGON_GUN, 20000);
events.ScheduleEvent(EVENT_SPELL_ROCKET_LAUNCH, 7000); events.ScheduleEvent(EVENT_SPELL_ROCKET_LAUNCH, 7000);
@@ -111,7 +111,7 @@ public:
me->SetPower(POWER_MANA, 0); me->SetPower(POWER_MANA, 0);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
instance->SetData(DATA_SELIN_EVENT, IN_PROGRESS); instance->SetData(DATA_SELIN_EVENT, IN_PROGRESS);
@@ -104,7 +104,7 @@ public:
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_ENERGY_FEEDBACK); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_ENERGY_FEEDBACK);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
instance->SetData(DATA_VEXALLUS_EVENT, IN_PROGRESS); instance->SetData(DATA_VEXALLUS_EVENT, IN_PROGRESS);
@@ -748,7 +748,7 @@ public:
me->LoadEquipment(0, true); me->LoadEquipment(0, true);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
events.ScheduleEvent(EVENT_ICY_TOUCH, 1s, GCD_CAST); events.ScheduleEvent(EVENT_ICY_TOUCH, 1s, GCD_CAST);
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 3s, GCD_CAST); events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 3s, GCD_CAST);
@@ -69,7 +69,7 @@ public:
me->RestoreFaction(); me->RestoreFaction();
} }
void EnterCombat(Unit*) override void JustEngagedWith(Unit*) override
{ {
if (roll_chance_i(33)) if (roll_chance_i(33))
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
@@ -432,7 +432,7 @@ public:
uiStage_timer = 3000; uiStage_timer = 3000;
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_TREE2); Talk(SAY_TREE2);
me->Dismount(); me->Dismount();
@@ -525,7 +525,7 @@ public:
uiValroth_Smite_timer = 1000; uiValroth_Smite_timer = 1000;
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
Talk(SAY_VALROTH_AGGRO); Talk(SAY_VALROTH_AGGRO);
DoCast(who, SPELL_VALROTH_SMITE); DoCast(who, SPELL_VALROTH_SMITE);
@@ -520,7 +520,7 @@ public:
} }
} }
void EnterCombat(Unit*) override void JustEngagedWith(Unit*) override
{ {
if (battleStarted != ENCOUNTER_STATE_FIGHT) if (battleStarted != ENCOUNTER_STATE_FIGHT)
return; return;
@@ -411,7 +411,7 @@ public:
ScriptedAI::MoveInLineOfSight(who); ScriptedAI::MoveInLineOfSight(who);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_MO_AGGRO); Talk(SAY_MO_AGGRO);
me->CastSpell(me, SPELL_RETRIBUTION_AURA, true); me->CastSpell(me, SPELL_RETRIBUTION_AURA, true);
@@ -568,7 +568,7 @@ public:
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, FAIL); instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, FAIL);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_WH_INTRO); Talk(SAY_WH_INTRO);
events.ScheduleEvent(EVENT_SPELL_HOLY_SMITE, 1s, 3s); events.ScheduleEvent(EVENT_SPELL_HOLY_SMITE, 1s, 3s);
@@ -183,7 +183,7 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
DoZoneInCombat(); DoZoneInCombat();
instance->SetData(DATA_DARKMASTER_GANDLING, IN_PROGRESS); instance->SetData(DATA_DARKMASTER_GANDLING, IN_PROGRESS);
@@ -85,7 +85,7 @@ public:
EventMap events2; EventMap events2;
InstanceScript* instance; InstanceScript* instance;
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
TransformsCount = 0; TransformsCount = 0;
@@ -83,7 +83,7 @@ struct boss_kormok : public ScriptedAI
}); });
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(TALK_AGGRO); Talk(TALK_AGGRO);
@@ -380,7 +380,7 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
originalDisplayId = me->GetDisplayId(); originalDisplayId = me->GetDisplayId();
@@ -60,7 +60,7 @@ public:
}); });
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_scheduler.Schedule(1s, [this](TaskContext context){ _scheduler.Schedule(1s, [this](TaskContext context){
DoCastVictim(SPELL_BANSHEEWAIL); DoCastVictim(SPELL_BANSHEEWAIL);
@@ -181,9 +181,9 @@ struct boss_jarien : public BossAI
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
_scheduler.Schedule(5s, [this](TaskContext context) _scheduler.Schedule(5s, [this](TaskContext context)
{ {
DoCastVictim(SPELL_SHADOW_SHOCK); DoCastVictim(SPELL_SHADOW_SHOCK);
@@ -307,9 +307,9 @@ struct boss_sothos : public BossAI
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
_EnterCombat(); _JustEngagedWith();
_scheduler.Schedule(10s, [this](TaskContext context) _scheduler.Schedule(10s, [this](TaskContext context)
{ {
DoCastAOE(SPELL_FEAR); DoCastAOE(SPELL_FEAR);
@@ -82,13 +82,13 @@ public:
} }
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
if (who->GetEntry() == NPC_MADRIGOSA) if (who->GetEntry() == NPC_MADRIGOSA)
return; return;
Talk(YELL_AGGRO); Talk(YELL_AGGRO);
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SPELL_SLASH, 11000); events.ScheduleEvent(EVENT_SPELL_SLASH, 11000);
events.ScheduleEvent(EVENT_SPELL_STOMP, 30000); events.ScheduleEvent(EVENT_SPELL_STOMP, 30000);
@@ -123,9 +123,9 @@ public:
} }
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
if (Creature* alythess = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_GRAND_WARLOCK_ALYTHESS))) if (Creature* alythess = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_GRAND_WARLOCK_ALYTHESS)))
if (alythess->IsAlive() && !alythess->IsInCombat()) if (alythess->IsAlive() && !alythess->IsInCombat())
alythess->AI()->AttackStart(who); alythess->AI()->AttackStart(who);
@@ -271,9 +271,9 @@ public:
} }
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
if (Creature* scorlash = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_LADY_SACROLASH))) if (Creature* scorlash = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_LADY_SACROLASH)))
if (scorlash->IsAlive() && !scorlash->IsInCombat()) if (scorlash->IsAlive() && !scorlash->IsInCombat())
scorlash->AI()->AttackStart(who); scorlash->AI()->AttackStart(who);
@@ -160,9 +160,9 @@ public:
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_FOG_OF_CORRUPTION_CHARM); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_FOG_OF_CORRUPTION_CHARM);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (events.Empty() && events2.Empty()) if (events.Empty() && events2.Empty())
events2.ScheduleEvent(EVENT_INTRO_2, 3000); events2.ScheduleEvent(EVENT_INTRO_2, 3000);
@@ -201,9 +201,9 @@ public:
BossAI::JustDied(killer); BossAI::JustDied(killer);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_ARCANE_BUFFET, 6000); events.ScheduleEvent(EVENT_ARCANE_BUFFET, 6000);
events.ScheduleEvent(EVENT_FROST_BREATH, 15000); events.ScheduleEvent(EVENT_FROST_BREATH, 15000);
events.ScheduleEvent(EVENT_WILD_MAGIC, 10000); events.ScheduleEvent(EVENT_WILD_MAGIC, 10000);
@@ -409,7 +409,7 @@ public:
damage = 0; damage = 0;
} }
void EnterCombat(Unit*) override void JustEngagedWith(Unit*) override
{ {
events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000); events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000);
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000); events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000);
@@ -523,7 +523,7 @@ public:
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000); events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
Talk(SAY_SATH_AGGRO); Talk(SAY_SATH_AGGRO);
} }
@@ -364,7 +364,7 @@ public:
Talk(SAY_KJ_SLAY); Talk(SAY_KJ_SLAY);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
events2.ScheduleEvent(EVENT_TEXT_SPEACH11, 26000, EVENT_GROUP_SPEACH); events2.ScheduleEvent(EVENT_TEXT_SPEACH11, 26000, EVENT_GROUP_SPEACH);
Talk(SAY_KJ_EMERGE); Talk(SAY_KJ_EMERGE);
@@ -86,9 +86,9 @@ public:
me->SetVisible(true); me->SetVisible(true);
} }
void EnterCombat(Unit* who) override void JustEngagedWith(Unit* who) override
{ {
BossAI::EnterCombat(who); BossAI::JustEngagedWith(who);
me->CastSpell(me, SPELL_NEGATIVE_ENERGY, true); me->CastSpell(me, SPELL_NEGATIVE_ENERGY, true);
me->CastSpell(me, SPELL_SUMMON_BLOOD_ELVES_PERIODIC, true); me->CastSpell(me, SPELL_SUMMON_BLOOD_ELVES_PERIODIC, true);
me->CastSpell(me, SPELL_OPEN_PORTAL_PERIODIC, true); me->CastSpell(me, SPELL_OPEN_PORTAL_PERIODIC, true);
@@ -186,7 +186,7 @@ public:
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
events.ScheduleEvent(EVENT_SPAWN_BLACK_HOLE, 15000); events.ScheduleEvent(EVENT_SPAWN_BLACK_HOLE, 15000);
events.ScheduleEvent(EVENT_SPAWN_DARKNESS, 10000); events.ScheduleEvent(EVENT_SPAWN_DARKNESS, 10000);
@@ -110,7 +110,7 @@ public:
SetWeather(WEATHER_STATE_FINE, 0.0f); SetWeather(WEATHER_STATE_FINE, 0.0f);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
events.ScheduleEvent(EVENT_STATIC_DISRUPTION, urand(10000, 20000)); // 10 to 20 seconds (bosskillers) events.ScheduleEvent(EVENT_STATIC_DISRUPTION, urand(10000, 20000)); // 10 to 20 seconds (bosskillers)
events.ScheduleEvent(EVENT_GUST_OF_WIND, urand(20000, 30000)); // 20 to 30 seconds(bosskillers) events.ScheduleEvent(EVENT_GUST_OF_WIND, urand(20000, 30000)); // 20 to 30 seconds(bosskillers)
@@ -391,7 +391,7 @@ public:
me->SetDisableGravity(true); me->SetDisableGravity(true);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
DoZoneInCombat(); DoZoneInCombat();
} }
@@ -105,7 +105,7 @@ public:
EnterPhase(PHASE_LYNX); EnterPhase(PHASE_LYNX);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
instance->SetData(DATA_HALAZZIEVENT, IN_PROGRESS); instance->SetData(DATA_HALAZZIEVENT, IN_PROGRESS);
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
@@ -350,7 +350,7 @@ public:
ScriptedAI::AttackStart(who); ScriptedAI::AttackStart(who);
} }
void EnterCombat(Unit* /*who*/) override {/*DoZoneInCombat();*/ } void JustEngagedWith(Unit* /*who*/) override {/*DoZoneInCombat();*/ }
void UpdateAI(uint32 diff) override void UpdateAI(uint32 diff) override
{ {
@@ -228,7 +228,7 @@ struct boss_hexlord_addAI : public ScriptedAI
void Reset() override { } void Reset() override { }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
DoZoneInCombat(); DoZoneInCombat();
} }
@@ -294,7 +294,7 @@ public:
me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE); me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
instance->SetData(DATA_HEXLORDEVENT, IN_PROGRESS); instance->SetData(DATA_HEXLORDEVENT, IN_PROGRESS);
@@ -175,7 +175,7 @@ public:
Talk(SAY_SLAY); Talk(SAY_SLAY);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
instance->SetData(DATA_JANALAIEVENT, IN_PROGRESS); instance->SetData(DATA_JANALAIEVENT, IN_PROGRESS);
@@ -451,7 +451,7 @@ public:
DoCast(me, SPELL_FIRE_BOMB_DUMMY, true); DoCast(me, SPELL_FIRE_BOMB_DUMMY, true);
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void AttackStart(Unit* /*who*/) override { } void AttackStart(Unit* /*who*/) override { }
@@ -524,7 +524,7 @@ public:
return num == 0; // if num == 0, no more templist return num == 0; // if num == 0, no more templist
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void AttackStart(Unit* /*who*/) override { } void AttackStart(Unit* /*who*/) override { }
void MoveInLineOfSight(Unit* /*who*/) override { } void MoveInLineOfSight(Unit* /*who*/) override { }
@@ -618,7 +618,7 @@ public:
me->SetDisableGravity(true); me->SetDisableGravity(true);
} }
void EnterCombat(Unit* /*who*/) override {/*DoZoneInCombat();*/ } void JustEngagedWith(Unit* /*who*/) override {/*DoZoneInCombat();*/ }
void UpdateAI(uint32 diff) override void UpdateAI(uint32 diff) override
{ {
@@ -280,7 +280,7 @@ public:
} }
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
if (instance) if (instance)
instance->SetData(DATA_NALORAKKEVENT, IN_PROGRESS); instance->SetData(DATA_NALORAKKEVENT, IN_PROGRESS);
@@ -201,7 +201,7 @@ public:
//me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE); //me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
} }
void EnterCombat(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
{ {
instance->SetData(DATA_ZULJINEVENT, IN_PROGRESS); instance->SetData(DATA_ZULJINEVENT, IN_PROGRESS);
@@ -580,7 +580,7 @@ public:
void Reset() override { } void Reset() override { }
void EnterCombat(Unit* /*target*/) override { } void JustEngagedWith(Unit* /*target*/) override { }
void SpellHit(Unit* caster, SpellInfo const* spell) override void SpellHit(Unit* caster, SpellInfo const* spell) override
{ {
@@ -144,7 +144,7 @@ public:
void Reset() override { } void Reset() override { }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void MovementInform(uint32 type, uint32 data) override void MovementInform(uint32 type, uint32 data) override
{ {
@@ -469,7 +469,7 @@ public:
void Reset() override { } void Reset() override { }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void JustDied(Unit* /*killer*/) override void JustDied(Unit* /*killer*/) override
{ {
@@ -618,7 +618,7 @@ public:
uiTargetGUID.Clear(); uiTargetGUID.Clear();
} }
void EnterCombat(Unit* /*who*/) override { } void JustEngagedWith(Unit* /*who*/) override { }
void sGossipSelect(Player* player, uint32 sender, uint32 action) override void sGossipSelect(Player* player, uint32 sender, uint32 action) override
{ {

Some files were not shown because too many files have changed in this diff Show More