diff options
| -rw-r--r-- | sql/updates/world/master/2017_11_05_12_world.sql | 4 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_warrior.cpp | 72 |
2 files changed, 75 insertions, 1 deletions
diff --git a/sql/updates/world/master/2017_11_05_12_world.sql b/sql/updates/world/master/2017_11_05_12_world.sql new file mode 100644 index 00000000000..92fe76810a1 --- /dev/null +++ b/sql/updates/world/master/2017_11_05_12_world.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_warr_mortal_strike','spell_warr_colossus_smash'); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +( 12294, 'spell_warr_mortal_strike'), +(167105, 'spell_warr_colossus_smash'); diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index 976434695de..24051bae56b 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -41,7 +41,8 @@ enum WarriorSpells SPELL_WARRIOR_CHARGE_PAUSE_RAGE_DECAY = 109128, SPELL_WARRIOR_CHARGE_ROOT_EFFECT = 105771, SPELL_WARRIOR_CHARGE_SLOW_EFFECT = 236027, - SPELL_WARRIOR_COLOSSUS_SMASH = 86346, + SPELL_WARRIOR_COLOSSUS_SMASH = 167105, + SPELL_WARRIOR_COLOSSUS_SMASH_EFFECT = 208086, SPELL_WARRIOR_EXECUTE = 20647, SPELL_WARRIOR_GLYPH_OF_THE_BLAZING_TRAIL = 123779, SPELL_WARRIOR_GLYPH_OF_HEROIC_LEAP = 159708, @@ -54,6 +55,7 @@ enum WarriorSpells SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_TALENT = 64976, SPELL_WARRIOR_LAST_STAND_TRIGGERED = 12976, SPELL_WARRIOR_MORTAL_STRIKE = 12294, + SPELL_WARRIOR_MORTAL_WOUNDS = 213667, SPELL_WARRIOR_RALLYING_CRY = 97463, SPELL_WARRIOR_REND = 94009, SPELL_WARRIOR_RETALIATION_DAMAGE = 22858, @@ -238,6 +240,39 @@ class spell_warr_charge_effect : public SpellScriptLoader } }; +// 167105 - Colossus Smash 7.1.5 +class spell_warr_colossus_smash : public SpellScriptLoader +{ + public: + spell_warr_colossus_smash() : SpellScriptLoader("spell_warr_colossus_smash") { } + + class spell_warr_colossus_smash_SpellScript : public SpellScript + { + PrepareSpellScript(spell_warr_colossus_smash_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_WARRIOR_COLOSSUS_SMASH_EFFECT }); + } + + void HandleOnHit() + { + if (Unit* target = GetHitUnit()) + GetCaster()->CastSpell(target, SPELL_WARRIOR_COLOSSUS_SMASH_EFFECT, true); + } + + void Register() override + { + OnHit += SpellHitFn(spell_warr_colossus_smash_SpellScript::HandleOnHit); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_warr_colossus_smash_SpellScript(); + } +}; + /// Updated 4.3.4 class spell_warr_concussion_blow : public SpellScriptLoader { @@ -593,6 +628,39 @@ class spell_warr_last_stand : public SpellScriptLoader } }; +// 12294 - Mortal Strike 7.1.5 +class spell_warr_mortal_strike : public SpellScriptLoader +{ + public: + spell_warr_mortal_strike() : SpellScriptLoader("spell_warr_mortal_strike") { } + + class spell_warr_mortal_strike_SpellScript : public SpellScript + { + PrepareSpellScript(spell_warr_mortal_strike_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_WARRIOR_MORTAL_WOUNDS }); + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (Unit* target = GetHitUnit()) + GetCaster()->CastSpell(target, SPELL_WARRIOR_MORTAL_WOUNDS, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_warr_mortal_strike_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_warr_mortal_strike_SpellScript(); + } +}; + // 7384 - Overpower class spell_warr_overpower : public SpellScriptLoader { @@ -1367,6 +1435,7 @@ void AddSC_warrior_spell_scripts() new spell_warr_charge(); new spell_warr_charge_drop_fire_periodic(); new spell_warr_charge_effect(); + new spell_warr_colossus_smash(); new spell_warr_concussion_blow(); new spell_warr_execute(); new spell_warr_heroic_leap(); @@ -1376,6 +1445,7 @@ void AddSC_warrior_spell_scripts() new spell_warr_item_t10_prot_4p_bonus(); new spell_warr_lambs_to_the_slaughter(); new spell_warr_last_stand(); + new spell_warr_mortal_strike(); new spell_warr_overpower(); new spell_warr_rallying_cry(); new spell_warr_rend(); |
