[9742] Final cleanup in non proper now EffectBasePoints use.

This commit is contained in:
VladimirMangos 2010-04-13 16:07:30 +04:00
parent 958edb65f7
commit ee0089826d
4 changed files with 10 additions and 9 deletions

View file

@ -384,7 +384,7 @@ m_isRemovedOnShapeLost(true), m_in_use(0), m_deleted(false)
m_spellProto = spellproto; m_spellProto = spellproto;
m_currentBasePoints = currentBasePoints ? *currentBasePoints : m_spellProto->EffectBasePoints[eff] + 1; m_currentBasePoints = currentBasePoints ? *currentBasePoints : m_spellProto->CalculateSimpleValue(eff);
m_isPassive = IsPassiveSpell(GetId()); m_isPassive = IsPassiveSpell(GetId());
m_positive = IsPositiveEffect(GetId(), m_effIndex); m_positive = IsPositiveEffect(GetId(), m_effIndex);
@ -397,7 +397,7 @@ m_isRemovedOnShapeLost(true), m_in_use(0), m_deleted(false)
if(!caster) if(!caster)
{ {
m_caster_guid = target->GetGUID(); m_caster_guid = target->GetGUID();
damage = m_currentBasePoints; // stored value-1 damage = m_currentBasePoints;
m_maxduration = target->CalculateSpellDuration(m_spellProto, m_effIndex, target); m_maxduration = target->CalculateSpellDuration(m_spellProto, m_effIndex, target);
} }
else else
@ -818,7 +818,7 @@ void AreaAura::Update(uint32 diff)
int32 actualBasePoints = m_currentBasePoints; int32 actualBasePoints = m_currentBasePoints;
// recalculate basepoints for lower rank (all AreaAura spell not use custom basepoints?) // recalculate basepoints for lower rank (all AreaAura spell not use custom basepoints?)
if(actualSpellInfo != GetSpellProto()) if(actualSpellInfo != GetSpellProto())
actualBasePoints = actualSpellInfo->EffectBasePoints[m_effIndex]; actualBasePoints = actualSpellInfo->CalculateSimpleValue(m_effIndex);
AreaAura *aur = new AreaAura(actualSpellInfo, m_effIndex, &actualBasePoints, (*tIter), caster, NULL); AreaAura *aur = new AreaAura(actualSpellInfo, m_effIndex, &actualBasePoints, (*tIter), caster, NULL);
aur->SetAuraDuration(GetAuraDuration()); aur->SetAuraDuration(GetAuraDuration());
(*tIter)->AddAura(aur); (*tIter)->AddAura(aur);

View file

@ -373,7 +373,7 @@ class MANGOS_DLL_SPEC Aura
uint64 m_castItemGuid; // it is NOT safe to keep a pointer to the item because it may get deleted uint64 m_castItemGuid; // it is NOT safe to keep a pointer to the item because it may get deleted
time_t m_applyTime; time_t m_applyTime;
int32 m_currentBasePoints; // cache SpellEntry::EffectBasePoints and use for set custom base points int32 m_currentBasePoints; // cache SpellEntry::EffectBasePoints+1 and use for set custom base points
int32 m_maxduration; // Max aura duration int32 m_maxduration; // Max aura duration
int32 m_duration; // Current time int32 m_duration; // Current time
int32 m_timeCla; // Timer for power per sec calcultion int32 m_timeCla; // Timer for power per sec calcultion

View file

@ -1985,8 +1985,9 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
spellProto->Id == 60218) // Essence of Gossamer spellProto->Id == 60218) // Essence of Gossamer
{ {
// Max absorb stored in 1 dummy effect // Max absorb stored in 1 dummy effect
if (spellProto->EffectBasePoints[EFFECT_INDEX_1] < currentAbsorb) uint32 max_absorb = spellProto->CalculateSimpleValue(EFFECT_INDEX_1);
currentAbsorb = spellProto->EffectBasePoints[EFFECT_INDEX_1]; if (max_absorb < currentAbsorb)
currentAbsorb = max_absorb;
break; break;
} }
break; break;
@ -6540,7 +6541,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
{ {
if (procSpell->Effect[i] == SPELL_EFFECT_ENERGIZE) if (procSpell->Effect[i] == SPELL_EFFECT_ENERGIZE)
{ {
int32 mana = procSpell->EffectBasePoints[i]; int32 mana = procSpell->CalculateSimpleValue(SpellEffectIndex(i));
CastCustomSpell(this, 54986, NULL, &mana, NULL, true, castItem, triggeredByAura); CastCustomSpell(this, 54986, NULL, &mana, NULL, true, castItem, triggeredByAura);
break; break;
} }
@ -7252,7 +7253,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
// 27526; - drain mana if possible // 27526; - drain mana if possible
case 43820: // Charm of the Witch Doctor (Amani Charm of the Witch Doctor trinket) case 43820: // Charm of the Witch Doctor (Amani Charm of the Witch Doctor trinket)
// Pct value stored in dummy // Pct value stored in dummy
basepoints[0] = pVictim->GetCreateHealth() * auraSpellInfo->EffectBasePoints[EFFECT_INDEX_1] / 100; basepoints[0] = pVictim->GetCreateHealth() * auraSpellInfo->CalculateSimpleValue(EFFECT_INDEX_1) / 100;
target = pVictim; target = pVictim;
break; break;
//case 45205: break; // Copy Offhand Weapon //case 45205: break; // Copy Offhand Weapon

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "9741" #define REVISION_NR "9742"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__