Core/Spells: Fix damage from Seed of Corruption explosion

This commit is contained in:
tobmaps
2011-05-12 03:29:16 +07:00
parent cdd4160157
commit edc182920e
3 changed files with 10 additions and 4 deletions
+3 -2
View File
@@ -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'), (29722, 0.7139, -1, -1, -1, 'Warlock - Incinerate'),
(42223, 0.286, -1, -1, -1, 'Warlock - Rain of Fire Triggered Rank 1'), (42223, 0.286, -1, -1, -1, 'Warlock - Rain of Fire Triggered Rank 1'),
(5676, 0.4293, -1, -1, -1, 'Warlock - Searing Pain'), (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'), (686, 0.8569, -1, -1, -1, 'Warlock - Shadow Bolt'),
(6229, 0.3, -1, -1, -1, 'Warlock - Shadow Ward'), (6229, 0.3, -1, -1, -1, 'Warlock - Shadow Ward'),
(17877, 0.4293, -1, -1, -1, 'Warlock - Shadowburn'), (17877, 0.4293, -1, -1, -1, 'Warlock - Shadowburn'),
@@ -25806,7 +25807,7 @@ INSERT INTO spell_ranks (`first_spell_id`, `spell_id`, `rank`) VALUES
-- Safeguard -- Safeguard
(46946, 46946, 1), (46946, 46946, 1),
(46946, 46947, 2), (46946, 46947, 2),
-- Seed of Corruption -- Seed of Corruption Proc
(27285, 27285, 1), (27285, 27285, 1),
(27285, 47833, 2), (27285, 47833, 2),
(27285, 47834, 3), (27285, 47834, 3),
@@ -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');
+4 -2
View File
@@ -5855,7 +5855,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Seed of Corruption // Seed of Corruption
if (dummySpell->SpellFamilyFlags[1] & 0x00000010) if (dummySpell->SpellFamilyFlags[1] & 0x00000010)
{ {
if (procSpell && procSpell->Id == 27285) if (procSpell && procSpell->SpellFamilyFlags[1] & 0x8000)
return false; return false;
// if damage is more than need or target die from damage deal finish spell // if damage is more than need or target die from damage deal finish spell
if (triggeredByAura->GetAmount() <= int32(damage) || GetHealth() <= damage) 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) // Remove aura (before cast for prevent infinite loop handlers)
RemoveAurasDueToSpell(triggeredByAura->GetId()); RemoveAurasDueToSpell(triggeredByAura->GetId());
uint32 spell = sSpellMgr->GetSpellWithRank(27285, sSpellMgr->GetSpellRank(dummySpell->Id));
// Cast finish spell (triggeredByAura already not exist!) // Cast finish spell (triggeredByAura already not exist!)
if (Unit* caster = GetUnit(*this, casterGuid)) if (Unit* caster = GetUnit(*this, casterGuid))
caster->CastSpell(this, 27285, true, castItem); caster->CastSpell(this, spell, true, castItem);
return true; // no hidden cooldown return true; // no hidden cooldown
} }