*Update to Mangos 7190.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-01-26 17:13:27 -06:00
parent 6349c86f52
commit c5de7cccb8
11 changed files with 352 additions and 341 deletions
+10 -51
View File
@@ -104,7 +104,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
&Aura::HandleAuraModParryPercent, // 47 SPELL_AURA_MOD_PARRY_PERCENT
&Aura::HandleUnused, // 48 SPELL_AURA_MOD_DODGE_SKILL obsolete?
&Aura::HandleAuraModDodgePercent, // 49 SPELL_AURA_MOD_DODGE_PERCENT
&Aura::HandleUnused, // 50 SPELL_AURA_MOD_BLOCK_SKILL obsolete?
&Aura::HandleNoImmediateEffect, // 50 SPELL_AURA_MOD_CRITICAL_HEALING_BONUS
&Aura::HandleAuraModBlockPercent, // 51 SPELL_AURA_MOD_BLOCK_PERCENT
&Aura::HandleAuraModCritPercent, // 52 SPELL_AURA_MOD_CRIT_PERCENT
&Aura::HandlePeriodicLeech, // 53 SPELL_AURA_PERIODIC_LEECH
@@ -337,7 +337,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
&Aura::HandleNULL, //280 SPELL_AURA_MOD_TARGET_ARMOR_PCT
&Aura::HandleNULL, //281 SPELL_AURA_MOD_HONOR_GAIN
&Aura::HandleAuraIncreaseBaseHealthPercent, //282 SPELL_AURA_INCREASE_BASE_HEALTH_PERCENT
&Aura::HandleNULL //283 SPD/heal from AP?
&Aura::HandleNoImmediateEffect //283 SPELL_AURA_MOD_HEALING_RECEIVED implemented in Unit::SpellHealingBonus
};
Aura::Aura(SpellEntry const* spellproto, uint32 eff, int32 *currentBasePoints, Unit *target, Unit *caster, Item* castItem) :
@@ -3974,40 +3974,6 @@ void Aura::HandleAuraPeriodicDummy(bool apply, bool Real)
void Aura::HandlePeriodicHeal(bool apply, bool Real)
{
m_isPeriodic = apply;
// For prevent double apply bonuses
bool loading = (m_target->GetTypeId() == TYPEID_PLAYER && ((Player*)m_target)->GetSession()->PlayerLoading());
if(!loading && apply)
{
switch (m_spellProto->SpellFamilyName)
{
case SPELLFAMILY_DRUID:
{
// Rejuvenation
if(m_spellProto->SpellFamilyFlags & 0x0000000000000010LL)
{
if(Unit* caster = GetCaster())
{
Unit::AuraList const& classScripts = caster->GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
for(Unit::AuraList::const_iterator k = classScripts.begin(); k != classScripts.end(); ++k)
{
int32 tickcount = GetSpellDuration(m_spellProto) / m_spellProto->EffectAmplitude[m_effIndex];
switch((*k)->GetModifier()->m_miscvalue)
{
case 4953: // Increased Rejuvenation Healing - Harold's Rejuvenating Broach Aura
case 4415: // Increased Rejuvenation Healing - Idol of Rejuvenation Aura
{
m_modifier.m_amount += (*k)->GetModifier()->m_amount / tickcount;
break;
}
}
}
}
}
}
}
}
}
void Aura::HandlePeriodicDamage(bool apply, bool Real)
@@ -4166,21 +4132,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
int32 holy = caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellProto)) +
caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellProto), m_target);
m_modifier.m_amount += int32(0.04f*holy + 0.04f*ap);
// Improved Consecration - Libram of the Eternal Rest
Unit::AuraList const& classScripts = caster->GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
for(Unit::AuraList::const_iterator k = classScripts.begin(); k != classScripts.end(); ++k)
{
switch((*k)->GetModifier()->m_miscvalue)
{
case 5147:
{
int32 tickcount = GetSpellDuration(m_spellProto) / m_spellProto->EffectAmplitude[m_effIndex];
m_modifier.m_amount += (*k)->GetModifier()->m_amount / tickcount;
break;
}
}
}
return;
}
// Seal of Vengeance 0.013*$SPH+0.025*$AP per tick (also can stack)
@@ -5386,6 +5337,14 @@ void Aura::HandleSpiritOfRedemption( bool apply, bool Real )
void Aura::CleanupTriggeredSpells()
{
if (m_spellProto->SpellFamilyName == SPELLFAMILY_WARRIOR && m_spellProto->SpellFamilyFlags & 0x0000001000000020LL)
{
// Blood Frenzy remove
m_target->RemoveAurasDueToSpell(30069);
m_target->RemoveAurasDueToSpell(30070);
return;
}
uint32 tSpellId = m_spellProto->EffectTriggerSpell[GetEffIndex()];
if(!tSpellId)
return;