From 7a71127da92bd833caf4188aee2d5e88c61ae772 Mon Sep 17 00:00:00 2001 From: Wyrserth Date: Wed, 26 Jun 2019 18:08:19 +0200 Subject: Core/SAI: allow creatures to handle gameobject spellhit SAI events. (#23492) --- src/server/game/AI/SmartScripts/SmartAI.cpp | 10 ++++++++++ src/server/game/AI/SmartScripts/SmartAI.h | 2 ++ 2 files changed, 12 insertions(+) (limited to 'src/server/game/AI/SmartScripts') diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 7165abdc8f2..2856a55a245 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -609,11 +609,21 @@ void SmartAI::SpellHit(Unit* unit, SpellInfo const* spellInfo) GetScript()->ProcessEventsFor(SMART_EVENT_SPELLHIT, unit, 0, 0, false, spellInfo); } +void SmartAI::SpellHitByGameObject(GameObject* object, SpellInfo const* spellInfo) +{ + GetScript()->ProcessEventsFor(SMART_EVENT_SPELLHIT, nullptr, 0, 0, false, spellInfo, object); +} + void SmartAI::SpellHitTarget(Unit* target, SpellInfo const* spellInfo) { GetScript()->ProcessEventsFor(SMART_EVENT_SPELLHIT_TARGET, target, 0, 0, false, spellInfo); } +void SmartAI::SpellHitTargetGameObject(GameObject* target, SpellInfo const* spellInfo) +{ + GetScript()->ProcessEventsFor(SMART_EVENT_SPELLHIT_TARGET, nullptr, 0, 0, false, spellInfo, target); +} + void SmartAI::DamageTaken(Unit* doneBy, uint32& damage) { GetScript()->ProcessEventsFor(SMART_EVENT_DAMAGED, doneBy, damage); diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h index fa3af7b9549..2cf6c0e6b2a 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.h +++ b/src/server/game/AI/SmartScripts/SmartAI.h @@ -99,9 +99,11 @@ class TC_GAME_API SmartAI : public CreatureAI // Called when hit by a spell void SpellHit(Unit* unit, SpellInfo const* spellInfo) override; + void SpellHitByGameObject(GameObject* object, SpellInfo const* spellInfo) override; // Called when spell hits a target void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override; + void SpellHitTargetGameObject(GameObject* object, SpellInfo const* spellInfo) override; // Called at any Damage from any attacker (before damage apply) void DamageTaken(Unit* doneBy, uint32& damage) override; -- cgit v1.2.3