diff options
-rw-r--r-- | sql/updates/8510_world_spell_proc_event.sql | 1 | ||||
-rw-r--r-- | sql/world_database.sql | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 20 |
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 |