From 0534356affedf5ca67a8fce7def7bc5908c8101a Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 29 May 2022 20:34:44 -0400 Subject: [PATCH] Core/AI: Add DamageEffectType and SpellInfo parameters to UnitAI::DamageTaken Port From (https://github.com/TrinityCore/TrinityCore/commit/71c2f0af46b3ccec8c3422534e4403f3650b757d) --- Source/Game/AI/CoreAI/PetAI.cs | 2 +- Source/Game/AI/CoreAI/UnitAI.cs | 2 +- Source/Game/AI/SmartScripts/SmartAI.cs | 2 +- Source/Game/Entities/Unit/Unit.cs | 2 +- Source/Scripts/World/EmeraldDragons.cs | 8 ++++---- Source/Scripts/World/NpcSpecial.cs | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Source/Game/AI/CoreAI/PetAI.cs b/Source/Game/AI/CoreAI/PetAI.cs index 4db093931..b7c688802 100644 --- a/Source/Game/AI/CoreAI/PetAI.cs +++ b/Source/Game/AI/CoreAI/PetAI.cs @@ -655,7 +655,7 @@ namespace Game.AI } } - public override void DamageTaken(Unit attacker, ref uint damage) + public override void DamageTaken(Unit attacker, ref uint damage, DamageEffectType damageType, SpellInfo spellInfo = null) { AttackStart(attacker); } diff --git a/Source/Game/AI/CoreAI/UnitAI.cs b/Source/Game/AI/CoreAI/UnitAI.cs index a3fea8e66..b3ae1185d 100644 --- a/Source/Game/AI/CoreAI/UnitAI.cs +++ b/Source/Game/AI/CoreAI/UnitAI.cs @@ -488,7 +488,7 @@ namespace Game.AI // Called at any Damage to any victim (before damage apply) public virtual void DamageDealt(Unit victim, ref uint damage, DamageEffectType damageType) { } - public virtual void DamageTaken(Unit attacker, ref uint damage) { } + public virtual void DamageTaken(Unit attacker, ref uint damage, DamageEffectType damageType, SpellInfo spellInfo = null) { } public virtual void HealReceived(Unit by, uint addhealth) { } public virtual void HealDone(Unit to, uint addhealth) { } public virtual void SpellInterrupted(uint spellId, uint unTimeMs) { } diff --git a/Source/Game/AI/SmartScripts/SmartAI.cs b/Source/Game/AI/SmartScripts/SmartAI.cs index f01ef9963..555552f2c 100644 --- a/Source/Game/AI/SmartScripts/SmartAI.cs +++ b/Source/Game/AI/SmartScripts/SmartAI.cs @@ -676,7 +676,7 @@ namespace Game.AI GetScript().ProcessEventsFor(SmartEvents.SpellHitTarget, target.ToUnit(), 0, 0, false, spellInfo, target.ToGameObject()); } - public override void DamageTaken(Unit attacker, ref uint damage) + public override void DamageTaken(Unit attacker, ref uint damage, DamageEffectType damageType, SpellInfo spellInfo = null) { GetScript().ProcessEventsFor(SmartEvents.Damaged, attacker, damage); diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index 1dc67e9d4..57f9551ce 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -2363,7 +2363,7 @@ namespace Game.Entities { UnitAI victimAI = victim.GetAI(); if (victimAI != null) - victimAI.DamageTaken(attacker, ref damage); + victimAI.DamageTaken(attacker, ref damage, damagetype, spellProto); UnitAI attackerAI = attacker ? attacker.GetAI() : null; if (attackerAI != null) diff --git a/Source/Scripts/World/EmeraldDragons.cs b/Source/Scripts/World/EmeraldDragons.cs index 272badb16..7d5c6f771 100644 --- a/Source/Scripts/World/EmeraldDragons.cs +++ b/Source/Scripts/World/EmeraldDragons.cs @@ -238,7 +238,7 @@ namespace Scripts.World.EmeraldDragons } // Summon druid spirits on 75%, 50% and 25% health - public override void DamageTaken(Unit attacker, ref uint damage) + public override void DamageTaken(Unit attacker, ref uint damage, DamageEffectType damageType, SpellInfo spellInfo = null) { if (!HealthAbovePct(100 - 25 * _stage)) { @@ -284,7 +284,7 @@ namespace Scripts.World.EmeraldDragons base.JustEngagedWith(who); } - public override void DamageTaken(Unit attacker, ref uint damage) + public override void DamageTaken(Unit attacker, ref uint damage, DamageEffectType damageType, SpellInfo spellInfo = null) { if (!HealthAbovePct(100 - 25 * _stage)) { @@ -371,7 +371,7 @@ namespace Scripts.World.EmeraldDragons base.JustEngagedWith(who); } - public override void DamageTaken(Unit attacker, ref uint damage) + public override void DamageTaken(Unit attacker, ref uint damage, DamageEffectType damageType, SpellInfo spellInfo = null) { if (!HealthAbovePct(100 - 25 * _stage)) { @@ -434,7 +434,7 @@ namespace Scripts.World.EmeraldDragons --_shades; } - public override void DamageTaken(Unit attacker, ref uint damage) + public override void DamageTaken(Unit attacker, ref uint damage, DamageEffectType damageType, SpellInfo spellInfo = null) { // At 75, 50 or 25 percent health, we need to activate the shades and go "banished" // Note: _stage holds the amount of times they have been summoned diff --git a/Source/Scripts/World/NpcSpecial.cs b/Source/Scripts/World/NpcSpecial.cs index a2b1629df..d38c7caf8 100644 --- a/Source/Scripts/World/NpcSpecial.cs +++ b/Source/Scripts/World/NpcSpecial.cs @@ -1315,7 +1315,7 @@ namespace Scripts.World.NpcSpecial public npc_training_dummy(Creature creature) : base(creature) { } - public override void DamageTaken(Unit attacker, ref uint damage) + public override void DamageTaken(Unit attacker, ref uint damage, DamageEffectType damageType, SpellInfo spellInfo = null) { damage = 0;