diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 15 | ||||
-rw-r--r-- | src/server/scripts/Northrend/zone_sholazar_basin.cpp | 46 |
2 files changed, 29 insertions, 32 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index a10fd80aa74..6ada7064844 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3143,21 +3143,6 @@ void Spell::EffectScriptEffect() break; } - // Deathbolt from Thalgran Blightbringer - // reflected by Freya's Ward - // Retribution by Sevenfold Retribution - case 51854: - { - if (!unitTarget) - return; - if (unitTarget->HasAura(51845)) - unitTarget->CastSpell(m_caster, 51856, CastSpellExtraArgs(TRIGGERED_FULL_MASK) - .SetOriginalCastId(m_castId)); - else - m_caster->CastSpell(unitTarget, 51855, CastSpellExtraArgs(TRIGGERED_FULL_MASK) - .SetOriginalCastId(m_castId)); - break; - } // Summon Ghouls On Scarlet Crusade case 51904: { diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index 565aabddb7c..fd4d463b601 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -15,23 +15,6 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Sholazar_Basin -SD%Complete: 100 -SDComment: Quest support: 12550, 12645, 12688, 12726, 13957 -SDCategory: Sholazar_Basin -EndScriptData */ - -/* ContentData -npc_engineer_helice -npc_jungle_punch_target -spell_q12620_the_lifewarden_wrath -spell_q12589_shoot_rjr -npc_haiphoon (Quest: "Song of Wind and Water") -npc_vics_flying_machine -spell_shango_tracks -EndContentData */ - #include "ScriptMgr.h" #include "CombatAI.h" #include "Map.h" @@ -768,6 +751,34 @@ public: } }; +enum ReturnedSevenfold +{ + SPELL_FREYAS_WARD = 51845, + SPELL_SEVENFOLD_RETRIBUTION = 51856, + SPELL_DEATHBOLT = 51855 +}; + +class spell_q12611_deathbolt : public SpellScript +{ + PrepareSpellScript(spell_q12611_deathbolt); + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Unit* caster = GetCaster(); + Unit* target = GetHitUnit(); + + if (target->HasAura(SPELL_FREYAS_WARD)) + target->CastSpell(caster, SPELL_SEVENFOLD_RETRIBUTION, true); + else + caster->CastSpell(target, SPELL_DEATHBOLT, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_q12611_deathbolt::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_sholazar_basin() { new npc_engineer_helice(); @@ -777,4 +788,5 @@ void AddSC_sholazar_basin() new npc_haiphoon(); new npc_vics_flying_machine(); new spell_shango_tracks(); + RegisterSpellScript(spell_q12611_deathbolt); } |