aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2013_01_27_00_world_spell_script_names_434.sql7
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp50
2 files changed, 57 insertions, 0 deletions
diff --git a/sql/updates/world/2013_01_27_00_world_spell_script_names_434.sql b/sql/updates/world/2013_01_27_00_world_spell_script_names_434.sql
new file mode 100644
index 00000000000..697e07dc6f4
--- /dev/null
+++ b/sql/updates/world/2013_01_27_00_world_spell_script_names_434.sql
@@ -0,0 +1,7 @@
+-- 53600 - Shield of the Righteous
+-- Delete old (wotlk) scaling
+DELETE FROM `spell_bonus_data` WHERE `entry`=53600;
+
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pal_shield_of_the_righteous';
+INSERT INTO `spell_script_names` VALUES
+(53600,'spell_pal_shield_of_the_righteous');
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index 7625ed548ac..ce5d1e98e5e 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -721,6 +721,55 @@ class spell_pal_sacred_shield : public SpellScriptLoader
}
};
+// 53600 - Shield of the Righteous
+/// Updated 4.3.4
+class spell_pal_shield_of_the_righteous : public SpellScriptLoader
+{
+ public:
+ spell_pal_shield_of_the_righteous() : SpellScriptLoader("spell_pal_shield_of_the_righteous") { }
+
+ class spell_pal_shield_of_the_righteous_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_pal_shield_of_the_righteous_SpellScript);
+
+ bool Load()
+ {
+ if (GetCaster()->GetTypeId() != TYPEID_PLAYER)
+ return false;
+
+ if (GetCaster()->ToPlayer()->getClass() != CLASS_PALADIN)
+ return false;
+
+ return true;
+ }
+
+ void ChangeDamage(SpellEffIndex /*effIndex*/)
+ {
+ int32 damage = GetHitDamage();
+
+ // Because 1 Holy Power (HP) is consumed when casting spell,
+ // GetPower(POWER_HOLY_POWER) will return 0 when player has 1 HP,
+ // return 1 at 2 HP, and 2 at 3 HP
+ int32 hp = GetCaster()->GetPower(POWER_HOLY_POWER);
+
+ // Holy Power Scaling: 3 times damage at 2 HP, 6 times at 3 HP
+ damage *= 0.5*hp*hp + 1.5*hp + 1;
+
+ SetHitDamage(damage);
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_pal_shield_of_the_righteous_SpellScript::ChangeDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_pal_shield_of_the_righteous_SpellScript();
+ }
+};
+
// 85256 - Templar's Verdict
/// Updated 4.3.4
class spell_pal_templar_s_verdict : public SpellScriptLoader
@@ -803,5 +852,6 @@ void AddSC_paladin_spell_scripts()
new spell_pal_lay_on_hands();
new spell_pal_righteous_defense();
new spell_pal_sacred_shield();
+ new spell_pal_shield_of_the_righteous();
new spell_pal_templar_s_verdict();
}