diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 13 | ||||
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 2 |
4 files changed, 15 insertions, 3 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index d8f6dd74c08..3f337a2273f 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -1223,7 +1223,7 @@ enum SpellEffectName SPELL_EFFECT_195 = 195, SPELL_EFFECT_196 = 196, SPELL_EFFECT_197 = 197, - SPELL_EFFECT_PLAY_SCENE = 198, // NYI + SPELL_EFFECT_PLAY_SCENE = 198, SPELL_EFFECT_199 = 199, SPELL_EFFECT_HEAL_BATTLEPET_PCT = 200, // NYI SPELL_EFFECT_ENABLE_BATTLE_PETS = 201, // NYI diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index e31fc53659b..1197dfb73fd 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -475,6 +475,7 @@ class TC_GAME_API Spell void EffectUpdateZoneAurasAndPhases(SpellEffIndex effIndex); void EffectGiveArtifactPower(SpellEffIndex effIndex); void EffectGiveArtifactPowerNoBonus(SpellEffIndex effIndex); + void EffectPlayScene(SpellEffIndex effIndex); typedef std::set<Aura*> UsedSpellMods; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index fc9244a4581..20b0ae2871d 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -270,7 +270,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectNULL, //195 SPELL_EFFECT_195 &Spell::EffectNULL, //196 SPELL_EFFECT_196 &Spell::EffectNULL, //197 SPELL_EFFECT_197 - &Spell::EffectNULL, //198 SPELL_EFFECT_PLAY_SCENE + &Spell::EffectPlayScene, //198 SPELL_EFFECT_PLAY_SCENE &Spell::EffectNULL, //199 SPELL_EFFECT_199 &Spell::EffectHealBattlePetPct, //200 SPELL_EFFECT_HEAL_BATTLEPET_PCT &Spell::EffectEnableBattlePets, //201 SPELL_EFFECT_ENABLE_BATTLE_PETS @@ -5879,3 +5879,14 @@ void Spell::EffectGiveArtifactPowerNoBonus(SpellEffIndex /*effIndex*/) if (Item* artifact = unitTarget->ToPlayer()->GetItemByGuid(artifactAura->GetCastItemGUID())) artifact->GiveArtifactXp(damage, m_CastItem, 0); } + +void Spell::EffectPlayScene(SpellEffIndex /*effIndex*/) +{ + if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT) + return; + + if (m_caster->GetTypeId() != TYPEID_PLAYER) + return; + + m_caster->ToPlayer()->GetSceneMgr().PlayScene(effectInfo->MiscValue, destTarget); +} diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index f5619c5041f..a5cfdcdd79c 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -924,7 +924,7 @@ SpellEffectInfo::StaticData SpellEffectInfo::_data[TOTAL_SPELL_EFFECTS] = {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 195 SPELL_EFFECT_195 {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 196 SPELL_EFFECT_196 {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 197 SPELL_EFFECT_197 - {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 198 SPELL_EFFECT_PLAY_SCENE + {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_DEST}, // 198 SPELL_EFFECT_PLAY_SCENE {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 199 SPELL_EFFECT_199 {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 200 SPELL_EFFECT_HEAL_BATTLEPET_PCT {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 201 SPELL_EFFECT_ENABLE_BATTLE_PETS |