aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-12-20 15:37:36 +0100
committerOvahlord <dreadkiller@gmx.de>2024-12-20 15:37:36 +0100
commitf8c02aa69b4b3d5c011c5ed6dd47328325932cfe (patch)
treec02d2d12570cb69035a89e408ca26b64dda0ead9
parent72b2d08d8ad929853c5ef18c7b98c72a9e2d1715 (diff)
Core/Spells: Implemented SPELL_EFFECT_UPDATE_INTERACTIONS
(cherry picked from commit ad06dcaaec6b55e3c2e6ae8214a44074f343c8ca)
-rw-r--r--src/server/game/Spells/Spell.h1
-rw-r--r--src/server/game/Spells/SpellEffects.cpp14
-rw-r--r--src/server/game/Spells/SpellInfo.cpp2
3 files changed, 15 insertions, 2 deletions
diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h
index ed1719bb1fc..77123899228 100644
--- a/src/server/game/Spells/Spell.h
+++ b/src/server/game/Spells/Spell.h
@@ -427,6 +427,7 @@ class TC_GAME_API Spell
void EffectModifyCooldownsByCategory();
void EffectModifySpellCharges();
void EffectTeleportGraveyard();
+ void EffectUpdateInteractions();
void EffectActivateRune();
typedef std::unordered_set<Aura*> UsedSpellMods;
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 7ea4088a6bf..d74013183bf 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -390,7 +390,7 @@ NonDefaultConstructible<SpellEffectHandlerFn> SpellEffectHandlers[TOTAL_SPELL_EF
&Spell::EffectNULL, //303 SPELL_EFFECT_CREATE_TRAIT_TREE_CONFIG
&Spell::EffectNULL, //304 SPELL_EFFECT_CHANGE_ACTIVE_COMBAT_TRAIT_CONFIG
&Spell::EffectNULL, //305 SPELL_EFFECT_305
- &Spell::EffectNULL, //306 SPELL_EFFECT_UPDATE_INTERACTIONS
+ &Spell::EffectUpdateInteractions, //306 SPELL_EFFECT_UPDATE_INTERACTIONS
&Spell::EffectNULL, //307 SPELL_EFFECT_307
&Spell::EffectNULL, //308 SPELL_EFFECT_CANCEL_PRELOAD_WORLD
&Spell::EffectNULL, //309 SPELL_EFFECT_PRELOAD_WORLD
@@ -5901,6 +5901,18 @@ void Spell::EffectTeleportGraveyard()
target->RepopAtGraveyard();
}
+void Spell::EffectUpdateInteractions()
+{
+ if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
+ return;
+
+ Player* target = Object::ToPlayer(unitTarget);
+ if (!target)
+ return;
+
+ target->UpdateVisibleObjectInteractions(true, false, true, true);
+}
+
void Spell::EffectAddComboPoints()
{
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 5113c16fea1..7237bf123e6 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -1114,7 +1114,7 @@ std::array<SpellEffectInfo::StaticData, TOTAL_SPELL_EFFECTS> SpellEffectInfo::_d
{EFFECT_IMPLICIT_TARGET_EXPLICIT, TARGET_OBJECT_TYPE_UNIT}, // 303 SPELL_EFFECT_CREATE_TRAIT_TREE_CONFIG
{EFFECT_IMPLICIT_TARGET_EXPLICIT, TARGET_OBJECT_TYPE_UNIT}, // 304 SPELL_EFFECT_CHANGE_ACTIVE_COMBAT_TRAIT_CONFIG
{EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 305 SPELL_EFFECT_305
- {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 306 SPELL_EFFECT_UPDATE_INTERACTIONS
+ {EFFECT_IMPLICIT_TARGET_EXPLICIT, TARGET_OBJECT_TYPE_UNIT}, // 306 SPELL_EFFECT_UPDATE_INTERACTIONS
{EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 307 SPELL_EFFECT_307
{EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 308 SPELL_EFFECT_CANCEL_PRELOAD_WORLD
{EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 309 SPELL_EFFECT_PRELOAD_WORLD