aboutsummaryrefslogtreecommitdiff
path: root/src/game/Spell.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-24 22:31:54 -0500
committermegamage <none@none>2009-08-24 22:31:54 -0500
commit87270fefc235d45c2d9116b4a26f0dc32f1a5d7e (patch)
treedfe9897672fc1e33fa8ee1b5fa4f9c299afa2aec /src/game/Spell.cpp
parenta8f394f8510797e60e93a22ed409d860579ad76b (diff)
*Some update of aura system. Remove unnecessary variables and parameters from auraeffect. Always refer to parent aura when finding target/source/caster.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r--src/game/Spell.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 5d7e57d2c34..7d4099500d9 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1362,22 +1362,23 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask, bool
}
}
- Unit * caster = m_originalCaster ? m_originalCaster : m_caster;
- Aura * Aur = new Aura(aurSpellInfo, aura_effmask, basePoints, unit, m_caster, caster, m_CastItem);
+ if(m_originalCaster)
+ {
+ Aura *Aur = new Aura(aurSpellInfo, aura_effmask, unit, m_caster, m_originalCaster, basePoints, m_CastItem);
if (!Aur->IsAreaAura())
{
// Now Reduce spell duration using data received at spell hit
int32 duration = Aur->GetAuraMaxDuration();
int32 limitduration = GetDiminishingReturnsLimitDuration(m_diminishGroup,aurSpellInfo);
- unitTarget->ApplyDiminishingToDuration(m_diminishGroup, duration, caster, m_diminishLevel,limitduration);
+ unitTarget->ApplyDiminishingToDuration(m_diminishGroup, duration, m_originalCaster, m_diminishLevel,limitduration);
Aur->setDiminishGroup(m_diminishGroup);
- duration = caster->ModSpellDuration(aurSpellInfo, unit, duration, Aur->IsPositive());
+ duration = m_originalCaster->ModSpellDuration(aurSpellInfo, unit, duration, Aur->IsPositive());
//mod duration of channeled aura by spell haste
if (IsChanneledSpell(m_spellInfo))
- caster->ModSpellCastTime(aurSpellInfo, duration, this);
+ m_originalCaster->ModSpellCastTime(aurSpellInfo, duration, this);
if(duration != Aur->GetAuraMaxDuration())
{
@@ -1395,6 +1396,8 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask, bool
// Set aura only when successfully applied
if (unit->AddAura(Aur, false))
m_spellAura = Aur;
+
+ }
}
for(uint32 effectNumber = 0; effectNumber < 3; ++effectNumber)