aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-06-08 15:41:37 +0200
committerMachiavelli <none@none>2010-06-08 15:41:37 +0200
commit04955cfb235e7dd3803a486ec1d198401446278f (patch)
treebea032349065bafac55e31396eed6526178ab45a
parent332b0f3c8efb39d2532b965a4aed266a33f267ef (diff)
Fix Infusion of Light talent (53569,53576), properly cast HoT on target after Flash of Light cast when target has Sacred Shield active.
Big thanks to Shauren, QAston and JohnHoliver. --HG-- branch : trunk
-rw-r--r--sql/updates/8510_world_spell_proc_event.sql1
-rw-r--r--sql/world_database.sql4
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp20
3 files changed, 22 insertions, 3 deletions
diff --git a/sql/updates/8510_world_spell_proc_event.sql b/sql/updates/8510_world_spell_proc_event.sql
new file mode 100644
index 00000000000..c9d0a9cbc69
--- /dev/null
+++ b/sql/updates/8510_world_spell_proc_event.sql
@@ -0,0 +1 @@
+UPDATE spell_proc_event SET SpellFamilyMask0 = SpellFamilyMask0 | 0x40000000, procEx = ProcEx | 0x0000001 WHERE entry IN(53569,53576);
diff --git a/sql/world_database.sql b/sql/world_database.sql
index 692927a2fdf..60c05bd068f 100644
--- a/sql/world_database.sql
+++ b/sql/world_database.sql
@@ -6947,8 +6947,8 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
( 53551, 0x00, 10, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Sacred Cleansing (Rank 1)
( 53552, 0x00, 10, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Sacred Cleansing (Rank 2)
( 53553, 0x00, 10, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Sacred Cleansing (Rank 3)
-( 53569, 0x00, 10, 0x00200000, 0x00010000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Infusion of Light (Rank 1)
-( 53576, 0x00, 10, 0x00200000, 0x00010000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Infusion of Light (Rank 2)
+( 53569, 0x00, 10, 0x40200000, 0x00010000, 0x00000000, 0x00000000, 0x00000003, 0, 0, 0), -- Infusion of Light (Rank 1)
+( 53576, 0x00, 10, 0x40200000, 0x00010000, 0x00000000, 0x00000000, 0x00000003, 0, 0, 0), -- Infusion of Light (Rank 2)
( 53646, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Demonic Pact (Rank 1)
( 53671, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0, 0, 0), -- Judgements of the Pure (Rank 1)
( 53672, 0x00, 10, 0x00200000, 0x00010000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Infusion of Light
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 703ea029460..a5a3ea268f3 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -7742,12 +7742,30 @@ bool Unit::HandleModDamagePctTakenAuraProc(Unit *pVictim, uint32 /*damage*/, Aur
// Used in case when access to whole aura is needed
// All procs should be handled like this...
-bool Unit::HandleAuraProc(Unit * /*pVictim*/, uint32 damage, Aura * triggeredByAura, SpellEntry const * procSpell, uint32 /*procFlag*/, uint32 procEx, uint32 /*cooldown*/, bool * handled)
+bool Unit::HandleAuraProc(Unit * pVictim, uint32 damage, Aura * triggeredByAura, SpellEntry const * procSpell, uint32 /*procFlag*/, uint32 procEx, uint32 /*cooldown*/, bool * handled)
{
SpellEntry const *dummySpell = triggeredByAura->GetSpellProto();
switch(dummySpell->SpellFamilyName)
{
+ case SPELLFAMILY_PALADIN:
+ {
+ // Infusion of Light
+ if (dummySpell->SpellIconID == 3021)
+ {
+ // Flash of Light Heal over Time
+ if (procSpell->SpellFamilyFlags[0] & 0x40000000 && procSpell->SpellIconID == 242)
+ {
+ *handled = true;
+ if (pVictim->HasAura(53601))
+ {
+ int32 bp0 = (damage/12) * dummySpell->CalculateSimpleValue(2)/100;
+ CastCustomSpell(pVictim, 66922, &bp0, NULL, NULL, true);
+ return true;
+ }
+ }
+ }
+ }break;
case SPELLFAMILY_MAGE:
{
// Combustion