aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2013-07-23 16:28:23 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2013-07-23 16:28:23 +0200
commit98f51b47b0306d7811c7407d479404b8c0417802 (patch)
treeffcc5e04ea0cf7d94360f10a21e59552e6ec6562
parent059d23de2d0b9b8b5d63ffde050dbbed9bcf0cf3 (diff)
DB/Spells: Fix paladin talent "Sanctuary" for 4.3.4
-rw-r--r--sql/updates/world/2013_07_23_04_world_spell_spell_misc_434.sql7
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp128
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp62
3 files changed, 69 insertions, 128 deletions
diff --git a/sql/updates/world/2013_07_23_04_world_spell_spell_misc_434.sql b/sql/updates/world/2013_07_23_04_world_spell_spell_misc_434.sql
new file mode 100644
index 00000000000..9c5cac5ea43
--- /dev/null
+++ b/sql/updates/world/2013_07_23_04_world_spell_spell_misc_434.sql
@@ -0,0 +1,7 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_pal_blessing_of_sanctuary';
+
+DELETE FROM `spell_proc_event` WHERE `entry` IN (20911,84628,84629);
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+(20911, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0),
+(84628, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0),
+(84629, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0),
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index ccd0ced8049..752f3823210 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -33,6 +33,8 @@ enum DeathKnightSpells
SPELL_DK_BLOOD_BOIL_TRIGGERED = 65658,
SPELL_DK_BLOOD_GORGED_HEAL = 50454,
SPELL_DK_BLOOD_PRESENCE = 48266,
+ SPELL_DK_BLOOD_SHIELD_MASTERY = 77513,
+ SPELL_DK_BLOOD_SHIELD_ABSORB = 77535,
SPELL_DK_BUTCHERY = 50163,
SPELL_DK_CORPSE_EXPLOSION_TRIGGERED = 43999,
SPELL_DK_CORPSE_EXPLOSION_VISUAL = 51270,
@@ -52,15 +54,7 @@ enum DeathKnightSpells
SPELL_DK_SCOURGE_STRIKE_TRIGGERED = 70890,
SPELL_DK_WILL_OF_THE_NECROPOLIS_TALENT_R1 = 49189,
SPELL_DK_WILL_OF_THE_NECROPOLIS_AURA_R1 = 52284,
- SPELL_DK_UNHOLY_PRESENCE = 48265,
-
- SPELL_DK_BLOOD_SHIELD_MASTERY = 77513,
- SPELL_DK_BLOOD_SHIELD_ABSORB = 77535
-};
-
-enum DeathKnightSpellIcons
-{
- DK_ICON_ID_IMPROVED_DEATH_STRIKE = 2751
+ SPELL_DK_UNHOLY_PRESENCE = 48265
};
// 50462 - Anti-Magic Shell (on raid member)
@@ -609,8 +603,10 @@ class spell_dk_death_strike : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
{
- if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_ENABLER)
- || !sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_HEAL))
+ if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_ENABLER) ||
+ !sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_HEAL) ||
+ !sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_SHIELD_MASTERY) ||
+ !sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_SHIELD_ABSORB))
return false;
return true;
}
@@ -651,75 +647,75 @@ class spell_dk_death_strike : public SpellScriptLoader
// 89832 - Death Strike (Save damage taken in last 5 sec)
class spell_dk_death_strike_enabler : public SpellScriptLoader
{
-public:
- spell_dk_death_strike_enabler() : SpellScriptLoader("spell_dk_death_strike_enabler") { }
-
- class spell_dk_death_strike_enabler_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_dk_death_strike_enabler_AuraScript);
+ public:
+ spell_dk_death_strike_enabler() : SpellScriptLoader("spell_dk_death_strike_enabler") { }
- bool Load() OVERRIDE
+ class spell_dk_death_strike_enabler_AuraScript : public AuraScript
{
- for (uint8 i = 0; i < 5; ++i)
- _damagePerSecond[i] = 0;
- return true;
- }
+ PrepareAuraScript(spell_dk_death_strike_enabler_AuraScript);
- void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
- {
- if (!GetUnitOwner()->HasAura(SPELL_DK_BLOOD_PRESENCE))
+ bool Load() OVERRIDE
{
for (uint8 i = 0; i < 5; ++i)
_damagePerSecond[i] = 0;
+ return true;
}
- else
- _damagePerSecond[0] += eventInfo.GetDamageInfo()->GetDamage();
- }
- bool CheckProc(ProcEventInfo& eventInfo)
- {
- return eventInfo.GetDamageInfo();
- }
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ return eventInfo.GetDamageInfo();
+ }
- // Cheap hack to have update calls
- void CalcPeriodic(AuraEffect const* /*aurEff*/, bool& isPeriodic, int32& amplitude)
- {
- isPeriodic = true;
- amplitude = 1000;
- }
+ void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
+ {
+ if (!GetUnitOwner()->HasAura(SPELL_DK_BLOOD_PRESENCE))
+ {
+ for (uint8 i = 0; i < 5; ++i)
+ _damagePerSecond[i] = 0;
+ }
+ else
+ _damagePerSecond[0] += eventInfo.GetDamageInfo()->GetDamage();
+ }
- void Update(AuraEffect* aurEff)
- {
- // Move backwards all datas by one
- for (uint8 i = 4; i > 0; --i)
- _damagePerSecond[i] = _damagePerSecond[i - 1];
- _damagePerSecond[0] = 0;
- }
+ // Cheap hack to have update calls
+ void CalcPeriodic(AuraEffect const* /*aurEff*/, bool& isPeriodic, int32& amplitude)
+ {
+ isPeriodic = true;
+ amplitude = 1000;
+ }
- void HandleCalcAmount(AuraEffect const* aurEff, int32& amount, bool& canBeRecalculated)
- {
- canBeRecalculated = true;
- amount = 0;
- for (uint8 i = 0; i < 5; ++i)
- amount += int32(_damagePerSecond[i]);
- }
+ void Update(AuraEffect* /*aurEff*/)
+ {
+ // Move backwards all datas by one
+ for (uint8 i = 4; i > 0; --i)
+ _damagePerSecond[i] = _damagePerSecond[i - 1];
+ _damagePerSecond[0] = 0;
+ }
- void Register() OVERRIDE
- {
- DoCheckProc += AuraCheckProcFn(spell_dk_death_strike_enabler_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_dk_death_strike_enabler_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_dk_death_strike_enabler_AuraScript::CalcPeriodic, EFFECT_0, SPELL_AURA_DUMMY);
- OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_dk_death_strike_enabler_AuraScript::Update, EFFECT_0, SPELL_AURA_DUMMY);
- DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_death_strike_enabler_AuraScript::HandleCalcAmount, EFFECT_0, SPELL_AURA_DUMMY);
- }
+ void HandleCalcAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated)
+ {
+ canBeRecalculated = true;
+ amount = 0;
+ for (uint8 i = 0; i < 5; ++i)
+ amount += int32(_damagePerSecond[i]);
+ }
- uint32 _damagePerSecond[5];
- };
+ void Register() OVERRIDE
+ {
+ DoCheckProc += AuraCheckProcFn(spell_dk_death_strike_enabler_AuraScript::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_dk_death_strike_enabler_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_dk_death_strike_enabler_AuraScript::CalcPeriodic, EFFECT_0, SPELL_AURA_DUMMY);
+ OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_dk_death_strike_enabler_AuraScript::Update, EFFECT_0, SPELL_AURA_DUMMY);
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_death_strike_enabler_AuraScript::HandleCalcAmount, EFFECT_0, SPELL_AURA_DUMMY);
+ }
- AuraScript* GetAuraScript() const OVERRIDE
- {
- return new spell_dk_death_strike_enabler_AuraScript();
- }
+ uint32 _damagePerSecond[5];
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_dk_death_strike_enabler_AuraScript();
+ }
};
// 47496 - Explode, Ghoul spell for Corpse Explosion
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index 0458e4966ca..be05f21b774 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -30,8 +30,6 @@
enum PaladinSpells
{
SPELL_PALADIN_DIVINE_PLEA = 54428,
- SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF = 67480,
- SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE = 57319,
SPELL_PALADIN_HOLY_SHOCK_R1 = 20473,
SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE = 25912,
@@ -202,65 +200,6 @@ class spell_pal_blessing_of_faith : public SpellScriptLoader
}
};
-// 20911 - Blessing of Sanctuary
-// 25899 - Greater Blessing of Sanctuary
-class spell_pal_blessing_of_sanctuary : public SpellScriptLoader
-{
- public:
- spell_pal_blessing_of_sanctuary() : SpellScriptLoader("spell_pal_blessing_of_sanctuary") { }
-
- class spell_pal_blessing_of_sanctuary_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pal_blessing_of_sanctuary_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE))
- return false;
- return true;
- }
-
- void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- Unit* target = GetTarget();
- if (Unit* caster = GetCaster())
- caster->CastSpell(target, SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF, true);
- }
-
- void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- Unit* target = GetTarget();
- target->RemoveAura(SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF, GetCasterGUID());
- }
-
- bool CheckProc(ProcEventInfo& /*eventInfo*/)
- {
- return GetTarget()->getPowerType() == POWER_MANA;
- }
-
- void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
- {
- PreventDefaultAction();
- GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE, true, NULL, aurEff);
- }
-
- void Register() OVERRIDE
- {
- AfterEffectApply += AuraEffectApplyFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
- AfterEffectRemove += AuraEffectRemoveFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
- DoCheckProc += AuraCheckProcFn(spell_pal_blessing_of_sanctuary_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
-
- AuraScript* GetAuraScript() const OVERRIDE
- {
- return new spell_pal_blessing_of_sanctuary_AuraScript();
- }
-};
-
// 64205 - Divine Sacrifice
class spell_pal_divine_sacrifice : public SpellScriptLoader
{
@@ -1000,7 +939,6 @@ void AddSC_paladin_spell_scripts()
{
//new spell_pal_ardent_defender();
new spell_pal_blessing_of_faith();
- new spell_pal_blessing_of_sanctuary();
new spell_pal_divine_sacrifice();
new spell_pal_divine_storm();
new spell_pal_divine_storm_dummy();