diff options
-rw-r--r-- | src/game/Spell.cpp | 2 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 7 | ||||
-rw-r--r-- | src/game/Unit.cpp | 10 |
3 files changed, 7 insertions, 12 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 34f52daa974..294d016e33d 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -3381,7 +3381,7 @@ void Spell::TakeRunePower() } // you can gain some runic power when use runes - float rp = src->runePowerGain;; + float rp = src->runePowerGain; rp *= sWorld.getRate(RATE_POWER_RUNICPOWER_INCOME); plr->ModifyPower(POWER_RUNIC_POWER, (int32)rp); } diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index efca1bdc600..ff818b7dbc8 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -433,7 +433,12 @@ m_updated(false), m_isRemovedOnShapeLost(true), m_in_use(false) sLog.outDebug("Aura: construct Spellid : %u, Aura : %u Duration : %d Target : %d Damage : %d", m_spellProto->Id, m_spellProto->EffectApplyAuraName[eff], m_maxduration, m_spellProto->EffectImplicitTargetA[eff],damage); m_effIndex = eff; - SetModifier(AuraType(m_spellProto->EffectApplyAuraName[eff]), damage, m_spellProto->EffectAmplitude[eff], m_spellProto->EffectMiscValue[eff]); + int32 periodicTime = m_spellProto->EffectAmplitude[eff]; + //apply casting time mods for channeled spells + if (caster && IsChanneledSpell(m_spellProto)) + caster->ModSpellCastTime(m_spellProto, periodicTime); + + SetModifier(AuraType(m_spellProto->EffectApplyAuraName[eff]), damage,periodicTime , m_spellProto->EffectMiscValue[eff]); // Apply periodic time mod if(modOwner && m_modifier.periodictime) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index d91a6bf83e6..303270ee8fe 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8715,16 +8715,11 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 { // Damage Done from spell damage bonus int32 CastingTime = !IsChanneledSpell(spellProto) ? GetSpellCastTime(spellProto) : GetSpellDuration(spellProto); - if (IsChanneledSpell(spellProto)) - ModSpellCastTime(spellProto, CastingTime); // Damage over Time spells bonus calculation float DotFactor = 1.0f; if(damagetype == DOT) { int32 DotDuration = GetSpellDuration(spellProto); - //apply casting time mods for channeled spells - if (IsChanneledSpell(spellProto)) - ModSpellCastTime(spellProto, DotDuration); // 200% limit if(DotDuration > 0) { @@ -9211,16 +9206,11 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint { // Damage Done from spell damage bonus int32 CastingTime = !IsChanneledSpell(spellProto) ? GetSpellCastTime(spellProto) : GetSpellDuration(spellProto); - if (IsChanneledSpell(spellProto)) - ModSpellCastTime(spellProto, CastingTime); // Damage over Time spells bonus calculation float DotFactor = 1.0f; if(damagetype == DOT) { int32 DotDuration = GetSpellDuration(spellProto); - //apply casting time mods for channeled spells - if (IsChanneledSpell(spellProto)) - ModSpellCastTime(spellProto, DotDuration); // 200% limit if(DotDuration > 0) { |