diff options
| -rw-r--r-- | sql/updates/world/2013_07_24_00_world_spell_misc_434.sql | 8 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 36 |
2 files changed, 44 insertions, 0 deletions
diff --git a/sql/updates/world/2013_07_24_00_world_spell_misc_434.sql b/sql/updates/world/2013_07_24_00_world_spell_misc_434.sql new file mode 100644 index 00000000000..dafd88fc7f1 --- /dev/null +++ b/sql/updates/world/2013_07_24_00_world_spell_misc_434.sql @@ -0,0 +1,8 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`=-14748; +INSERT INTO `spell_script_names`(`spell_id`, `ScriptName`) VALUES +(-14748,'spell_pri_improved_power_word_shield'); + +DELETE FROM `spell_ranks` WHERE `first_spell_id`=14748; +INSERT INTO `spell_ranks` (`first_spell_id`, `spell_id`, `rank`) VALUES +(14748, 14748, 1), +(14748, 14768, 2); diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 552d54410cd..3d754275c20 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -272,6 +272,41 @@ class spell_pri_glyph_of_prayer_of_healing : public SpellScriptLoader } }; +class spell_pri_improved_power_word_shield : public SpellScriptLoader +{ + public: + spell_pri_improved_power_word_shield() : SpellScriptLoader("spell_pri_improved_power_word_shield") { } + + class spell_pri_improved_power_word_shield_AuraScript : public AuraScript + { + PrepareAuraScript(spell_pri_improved_power_word_shield_AuraScript); + + void HandleEffectCalcSpellMod(AuraEffect const* aurEff, SpellModifier*& spellMod) + { + if (!spellMod) + { + spellMod = new SpellModifier(GetAura()); + spellMod->op = SpellModOp(aurEff->GetMiscValue()); + spellMod->type = SPELLMOD_PCT; + spellMod->spellId = GetId(); + spellMod->mask = GetSpellInfo()->Effects[aurEff->GetEffIndex()].SpellClassMask; + } + + spellMod->value = aurEff->GetAmount(); + } + + void Register() OVERRIDE + { + DoEffectCalcSpellMod += AuraEffectCalcSpellModFn(spell_pri_improved_power_word_shield_AuraScript::HandleEffectCalcSpellMod, EFFECT_0, SPELL_AURA_DUMMY); + } + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_pri_improved_power_word_shield_AuraScript(); + } +}; + // 37594 - Greater Heal Refund class spell_pri_item_greater_heal_refund : public SpellScriptLoader { @@ -1088,6 +1123,7 @@ void AddSC_priest_spell_scripts() new spell_pri_dispel_magic(); new spell_pri_divine_aegis(); new spell_pri_glyph_of_prayer_of_healing(); + new spell_pri_improved_power_word_shield(); new spell_pri_item_greater_heal_refund(); new spell_pri_guardian_spirit(); new spell_pri_leap_of_faith_effect_trigger(); |
