aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/4234_world_spell_bonus_data_TDB.sql4
-rw-r--r--sql/world.sql3
-rw-r--r--src/game/SpellEffects.cpp12
3 files changed, 13 insertions, 6 deletions
diff --git a/sql/updates/4234_world_spell_bonus_data_TDB.sql b/sql/updates/4234_world_spell_bonus_data_TDB.sql
new file mode 100644
index 00000000000..96673ed3a7c
--- /dev/null
+++ b/sql/updates/4234_world_spell_bonus_data_TDB.sql
@@ -0,0 +1,4 @@
+DELETE FROM `spell_bonus_data` WHERE `entry`='17962';
+
+INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `comments`) VALUES
+('17962', '0', '0', '0', 'Warlock - Conflagrate');
diff --git a/sql/world.sql b/sql/world.sql
index f96d43b66d9..8c5dfb46eff 100644
--- a/sql/world.sql
+++ b/sql/world.sql
@@ -13991,7 +13991,8 @@ INSERT INTO `spell_bonus_data` VALUES
(61295,0.4,0.18,0,'Shaman - Riptide'),
(61391,0.193,0,0,'Druid - Typhoon'),
(61651,0.2142,0,0,'Shaman - Fire Nova Totem Casted by Totem Rank 8'),
-(61660,0.2142,0,0,'Shaman - Fire Nova Totem Casted by Totem Rank 9');
+(61660,0.2142,0,0,'Shaman - Fire Nova Totem Casted by Totem Rank 9'),
+('17962', '0', '0', '0', 'Warlock - Conflagrate');
/*!40000 ALTER TABLE `spell_bonus_data` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index ca7bb75dff6..e9a358a05c2 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -473,12 +473,9 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
if(unitTarget->HasAuraState(AURA_STATE_IMMOLATE, m_spellInfo, m_caster))
damage += int32(damage*0.25f);
}
- // Conflagrate - consumes immolate
+ // Conflagrate - consumes immolate or shadowflame
else if (m_spellInfo->TargetAuraState == AURA_STATE_IMMOLATE)
{
- // Glyph of Conflagrate
- if (m_caster->HasAura(56235))
- break;
// for caster applied auras only
Unit::AuraEffectList const &mPeriodic = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
for(Unit::AuraEffectList::const_iterator i = mPeriodic.begin(); i != mPeriodic.end(); ++i)
@@ -486,7 +483,12 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
if( (*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && ((*i)->GetSpellProto()->SpellFamilyFlags[0] & 4 || (*i)->GetSpellProto()->SpellFamilyFlags[2] & 2) &&
(*i)->GetCasterGUID()==m_caster->GetGUID() )
{
- unitTarget->RemoveAurasDueToSpell((*i)->GetId(), m_caster->GetGUID());
+ uint32 pdamage = (*i)->GetAmount() > 0 ? (*i)->GetAmount() : 0;
+ pdamage = m_caster->SpellDamageBonus(unitTarget, (*i)->GetSpellProto(), pdamage, DOT, (*i)->GetParentAura()->GetStackAmount());
+ damage += pdamage * 4; // 4 ticks of 3 seconds = 12 secs
+ // Glyph of Conflagrate
+ if (!m_caster->HasAura(56235))
+ unitTarget->RemoveAurasDueToSpell((*i)->GetId(), m_caster->GetGUID());
break;
}
}