aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-06-08 16:12:43 +0200
committerMachiavelli <none@none>2010-06-08 16:12:43 +0200
commite5aa4f7be97ca7c03cf9d8f5f3547f01b8c9cd3e (patch)
tree1e40d5057d042556a835c4e58dd051e19a79eec1
parent04955cfb235e7dd3803a486ec1d198401446278f (diff)
Only proc Infusion of Light (active buff) on Holy Shock criticals. (Problem introduced in previous fix)
Author: Shauren --HG-- branch : trunk
-rw-r--r--sql/updates/8511_world_spell_proc_event.sql1
-rw-r--r--sql/world_database.sql4
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp13
3 files changed, 12 insertions, 6 deletions
diff --git a/sql/updates/8511_world_spell_proc_event.sql b/sql/updates/8511_world_spell_proc_event.sql
new file mode 100644
index 00000000000..91cc7841f97
--- /dev/null
+++ b/sql/updates/8511_world_spell_proc_event.sql
@@ -0,0 +1 @@
+UPDATE spell_proc_event SET procEx = 0x0 WHERE entry IN(53569,53576);
diff --git a/sql/world_database.sql b/sql/world_database.sql
index 60c05bd068f..b589f3b1b0f 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, 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)
+( 53569, 0x00, 10, 0x40200000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Infusion of Light (Rank 1)
+( 53576, 0x00, 10, 0x40200000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 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 a5a3ea268f3..e2493e50e3c 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -7753,7 +7753,7 @@ bool Unit::HandleAuraProc(Unit * pVictim, uint32 damage, Aura * triggeredByAura,
// Infusion of Light
if (dummySpell->SpellIconID == 3021)
{
- // Flash of Light Heal over Time
+ // Flash of Light HoT on Flash of Light when Sacred Shield active
if (procSpell->SpellFamilyFlags[0] & 0x40000000 && procSpell->SpellIconID == 242)
{
*handled = true;
@@ -7763,9 +7763,14 @@ bool Unit::HandleAuraProc(Unit * pVictim, uint32 damage, Aura * triggeredByAura,
CastCustomSpell(pVictim, 66922, &bp0, NULL, NULL, true);
return true;
}
- }
- }
- }break;
+ }
+ // but should not proc on non-critical Holy Shocks
+ else if ((procSpell->SpellFamilyFlags[0] & 0x200000 || procSpell->SpellFamilyFlags[1] & 0x10000) && !(procEx & PROC_EX_CRITICAL_HIT))
+ *handled = true;
+ break;
+ }
+ break;
+ }
case SPELLFAMILY_MAGE:
{
// Combustion