diff options
author | QAston <none@none> | 2009-06-24 15:58:44 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-06-24 15:58:44 +0200 |
commit | 33b2917bb7cbf4512c5bd58d99ceb795ef7a1a10 (patch) | |
tree | df055da250120e767ab7512eaa2e2e9f55738cd8 /src/game/Spell.cpp | |
parent | 329b020af442240131f9d08d577f694e50bc9064 (diff) |
*Fix Ferocious Bite energy to dmg conversion
*Remove duplicated AP coefficients for Hammer of Wrath and Avengers Shield
*Correctly do effectaddcombopoints for spells which take them.
*Do not proc spelleffects on player login.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r-- | src/game/Spell.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index fbd13bb6ea0..88a7d8508c3 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -363,6 +363,7 @@ Spell::Spell( Unit* Caster, SpellEntry const *info, bool triggered, uint64 origi m_referencedFromCurrentSpell = false; m_executedCurrently = false; m_needComboPoints = NeedsComboPoints(m_spellInfo); + m_comboPointGain = 0; m_delayStart = 0; m_delayAtDamageCount = 0; @@ -2730,7 +2731,13 @@ void Spell::cast(bool skipCheck) ((Player*)m_caster)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL, m_spellInfo->Id); } - // this is related to combo points so must be done before takepower + if(!m_IsTriggeredSpell) + { + // Powers have to be taken before SendSpellGo + TakePower(); + TakeReagents(); // we must remove reagents before HandleEffects to allow place crafted item in same slot + } + // are there any spells need to be triggered after hit? // handle SPELL_AURA_ADD_TARGET_TRIGGER auras Unit::AuraEffectList const& targetTriggers = m_caster->GetAurasByType(SPELL_AURA_ADD_TARGET_TRIGGER); @@ -2748,17 +2755,9 @@ void Spell::cast(bool skipCheck) } } - // this is related to combo points so must be done before takepower if(m_customAttr & SPELL_ATTR_CU_DIRECT_DAMAGE) CalculateDamageDoneForAllTargets(); - if(!m_IsTriggeredSpell) - { - // Powers have to be taken before SendSpellGo - TakePower(); - TakeReagents(); // we must remove reagents before HandleEffects to allow place crafted item in same slot - } - // CAST SPELL SendSpellCooldown(); //SendCastResult(castResult); @@ -2972,6 +2971,10 @@ void Spell::_handle_finish_phase() if (m_needComboPoints) ((Player*)m_caster)->ClearComboPoints(); + // Real add combo points from effects + if (m_caster->GetTypeId()==TYPEID_PLAYER) + ((Player*)m_caster)->GainSpellComboPoints(m_comboPointGain); + // spell log if(m_needSpellLog) SendLogExecute(); |