aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/FULL/world_spell_full.sql6
-rw-r--r--sql/updates/5450_world_spell_proc_event.sql5
-rw-r--r--src/game/SpellAuras.cpp2
-rw-r--r--src/game/SpellAuras.h2
-rw-r--r--src/game/Unit.cpp3
5 files changed, 13 insertions, 5 deletions
diff --git a/sql/FULL/world_spell_full.sql b/sql/FULL/world_spell_full.sql
index 56886d85191..aa5bb7610a6 100644
--- a/sql/FULL/world_spell_full.sql
+++ b/sql/FULL/world_spell_full.sql
@@ -1097,9 +1097,9 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 46867, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Wrecking Crew (Rank 1)
( 46910, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 5.5, 0, 0), -- Furious Attacks (Rank 1)
( 46911, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 7.5, 0, 0), -- Furious Attacks (Rank 2)
-( 46913, 0x00, 4, 0x00000000, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Bloodsurge (Rank 1)
-( 46914, 0x00, 4, 0x00000000, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Bloodsurge (Rank 2)
-( 46915, 0x00, 4, 0x00000000, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Bloodsurge (Rank 3)
+( 46913, 0x00, 4, 0x00000040, 0x00000404, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Bloodsurge (Rank 1)
+( 46914, 0x00, 4, 0x00000040, 0x00000404, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Bloodsurge (Rank 2)
+( 46915, 0x00, 4, 0x00000040, 0x00000404, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Bloodsurge (Rank 3)
( 46916, 0x00, 4, 0x00000000, 0x00000400, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Slam!
( 46951, 0x00, 4, 0x00000400, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Sword and Board (Rank 1)
( 46952, 0x00, 0, 0x00000400, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Sword and Board (Rank 2)
diff --git a/sql/updates/5450_world_spell_proc_event.sql b/sql/updates/5450_world_spell_proc_event.sql
new file mode 100644
index 00000000000..73206c7770a
--- /dev/null
+++ b/sql/updates/5450_world_spell_proc_event.sql
@@ -0,0 +1,5 @@
+DELETE FROM `spell_proc_event` WHERE `entry` IN(46913, 46914, 46915);
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+( 46913, 0x00, 4, 0x00000040, 0x00000404, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Bloodsurge (Rank 1)
+( 46914, 0x00, 4, 0x00000040, 0x00000404, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Bloodsurge (Rank 2)
+( 46915, 0x00, 4, 0x00000040, 0x00000404, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0); -- Bloodsurge (Rank 3) \ No newline at end of file
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index d698553487b..2040722c17e 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -6988,7 +6988,7 @@ int32 AuraEffect::CalculateCrowdControlAuraAmount(Unit * caster)
return damageCap;
}
-int32 AuraEffect::IsPeriodicTickCrit(Unit const * pCaster) const
+bool AuraEffect::IsPeriodicTickCrit(Unit const * pCaster) const
{
Unit::AuraEffectList const& mPeriodicCritAuras= pCaster->GetAurasByType(SPELL_AURA_ABILITY_PERIODIC_CRIT);
for(Unit::AuraEffectList::const_iterator itr = mPeriodicCritAuras.begin(); itr != mPeriodicCritAuras.end(); ++itr)
diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h
index 1c94be8034a..4fe680f26fc 100644
--- a/src/game/SpellAuras.h
+++ b/src/game/SpellAuras.h
@@ -403,7 +403,7 @@ class TRINITY_DLL_SPEC AuraEffect
bool m_isPersistent:1;
bool m_isApplied:1;
private:
- int32 IsPeriodicTickCrit(Unit const * pCaster) const;
+ bool IsPeriodicTickCrit(Unit const * pCaster) const;
};
class TRINITY_DLL_SPEC AreaAuraEffect : public AuraEffect
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index a828f634ec9..12166cc917a 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -8847,7 +8847,10 @@ Unit* Unit::SelectMagnetTarget(Unit *victim, SpellEntry const *spellInfo)
for(Unit::AuraEffectList::const_iterator itr = magnetAuras.begin(); itr != magnetAuras.end(); ++itr)
if(Unit* magnet = (*itr)->GetParentAura()->GetUnitSource())
if(magnet->isAlive())
+ {
+ (*i)->GetParentAura()->DropAuraCharge();
return magnet;
+ }
}
// Melee && ranged case
else