aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/3951_world_spell_proc_event.sql3
-rw-r--r--sql/world_spell_full.sql1
-rw-r--r--src/game/Unit.cpp78
3 files changed, 47 insertions, 35 deletions
diff --git a/sql/updates/3951_world_spell_proc_event.sql b/sql/updates/3951_world_spell_proc_event.sql
new file mode 100644
index 00000000000..d2f6a2c7993
--- /dev/null
+++ b/sql/updates/3951_world_spell_proc_event.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_proc_event` WHERE `entry` IN (53646);
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+(53646, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0); -- Demonic Pact \ No newline at end of file
diff --git a/sql/world_spell_full.sql b/sql/world_spell_full.sql
index 3635237091b..e0b88fcd5cd 100644
--- a/sql/world_spell_full.sql
+++ b/sql/world_spell_full.sql
@@ -1392,6 +1392,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
(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)
(53601, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 6), -- Sacred Shield (Rank 1)
+(53646, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0); -- Demonic Pact
(53671, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Judgements of the Pure (Rank 1)
(53672, 0x00, 10, 0x00200000, 0x00010000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Infusion of Light
(53673, 0x00, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Judgements of the Pure (Rank 2)
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index ab63bb42a0d..69baf10ef68 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -7420,41 +7420,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
break;
}
}
- else
- {
- switch (auraSpellInfo->SpellFamilyName)
- {
- case SPELLFAMILY_WARRIOR:
- // Sword and Board
- if (trigger_spell_id == 50227)
- // remove cooldown of Shield Slam
- if (GetTypeId()==TYPEID_PLAYER)
- ((Player*)this)->RemoveCategoryCooldown(1209);
- break;
- case SPELLFAMILY_MAGE:
- if (trigger_spell_id == 22959)
- {
- // Glyph of Improved Scorch
- if (AuraEffect * aurEff = GetDummyAura(56371))
- {
- for (int32 count = aurEff->GetAmount();count>0;count--)
- CastSpell(pVictim, 22959, true);
- return true;
- }
- }
- break;
- case SPELLFAMILY_DEATHKNIGHT:
- // Glyph of Death Grip
- if (trigger_spell_id == 58628)
- {
- // remove cooldown of Death Grip
- if (GetTypeId()==TYPEID_PLAYER)
- ((Player*)this)->RemoveCategoryCooldown(82);
- return true;
- }
- break;
- }
- }
// All ok. Check current trigger spell
SpellEntry const* triggerEntry = sSpellStore.LookupEntry(trigger_spell_id);
@@ -7589,6 +7554,17 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
// Need add combopoint AFTER finish movie (or they dropped in finish phase)
break;
}
+ case 22959:
+ {
+ // Glyph of Improved Scorch
+ if (AuraEffect * aurEff = GetDummyAura(56371))
+ {
+ for (int32 count = aurEff->GetAmount();count>0;count--)
+ CastSpell(pVictim, 22959, true);
+ return true;
+ }
+ break;
+ }
// Bloodthirst (($m/100)% of max health)
case 23880:
{
@@ -7608,6 +7584,30 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
return false;
break;
}
+ // Demonic Pact
+ case 48090:
+ {
+ // Get talent aura from owner
+ if (GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isPet())
+ if (Unit * owner = GetOwner())
+ {
+ if (AuraEffect * aurEff = owner->GetDummyAura(SPELLFAMILY_WARLOCK, 3220))
+ {
+ basepoints0 = aurEff->GetAmount();
+ CastCustomSpell(this,trigger_spell_id,&basepoints0,&basepoints0,NULL,true,castItem,triggeredByAura);
+ return true;
+ }
+ }
+ break;
+ }
+ // Sword and Board
+ case 50227:
+ {
+ // remove cooldown of Shield Slam
+ if (GetTypeId()==TYPEID_PLAYER)
+ ((Player*)this)->RemoveCategoryCooldown(1209);
+ break;
+ }
// Brain Freeze
case 57761:
{
@@ -7661,6 +7661,14 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
return false;
break;
}
+ // Glyph of Death Grip
+ case 58628:
+ {
+ // remove cooldown of Death Grip
+ if (GetTypeId()==TYPEID_PLAYER)
+ ((Player*)this)->RemoveCategoryCooldown(82);
+ return true;
+ }
}
if( cooldown && GetTypeId()==TYPEID_PLAYER && ((Player*)this)->HasSpellCooldown(trigger_spell_id))