aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/world_database.sql5
-rw-r--r--sql/updates/world/2011_05_11_06_world_spell_bonus_data.sql3
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp6
3 files changed, 10 insertions, 4 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index 5ed9b63e391..a0807ae6e19 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -17135,7 +17135,8 @@ INSERT INTO `spell_bonus_data` (`entry`,`direct_bonus`,`dot_bonus`,`ap_bonus`,`a
(29722, 0.7139, -1, -1, -1, 'Warlock - Incinerate'),
(42223, 0.286, -1, -1, -1, 'Warlock - Rain of Fire Triggered Rank 1'),
(5676, 0.4293, -1, -1, -1, 'Warlock - Searing Pain'),
-(27243, 0.2129, 0.25, -1, -1, 'Warlock - Seed of Corruption'),
+(27243, -1, 0.25, -1, -1, 'Warlock - Seed of Corruption'),
+(27285, 0.2129, -1, -1, -1, 'Seed of Corruption Proc'),
(686, 0.8569, -1, -1, -1, 'Warlock - Shadow Bolt'),
(6229, 0.3, -1, -1, -1, 'Warlock - Shadow Ward'),
(17877, 0.4293, -1, -1, -1, 'Warlock - Shadowburn'),
@@ -25806,7 +25807,7 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES
-- Safeguard
(46946, 46946, 1),
(46946, 46947, 2),
- -- Seed of Corruption
+ -- Seed of Corruption Proc
(27285, 27285, 1),
(27285, 47833, 2),
(27285, 47834, 3),
diff --git a/sql/updates/world/2011_05_11_06_world_spell_bonus_data.sql b/sql/updates/world/2011_05_11_06_world_spell_bonus_data.sql
new file mode 100644
index 00000000000..de95bdd5524
--- /dev/null
+++ b/sql/updates/world/2011_05_11_06_world_spell_bonus_data.sql
@@ -0,0 +1,3 @@
+UPDATE `spell_bonus_data` SET `direct_bonus` = -1 WHERE `entry` = 27243;
+DELETE FROM `spell_bonus_data` WHERE `entry` = 27285;
+INSERT INTO `spell_bonus_data` VALUES (27285, 0.2129, -1, -1, -1,'Warlock - Seed of Corruption Proc');
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index b87d665fb99..9c0303f93b2 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5855,7 +5855,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Seed of Corruption
if (dummySpell->SpellFamilyFlags[1] & 0x00000010)
{
- if (procSpell && procSpell->Id == 27285)
+ if (procSpell && procSpell->SpellFamilyFlags[1] & 0x8000)
return false;
// if damage is more than need or target die from damage deal finish spell
if (triggeredByAura->GetAmount() <= int32(damage) || GetHealth() <= damage)
@@ -5866,9 +5866,11 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Remove aura (before cast for prevent infinite loop handlers)
RemoveAurasDueToSpell(triggeredByAura->GetId());
+ uint32 spell = sSpellMgr->GetSpellWithRank(27285, sSpellMgr->GetSpellRank(dummySpell->Id));
+
// Cast finish spell (triggeredByAura already not exist!)
if (Unit* caster = GetUnit(*this, casterGuid))
- caster->CastSpell(this, 27285, true, castItem);
+ caster->CastSpell(this, spell, true, castItem);
return true; // no hidden cooldown
}