Core/AI: Add DamageEffectType and SpellInfo parameters to UnitAI::DamageTaken (#26787)
* Core/AI: Add DamageEffectType and SpellInfo parameters to UnitAI::DamageTaken * Update scripts (cherry picked from commit 0800ab20a8039620fd271a43c173c008af68c22a)
This commit is contained in:
@@ -42,7 +42,7 @@ class TC_GAME_API PetAI : public CreatureAI
|
||||
void MovementInform(uint32 type, uint32 id) override;
|
||||
void OwnerAttackedBy(Unit* attacker) override;
|
||||
void OwnerAttacked(Unit* target) override;
|
||||
void DamageTaken(Unit* attacker, uint32& /*damage*/) override { AttackStart(attacker); }
|
||||
void DamageTaken(Unit* attacker, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override { AttackStart(attacker); }
|
||||
void ReceiveEmote(Player* player, uint32 textEmote) override;
|
||||
void JustEnteredCombat(Unit* who) override { EngagementStart(who); }
|
||||
void JustExitedCombat() override { EngagementOver(); }
|
||||
|
||||
@@ -302,7 +302,7 @@ class TC_GAME_API UnitAI
|
||||
|
||||
// Called at any Damage from any attacker (before damage apply)
|
||||
// Note: it for recalculation damage or special reaction at damage
|
||||
virtual void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) { }
|
||||
virtual void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) { }
|
||||
|
||||
// Called when the creature receives heal
|
||||
virtual void HealReceived(Unit* /*done_by*/, uint32& /*addhealth*/) { }
|
||||
|
||||
@@ -625,7 +625,7 @@ void SmartAI::SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo)
|
||||
GetScript()->ProcessEventsFor(SMART_EVENT_SPELLHIT_TARGET, target->ToUnit(), 0, 0, false, spellInfo, target->ToGameObject());
|
||||
}
|
||||
|
||||
void SmartAI::DamageTaken(Unit* doneBy, uint32& damage)
|
||||
void SmartAI::DamageTaken(Unit* doneBy, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/)
|
||||
{
|
||||
GetScript()->ProcessEventsFor(SMART_EVENT_DAMAGED, doneBy, damage);
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ class TC_GAME_API SmartAI : public CreatureAI
|
||||
void SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo) override;
|
||||
|
||||
// Called at any Damage from any attacker (before damage apply)
|
||||
void DamageTaken(Unit* doneBy, uint32& damage) override;
|
||||
void DamageTaken(Unit* doneBy, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override;
|
||||
|
||||
// Called when the creature receives heal
|
||||
void HealReceived(Unit* doneBy, uint32& addhealth) override;
|
||||
|
||||
@@ -715,7 +715,7 @@ bool Unit::HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel) cons
|
||||
/*static*/ uint32 Unit::DealDamage(Unit* attacker, Unit* victim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellInfo const* spellProto, bool durabilityLoss)
|
||||
{
|
||||
if (UnitAI* victimAI = victim->GetAI())
|
||||
victimAI->DamageTaken(attacker, damage);
|
||||
victimAI->DamageTaken(attacker, damage, damagetype, spellProto);
|
||||
|
||||
if (UnitAI* attackerAI = attacker ? attacker->GetAI() : nullptr)
|
||||
attackerAI->DamageDealt(victim, damage, damagetype);
|
||||
|
||||
@@ -266,7 +266,7 @@ struct boss_garothi_worldbreaker : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(_apocalypseDriveHealthLimit[_apocalypseDriveCount], damage))
|
||||
{
|
||||
|
||||
@@ -107,7 +107,7 @@ struct boss_balinda : public ScriptedAI
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(40, damage) && !HasCastIceblock)
|
||||
{
|
||||
|
||||
@@ -66,7 +66,7 @@ class boss_pit_lord_argaloth : public CreatureScript
|
||||
_DespawnAtEvade();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(33, damage) ||
|
||||
me->HealthBelowPctDamaged(66, damage))
|
||||
|
||||
+1
-1
@@ -179,7 +179,7 @@ struct boss_coren_direbrew : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(66, damage) && events.IsInPhase(PHASE_ONE))
|
||||
{
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ class boss_general_angerforge : public CreatureScript
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, 16s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(20, damage) && _events.IsInPhase(PHASE_ONE))
|
||||
{
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ class boss_magmus : public CreatureScript
|
||||
_events.ScheduleEvent(EVENT_FIERY_BURST, 5s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(50, damage) && _events.IsInPhase(PHASE_ONE))
|
||||
{
|
||||
|
||||
+1
-1
@@ -172,7 +172,7 @@ class boss_doomrel : public CreatureScript
|
||||
_events.ScheduleEvent(EVENT_DEMONARMOR, 16s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_voidwalkers && !HealthAbovePct(50))
|
||||
{
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ struct boss_mother_smolderweb : public BossAI
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->GetHealth() <= damage)
|
||||
DoCast(me, SPELL_SUMMON_SPIRE_SPIDERLING, true);
|
||||
|
||||
+1
-1
@@ -110,7 +110,7 @@ struct boss_razorgore : public BossAI
|
||||
DoChangePhase();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// @todo this is wrong - razorgore should still take damage, he should just nuke the whole room and respawn if he dies during P1
|
||||
if (!secondPhase)
|
||||
|
||||
@@ -128,7 +128,7 @@ struct npc_firesworn : public ScriptedAI
|
||||
ScheduleTasks();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
uint32 const health10pct = me->CountPctFromMaxHealth(10);
|
||||
uint32 health = me->GetHealth();
|
||||
|
||||
@@ -68,7 +68,7 @@ struct boss_golemagg : public BossAI
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 7s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!HealthBelowPct(10) || me->HasAura(SPELL_ENRAGE))
|
||||
return;
|
||||
@@ -133,7 +133,7 @@ struct npc_core_rager : public ScriptedAI
|
||||
});
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (HealthAbovePct(50) || !_instance)
|
||||
return;
|
||||
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_BERSERK, 12min);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!HealthAbovePct(15) && !_infused)
|
||||
{
|
||||
|
||||
@@ -122,7 +122,7 @@ public:
|
||||
});
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// Attumen does not die until he mounts Midnight, let health fall to 1 and prevent further damage.
|
||||
if (damage >= me->GetHealth() && _phase != PHASE_MOUNTED)
|
||||
@@ -305,7 +305,7 @@ public:
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// Midnight never dies, let health fall to 1 and prevent further damage.
|
||||
if (damage >= me->GetHealth())
|
||||
|
||||
@@ -188,7 +188,7 @@ public:
|
||||
SetupGroundPhase();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (events.IsInPhase(PHASE_FLY))
|
||||
{
|
||||
|
||||
@@ -164,7 +164,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* done_by, uint32 &damage) override
|
||||
void DamageTaken(Unit* done_by, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!done_by || done_by->GetGUID() != malchezaar)
|
||||
damage = 0;
|
||||
|
||||
@@ -492,7 +492,7 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*pAttacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*pAttacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!DrinkInturrupted && Drinking && damage)
|
||||
DrinkInturrupted = true;
|
||||
|
||||
@@ -1144,7 +1144,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override;
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override;
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
@@ -1222,7 +1222,7 @@ public:
|
||||
me->DespawnOrUnsummon();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage < me->GetHealth())
|
||||
return;
|
||||
@@ -1484,7 +1484,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32 &damage)
|
||||
void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/)
|
||||
{
|
||||
if (damage < me->GetHealth())
|
||||
return;
|
||||
|
||||
@@ -171,7 +171,7 @@ struct boss_felblood_kaelthas : public BossAI
|
||||
_DespawnAtEvade();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32 &damage) override
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// Checking for lethal damage first so we trigger the outro phase without triggering phase two in case of oneshot attacks
|
||||
if (damage >= me->GetHealth() && !events.IsInPhase(PHASE_OUTRO))
|
||||
@@ -401,7 +401,7 @@ struct npc_felblood_kaelthas_phoenix : public ScriptedAI
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override { }
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
|
||||
@@ -100,7 +100,7 @@ class boss_vexallus : public CreatureScript
|
||||
summons.Summon(summoned);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (_enraged)
|
||||
return;
|
||||
|
||||
@@ -586,7 +586,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* pDoneBy, uint32 &uiDamage) override
|
||||
void DamageTaken(Unit* pDoneBy, uint32 &uiDamage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (m_bIsDuelInProgress && pDoneBy && pDoneBy->IsControlledByPlayer())
|
||||
{
|
||||
|
||||
@@ -53,7 +53,7 @@ struct boss_azshir_the_sleepless : public BossAI
|
||||
events.ScheduleEvent(EVENT_TERRIFY, 20s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_siphon && me->HealthBelowPctDamaged(50, damage))
|
||||
{
|
||||
|
||||
@@ -71,7 +71,7 @@ struct boss_bloodmage_thalnos : public BossAI
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_hpYell && me->HealthBelowPctDamaged(35, damage))
|
||||
{
|
||||
|
||||
@@ -454,7 +454,7 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* who, uint32& damage) override
|
||||
void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && who != me)
|
||||
{
|
||||
|
||||
@@ -92,7 +92,7 @@ struct boss_herod : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_enrage && me->HealthBelowPctDamaged(30, damage))
|
||||
{
|
||||
|
||||
+1
-1
@@ -83,7 +83,7 @@ struct boss_high_inquisitor_fairbanks : public BossAI
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(25, damage))
|
||||
{
|
||||
|
||||
@@ -80,7 +80,7 @@ struct boss_interrogator_vishas : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(60, damage) && _yellCount < 1)
|
||||
{
|
||||
|
||||
@@ -148,7 +148,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && !_fakeDeath)
|
||||
{
|
||||
@@ -346,7 +346,7 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// When Whitemane falls below 50% cast Deep sleep and schedule to ressurrect
|
||||
if (me->HealthBelowPctDamaged(50, damage) && !_ressurectionInProgress)
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->GetHealth() <= damage)
|
||||
DoCast(me, 23261, true); //Summon Darkreaver's Fallen Charger
|
||||
|
||||
@@ -77,7 +77,7 @@ public:
|
||||
summoned->AI()->AttackStart(me->GetVictim());
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(25, damage) && !Mages)
|
||||
{
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 14s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(25, damage))
|
||||
{
|
||||
|
||||
@@ -137,7 +137,7 @@ struct boss_apothecary_hummel : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
if (_deadCount < 2)
|
||||
|
||||
@@ -241,7 +241,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1ms);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32 &damage) override
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (phase != PHASE_GROUND && damage >= me->GetHealth())
|
||||
damage = 0;
|
||||
|
||||
@@ -201,7 +201,7 @@ struct boss_kalecgos : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* who, uint32 &damage) override
|
||||
void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && (!who || who->GetGUID() != me->GetGUID()))
|
||||
damage = 0;
|
||||
@@ -369,7 +369,7 @@ struct boss_kalecgos_human : public ScriptedAI
|
||||
Talk(SAY_GOOD_DEATH);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* who, uint32 &damage) override
|
||||
void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!who || who->GetGUID() != _sathGUID)
|
||||
damage = 0;
|
||||
@@ -486,7 +486,7 @@ struct boss_sathrovarr : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* who, uint32 &damage) override
|
||||
void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && (!who || who->GetGUID() != me->GetGUID()))
|
||||
damage = 0;
|
||||
|
||||
@@ -1095,7 +1095,7 @@ public:
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage > me->GetHealth())
|
||||
DoCast(me, SPELL_FELFIRE_FISSION, true);
|
||||
|
||||
@@ -268,7 +268,7 @@ struct boss_muru : public BossAI
|
||||
DoCast(me, SPELL_NEGATIVE_ENERGY_PERIODIC, true);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
|
||||
@@ -110,7 +110,7 @@ struct boss_hogger : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(30, damage) && !_hasEnraged)
|
||||
{
|
||||
|
||||
@@ -127,7 +127,7 @@ struct boss_randolph_moloch : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(71, damage) && me->HealthAbovePct(59) && !_firstVanish)
|
||||
{
|
||||
|
||||
@@ -165,7 +165,7 @@ struct boss_mandokir : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(20, damage) && !me->HasAura(SPELL_FRENZY))
|
||||
{
|
||||
@@ -301,7 +301,7 @@ struct npc_ohgan : public ScriptedAI
|
||||
DoCastAOE(SPELL_OHGAN_ORDERS, true);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
});
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* who, uint32& damage) override
|
||||
void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if ((!who || who->GetTypeId() == TYPEID_UNIT) && me->HealthBelowPctDamaged(82, damage))
|
||||
damage = 0;
|
||||
@@ -99,7 +99,7 @@ public:
|
||||
{
|
||||
npc_big_earlAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void DamageTaken(Unit* who, uint32& damage) override
|
||||
void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if ((!who || who->GetTypeId() == TYPEID_UNIT) && me->HealthBelowPctDamaged(82, damage))
|
||||
damage = 0;
|
||||
|
||||
@@ -108,7 +108,7 @@ struct npc_blackfathom_deeps_event : public ScriptedAI
|
||||
_instance->SetData(DATA_EVENT, _instance->GetData(DATA_EVENT) + 1);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->GetEntry() != NPC_MURKSHALLOW_SOFTSHELL && me->GetEntry() != NPC_BARBED_CRUSTACEAN)
|
||||
return;
|
||||
|
||||
@@ -55,7 +55,7 @@ struct boss_aku_mai : public BossAI
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, 5s, 9s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*atacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*atacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!IsEnraged && me->HealthBelowPctDamaged(30, damage))
|
||||
{
|
||||
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override { }
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
@@ -176,7 +176,7 @@ public:
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override { }
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
@@ -226,7 +226,7 @@ public:
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override { }
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
@@ -398,7 +398,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(10, damage))
|
||||
{
|
||||
|
||||
@@ -191,7 +191,7 @@ hyjal_trashAI::hyjal_trashAI(Creature* creature) : EscortAI(creature)
|
||||
Reset();
|
||||
}
|
||||
|
||||
void hyjal_trashAI::DamageTaken(Unit* done_by, uint32 &damage)
|
||||
void hyjal_trashAI::DamageTaken(Unit* done_by, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/)
|
||||
{
|
||||
if (!done_by || done_by->GetTypeId() == TYPEID_PLAYER || done_by->IsPet())
|
||||
{
|
||||
|
||||
@@ -28,7 +28,7 @@ struct hyjal_trashAI : public EscortAI
|
||||
|
||||
void JustDied(Unit* /*killer*/) override;
|
||||
|
||||
void DamageTaken(Unit* done_by, uint32 &damage) override;
|
||||
void DamageTaken(Unit* done_by, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override;
|
||||
|
||||
public:
|
||||
InstanceScript* instance;
|
||||
|
||||
@@ -74,7 +74,7 @@ class boss_mal_ganis : public CreatureScript
|
||||
instance->SetBossState(DATA_MAL_GANIS, NOT_STARTED);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*source*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*source*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
|
||||
@@ -126,7 +126,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_EARTH_SPIKE, 16s, 21s, 0, PHASE_NORMAL);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(50, damage) && (events.GetPhaseMask() & PHASE_MASK_NORMAL) && !_hasDispersed)
|
||||
{
|
||||
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_BURNING_LIGHT, 12s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if ((me->HealthBelowPctDamaged(66, damage) && _phase == PHASE_FIRST_SHIELD) ||
|
||||
(me->HealthBelowPctDamaged(33, damage) && _phase == PHASE_SECOND_SHIELD))
|
||||
|
||||
@@ -72,7 +72,7 @@ class boss_kurinnaxx : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_WIDE_SLASH, 11s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_enraged && HealthBelowPct(30))
|
||||
{
|
||||
|
||||
@@ -77,7 +77,7 @@ class boss_moam : public CreatureScript
|
||||
//events.ScheduleEvent(EVENT_WIDE_SLASH, 11s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_isStonePhase && HealthBelowPct(45))
|
||||
{
|
||||
|
||||
@@ -403,7 +403,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
switch (instance->GetData(DATA_CTHUN_PHASE))
|
||||
{
|
||||
@@ -841,7 +841,7 @@ public:
|
||||
instance->SetData(DATA_CTHUN_PHASE, PHASE_CTHUN_DONE);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
switch (instance->GetData(DATA_CTHUN_PHASE))
|
||||
{
|
||||
|
||||
@@ -108,7 +108,7 @@ struct boss_twinemperorsAI : public BossAI
|
||||
return instance->GetCreature(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
Unit* pOtherBoss = GetOtherBoss();
|
||||
if (pOtherBoss)
|
||||
|
||||
@@ -111,7 +111,7 @@ class boss_viscidus : public CreatureScript
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* attacker, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (_phase != PHASE_MELEE)
|
||||
return;
|
||||
|
||||
@@ -110,7 +110,7 @@ class boss_ozruk : public CreatureScript
|
||||
BossAI::JustSummoned(summon);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32 &damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!me->HealthBelowPctDamaged(25, damage) || me->HasAura(SPELL_ENRAGE))
|
||||
return;
|
||||
|
||||
@@ -146,7 +146,7 @@ class boss_slabhide : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_AIR_PHASE, 10s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (_isFlying && damage >= me->GetHealth())
|
||||
damage = me->GetHealth() - 1; // Let creature health fall to 1 hp but prevent it from dying during air phase.
|
||||
|
||||
@@ -117,7 +117,7 @@ class npc_sc_millhouse_manastorm : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_FEAR, 8s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
damage = me->GetHealth() - 1;
|
||||
|
||||
@@ -141,7 +141,7 @@ struct boss_volazj : public BossAI
|
||||
return 100*(me->GetHealth()-damage)/me->GetMaxHealth();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*pAttacker*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*pAttacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
damage = 0;
|
||||
|
||||
@@ -205,7 +205,7 @@ struct boss_jedoga_shadowseeker : public BossAI
|
||||
return 0;
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (HealthBelowPct(55) && events.IsInPhase(PHASE_ONE))
|
||||
{
|
||||
|
||||
@@ -220,7 +220,7 @@ struct boss_prince_taldaram : public BossAI
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*doneBy*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*doneBy*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
Unit* embraceTarget = GetEmbraceTarget();
|
||||
|
||||
|
||||
@@ -342,7 +342,7 @@ struct boss_anub_arak : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*source*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*source*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HasAura(SPELL_SUBMERGE))
|
||||
damage = 0;
|
||||
|
||||
@@ -353,7 +353,7 @@ struct boss_hadronox : public BossAI
|
||||
}
|
||||
|
||||
// Safeguard to prevent Hadronox dying to NPCs
|
||||
void DamageTaken(Unit* who, uint32& damage) override
|
||||
void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if ((!who || !who->IsControlledByPlayer()) && me->HealthBelowPct(70))
|
||||
{
|
||||
@@ -514,7 +514,7 @@ struct npc_anub_ar_crusher : public npc_hadronox_crusherPackAI
|
||||
Talk(CRUSHER_SAY_AGGRO);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*source*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*source*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (_hadFrenzy || !me->HealthBelowPctDamaged(25, damage))
|
||||
return;
|
||||
|
||||
+2
-2
@@ -135,7 +135,7 @@ struct boss_baltharus_the_warborn : public BossAI
|
||||
events.ScheduleEvent(EVENT_SUMMONS_ATTACK, 2s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (GetDifficulty() == DIFFICULTY_10_N)
|
||||
{
|
||||
@@ -247,7 +247,7 @@ struct npc_baltharus_the_warborn_clone : public BossAI
|
||||
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override { }
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// Setting DATA_BALTHARUS_SHARED_HEALTH to 0 when killed would bug the boss.
|
||||
if (me->GetHealth() > damage)
|
||||
|
||||
@@ -279,7 +279,7 @@ class boss_halion : public CreatureScript
|
||||
|
||||
Position const* GetMeteorStrikePosition() const { return &_meteorStrikePos; }
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& damage) override
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && !events.IsInPhase(PHASE_THREE))
|
||||
damage = me->GetHealth() - 1;
|
||||
@@ -466,7 +466,7 @@ class boss_twilight_halion : public CreatureScript
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& damage) override
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && !events.IsInPhase(PHASE_THREE))
|
||||
damage = me->GetHealth() - 1;
|
||||
|
||||
+2
-2
@@ -190,7 +190,7 @@ public:
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
@@ -318,7 +318,7 @@ public:
|
||||
me->RemoveAura(SPELL_SHIELD);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
|
||||
+1
-1
@@ -265,7 +265,7 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage) override
|
||||
void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (uiDamage > me->GetHealth() && uiPhase <= PHASE_SKELETON)
|
||||
{
|
||||
|
||||
+2
-2
@@ -593,7 +593,7 @@ struct npc_frost_sphere : public ScriptedAI
|
||||
me->GetMotionMaster()->MoveRandom(20.0f);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->GetHealth() <= damage)
|
||||
{
|
||||
@@ -676,7 +676,7 @@ struct npc_anubarak_spike : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& uiDamage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& uiDamage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
uiDamage = 0;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ struct boss_bronjahm : public BossAI
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (events.IsInPhase(PHASE_1) && !HealthAbovePct(30))
|
||||
{
|
||||
|
||||
@@ -83,7 +83,7 @@ class boss_falric : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_DEFILING_HORROR, 21s, 39s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if ((_hopelessnessCount < 1 && me->HealthBelowPctDamaged(66, damage))
|
||||
|| (_hopelessnessCount < 2 && me->HealthBelowPctDamaged(33, damage))
|
||||
|
||||
@@ -845,7 +845,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
|
||||
lichking->AI()->EnterEvadeMode(); // event failed
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && _invincibility)
|
||||
damage = me->GetHealth() - 1;
|
||||
@@ -1195,7 +1195,7 @@ class npc_the_lich_king_escape_hor : public CreatureScript
|
||||
_despawn = false;
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
damage = me->GetHealth() - 1;
|
||||
@@ -2476,7 +2476,7 @@ class npc_uther_quel_delar : public CreatureScript
|
||||
_events.ScheduleEvent(EVENT_UTHER_1, 1ms);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
damage = me->GetHealth() - 1;
|
||||
|
||||
@@ -124,7 +124,7 @@ struct boss_garfrost : public BossAI
|
||||
tyrannus->AI()->Talk(SAY_TYRANNUS_DEATH);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (events.IsInPhase(PHASE_ONE) && !HealthAbovePct(66))
|
||||
{
|
||||
|
||||
@@ -153,7 +153,7 @@ struct boss_drakkari_colossus : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->IsImmuneToPC())
|
||||
damage = 0;
|
||||
@@ -295,7 +295,7 @@ struct boss_drakkari_elemental : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (HealthBelowPct(50))
|
||||
{
|
||||
|
||||
@@ -69,7 +69,7 @@ struct boss_eck : public BossAI
|
||||
events.ScheduleEvent(EVENT_BERSERK, 60s, 90s); // 60-90 secs according to wowwiki
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_berserk && me->HealthBelowPctDamaged(20, damage))
|
||||
{
|
||||
|
||||
@@ -139,7 +139,7 @@ struct boss_slad_ran : public BossAI
|
||||
});
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (_phase == Phase::PHASE_NONE && HealthBelowPct(30))
|
||||
{
|
||||
|
||||
@@ -493,7 +493,7 @@ struct BloodPrincesBossAI : public BossAI
|
||||
me->SetHealth(_spawnHealth);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& damage) override
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_isEmpowered)
|
||||
{
|
||||
@@ -1068,7 +1068,7 @@ struct npc_dark_nucleus : public ScriptedAI
|
||||
DoCast(who, SPELL_SHADOW_RESONANCE_RESIST);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* attacker, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (attacker == me)
|
||||
return;
|
||||
|
||||
@@ -347,7 +347,7 @@ struct boss_deathbringer_saurfang : public BossAI
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
damage = me->GetHealth() - 1;
|
||||
|
||||
@@ -675,7 +675,7 @@ class npc_gunship : public CreatureScript
|
||||
me->SetRegenerateHealth(false);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*source*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*source*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
@@ -960,7 +960,7 @@ struct npc_high_overlord_saurfang_igb : public ScriptedAI
|
||||
return false;
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(65, damage) && !me->HasAura(SPELL_TASTE_OF_BLOOD))
|
||||
DoCast(me, SPELL_TASTE_OF_BLOOD, true);
|
||||
@@ -1214,7 +1214,7 @@ struct npc_muradin_bronzebeard_igb : public ScriptedAI
|
||||
return false;
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(65, damage) && me->HasAura(SPELL_TASTE_OF_BLOOD))
|
||||
DoCast(me, SPELL_TASTE_OF_BLOOD, true);
|
||||
@@ -1445,7 +1445,7 @@ struct npc_gunship_boarding_addAI : public gunship_npc_AI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (_usedDesperateResolve)
|
||||
return;
|
||||
|
||||
@@ -403,7 +403,7 @@ struct boss_lady_deathwhisper : public BossAI
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*damageDealer*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*damageDealer*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// phase transition
|
||||
if (_phase == PHASE_ONE && damage > uint32(me->GetPower(POWER_MANA)))
|
||||
|
||||
@@ -340,7 +340,7 @@ struct boss_professor_putricide : public BossAI
|
||||
DoZoneInCombat(summon);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
@@ -402,7 +402,7 @@ struct boss_sindragosa : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_isThirdPhase && !HealthAbovePct(35))
|
||||
{
|
||||
|
||||
@@ -677,7 +677,7 @@ struct npc_crok_scourgebane : public EscortAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// check wipe
|
||||
if (!_wipeCheckTimer)
|
||||
|
||||
@@ -659,7 +659,7 @@ struct boss_the_lich_king : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (events.IsInPhase(PHASE_ONE) && !HealthAbovePct(70))
|
||||
{
|
||||
@@ -1281,7 +1281,7 @@ struct npc_shambling_horror_icc : public ScriptedAI
|
||||
_events.ScheduleEvent(EVENT_ENRAGE, 11s, 14s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_frenzied && IsHeroic() && me->HealthBelowPctDamaged(20, damage))
|
||||
{
|
||||
@@ -1438,7 +1438,7 @@ struct npc_valkyr_shadowguard : public ScriptedAI
|
||||
_events.ScheduleEvent(EVENT_GRAB_PLAYER, 2500ms);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!IsHeroic())
|
||||
return;
|
||||
@@ -1707,7 +1707,7 @@ struct npc_terenas_menethil : public ScriptedAI
|
||||
EngagementOver();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
|
||||
@@ -347,7 +347,7 @@ struct boss_valithria_dreamwalker : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(25, damage))
|
||||
{
|
||||
|
||||
@@ -372,7 +372,7 @@ struct boss_gothik : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!events.IsInPhase(PHASE_TWO))
|
||||
damage = 0;
|
||||
@@ -561,7 +561,7 @@ struct npc_gothik_minion_baseAI : public ScriptedAI
|
||||
return IsOnSameSide(me, who);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32 &damage) override
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{ // do not allow minions to take damage before the gate is opened
|
||||
if (!_gateIsOpen && (!attacker || !isOnSameSide(attacker)))
|
||||
damage = 0;
|
||||
@@ -793,7 +793,7 @@ struct npc_gothik_trigger : public ScriptedAI
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override { }
|
||||
void UpdateAI(uint32 /*diff*/) override { }
|
||||
void JustEngagedWith(Unit* /*who*/) override { }
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override { damage = 0; }
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override { damage = 0; }
|
||||
|
||||
Creature* SelectRandomSkullPile()
|
||||
{
|
||||
|
||||
@@ -272,7 +272,7 @@ struct boss_kelthuzad : public BossAI
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (events.IsInPhase(PHASE_ONE))
|
||||
damage = 0;
|
||||
|
||||
@@ -163,7 +163,7 @@ struct boss_noth : public BossAI
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override // prevent noth from somehow dying in the balcony phase
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override // prevent noth from somehow dying in the balcony phase
|
||||
{
|
||||
if (!events.IsInPhase(PHASE_BALCONY))
|
||||
return;
|
||||
|
||||
@@ -163,7 +163,7 @@ struct boss_sapphiron : public BossAI
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage < me->GetHealth() || !events.IsInPhase(PHASE_FLIGHT))
|
||||
return;
|
||||
|
||||
@@ -557,7 +557,7 @@ public:
|
||||
AddThreat(who, 0.0f, feugen);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage < me->GetHealth())
|
||||
return;
|
||||
@@ -796,7 +796,7 @@ public:
|
||||
AddThreat(who, 0.0f, stalagg);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage < me->GetHealth())
|
||||
return;
|
||||
@@ -936,7 +936,7 @@ struct npc_tesla : public ScriptedAI
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override { } // never stop casting due to evade
|
||||
void UpdateAI(uint32 /*diff*/) override { } // never do anything unless told
|
||||
void JustEngagedWith(Unit* /*who*/) override { }
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage) override { damage = 0; } // no, you can't kill it
|
||||
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override { damage = 0; } // no, you can't kill it
|
||||
};
|
||||
|
||||
// 28062 - Positive Charge
|
||||
|
||||
@@ -716,7 +716,7 @@ struct boss_malygos : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*cause*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*cause*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage > me->GetHealth() && _phase != PHASE_THREE)
|
||||
damage = me->GetHealth() - 1;
|
||||
|
||||
@@ -147,7 +147,7 @@ struct boss_keristrasza : public BossAI
|
||||
_intenseColdList.push_back(guid);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!_enrage && me->HealthBelowPctDamaged(25, damage))
|
||||
{
|
||||
|
||||
@@ -92,7 +92,7 @@ struct boss_ormorok : public BossAI
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!frenzy && HealthBelowPct(25))
|
||||
{
|
||||
|
||||
@@ -173,7 +173,7 @@ struct boss_eregos : public BossAI
|
||||
summon->CastSpell(summon, SPELL_PLANAR_BLAST, true);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!IsHeroic())
|
||||
return;
|
||||
|
||||
@@ -315,7 +315,7 @@ struct boss_urom : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
// If killed while in center, teleport to a valid ground position before dying
|
||||
if (damage >= me->GetHealth())
|
||||
|
||||
@@ -181,7 +181,7 @@ struct boss_ionar : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage) override
|
||||
void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (!me->IsVisible())
|
||||
uiDamage = 0;
|
||||
|
||||
@@ -172,7 +172,7 @@ struct boss_loken : public BossAI
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(100 - 25 * _healthAmountModifier, damage))
|
||||
{
|
||||
|
||||
@@ -401,7 +401,7 @@ struct npc_molten_golem : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
|
||||
@@ -386,7 +386,7 @@ struct npc_brann_hos : public EscortAI
|
||||
Start();
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/) override
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
|
||||
{
|
||||
if (instance->GetBossState(DATA_TRIBUNAL_OF_AGES) == IN_PROGRESS)
|
||||
brannSparklinNews = false;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user