Merge pull request #9027 from Xanvial/TV

[4.3.4] Scripts/Paladin: Templar's Verdict
This commit is contained in:
Nay
2013-01-24 06:42:41 -08:00
2 changed files with 76 additions and 1 deletions

View File

@@ -0,0 +1,4 @@
-- 85256 - Templar's Verdict
DELETE FROM `spell_script_names` WHERE `spell_id`=85256;
INSERT INTO `spell_script_names` VALUES
(85256,'spell_pal_templar_s_verdict');

View File

@@ -50,7 +50,9 @@ enum PaladinSpells
SPELL_PALADIN_IMMUNE_SHIELD_MARKER = 61988,
SPELL_PALADIN_HAND_OF_SACRIFICE = 6940,
SPELL_PALADIN_DIVINE_SACRIFICE = 64205
SPELL_PALADIN_DIVINE_SACRIFICE = 64205,
SPELL_PALADIN_DIVINE_PURPOSE_PROC = 90174
};
// 31850 - Ardent Defender
@@ -719,6 +721,74 @@ class spell_pal_sacred_shield : public SpellScriptLoader
}
};
// 85256 - Templar's Verdict
/// Updated 4.3.4
class spell_pal_templar_s_verdict : public SpellScriptLoader
{
public:
spell_pal_templar_s_verdict() : SpellScriptLoader("spell_pal_templar_s_verdict") { }
class spell_pal_templar_s_verdict_SpellScript : public SpellScript
{
PrepareSpellScript(spell_pal_templar_s_verdict_SpellScript);
bool Validate (SpellInfo const* /*spellEntry*/)
{
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_PURPOSE_PROC))
return false;
return true;
}
bool Load()
{
if (GetCaster()->GetTypeId() != TYPEID_PLAYER)
return false;
if (GetCaster()->ToPlayer()->getClass() != CLASS_PALADIN)
return false;
return true;
}
void ChangeDamage(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
int32 damage = GetHitDamage();
if (caster->HasAura(SPELL_PALADIN_DIVINE_PURPOSE_PROC))
damage *= 7.5; // 7.5*30% = 225%
else
{
switch (caster->GetPower(POWER_HOLY_POWER))
{
case 0: // 1 Holy Power
damage = damage;
break;
case 1: // 2 Holy Power
damage *= 3; // 3*30 = 90%
break;
case 2: // 3 Holy Power
damage *= 7.5; // 7.5*30% = 225%
break;
}
}
SetHitDamage(damage);
}
void Register()
{
OnEffectHitTarget += SpellEffectFn(spell_pal_templar_s_verdict_SpellScript::ChangeDamage, EFFECT_0, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE);
}
};
SpellScript* GetSpellScript() const
{
return new spell_pal_templar_s_verdict_SpellScript();
}
};
void AddSC_paladin_spell_scripts()
{
//new spell_pal_ardent_defender();
@@ -733,4 +803,5 @@ void AddSC_paladin_spell_scripts()
new spell_pal_lay_on_hands();
new spell_pal_righteous_defense();
new spell_pal_sacred_shield();
new spell_pal_templar_s_verdict();
}