aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2013_07_24_00_world_spell_misc_434.sql8
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp36
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();