aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSorikoff <46191832+Sorikoff@users.noreply.github.com>2019-06-28 18:18:02 +0000
committerShauren <shauren.trinity@gmail.com>2021-12-13 00:42:18 +0100
commit88457030cc1044b2452d73023d9fc5017080cdf2 (patch)
tree5f0952cb386a630034f5c80236dbaed24e0d7ecc
parentea4c1ae7d0c4b3420b1d78623c5254466c64f43b (diff)
Scripts/Spells: Deathbolt (#23531)
* Scripts/Spells: Deathbolt * Rename 9999_99_99_99_world.sql to 2019_06_28_01_world.sql (cherry picked from commit 62b2c379b37b843076eb4df379e7de86b18303eb)
-rw-r--r--sql/updates/world/master/2021_12_12_13_world_2019_06_28_01_world.sql2
-rw-r--r--src/server/game/Spells/SpellEffects.cpp15
-rw-r--r--src/server/scripts/Northrend/zone_sholazar_basin.cpp46
3 files changed, 31 insertions, 32 deletions
diff --git a/sql/updates/world/master/2021_12_12_13_world_2019_06_28_01_world.sql b/sql/updates/world/master/2021_12_12_13_world_2019_06_28_01_world.sql
new file mode 100644
index 00000000000..00b99addd44
--- /dev/null
+++ b/sql/updates/world/master/2021_12_12_13_world_2019_06_28_01_world.sql
@@ -0,0 +1,2 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_q12611_deathbolt';
+INSERT INTO `spell_script_names` VALUES (51854,'spell_q12611_deathbolt');
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);
}