aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy <Golrag@users.noreply.github.com>2023-05-05 09:27:56 +0200
committerModoX <moardox@gmail.com>2023-05-05 09:27:56 +0200
commitcdb209fda44eb500a7e8d9a0d4acd048e1ee5eec (patch)
tree3ad81a29c12101282f7f782702867b3774f8ab75 /src
parente0996625be607fd8b93846e1f1cba8742cd7078f (diff)
Core/Spells: Implemented SPELL_EFFECT_TELEPORT_GRAVEYARD
* part of #28508
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.h1
-rw-r--r--src/server/game/Spells/SpellEffects.cpp14
2 files changed, 14 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h
index 96b029eae5d..eb84c26bcbf 100644
--- a/src/server/game/Spells/Spell.h
+++ b/src/server/game/Spells/Spell.h
@@ -414,6 +414,7 @@ class TC_GAME_API Spell
void EffectModifySpellCharges();
void EffectCreateTraitTreeConfig();
void EffectChangeActiveCombatTraitConfig();
+ void EffectTeleportGraveyard();
typedef std::unordered_set<Aura*> UsedSpellMods;
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 3b2a7b6de94..2dab2a3d9c5 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -207,7 +207,7 @@ NonDefaultConstructible<SpellEffectHandlerFn> SpellEffectHandlers[TOTAL_SPELL_EF
&Spell::EffectSpiritHeal, //117 SPELL_EFFECT_SPIRIT_HEAL one spell: Spirit Heal
&Spell::EffectSkill, //118 SPELL_EFFECT_SKILL professions and more
&Spell::EffectUnused, //119 SPELL_EFFECT_APPLY_AREA_AURA_PET
- &Spell::EffectNULL, //120 SPELL_EFFECT_TELEPORT_GRAVEYARD
+ &Spell::EffectTeleportGraveyard, //120 SPELL_EFFECT_TELEPORT_GRAVEYARD
&Spell::EffectWeaponDmg, //121 SPELL_EFFECT_NORMALIZED_WEAPON_DMG
&Spell::EffectUnused, //122 SPELL_EFFECT_122 unused
&Spell::EffectSendTaxi, //123 SPELL_EFFECT_SEND_TAXI taxi/flight related (misc value is taxi path id)
@@ -5976,3 +5976,15 @@ void Spell::EffectChangeActiveCombatTraitConfig()
target->UpdateTraitConfig(std::move(*traitConfig), damage, false);
}
+
+void Spell::EffectTeleportGraveyard()
+{
+ if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
+ return;
+
+ Player* target = Object::ToPlayer(unitTarget);
+ if (!target)
+ return;
+
+ target->RepopAtGraveyard();
+}