*Fix Dash - original patch by Dani.

*Set max target limit for Circle of healing.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-04-19 02:32:03 +02:00
parent c75e467513
commit 49bfc48f6e
3 changed files with 27 additions and 1 deletions
+19 -1
View File
@@ -3073,6 +3073,20 @@ void AuraEffect::HandleAuraModShapeshift(bool apply, bool Real)
if(m_target->GetTypeId()==TYPEID_PLAYER)
((Player*)m_target)->InitDataForForm();
if(m_target->getClass() == CLASS_DRUID)
{
if(form == FORM_CAT && apply) // add dash if in cat-from
{
if(AuraEffect * aurEff =m_target->GetAura(SPELL_AURA_MOD_INCREASE_SPEED, SPELLFAMILY_DRUID, 0, 0, 0x8))
m_target->HandleAuraEffect(aurEff, true);
}
else // remove dash effect(not buff) if out of cat-from
{
if(AuraEffect * aurEff =m_target->GetAura(SPELL_AURA_MOD_INCREASE_SPEED, SPELLFAMILY_DRUID, 0, 0, 0x8))
m_target->HandleAuraEffect(aurEff, false);
}
}
}
void AuraEffect::HandleAuraTransform(bool apply, bool Real)
@@ -3950,12 +3964,16 @@ void AuraEffect::HandleModTaunt(bool apply, bool Real)
/*********************************************************/
/*** MODIFY SPEED ***/
/*********************************************************/
void AuraEffect::HandleAuraModIncreaseSpeed(bool /*apply*/, bool Real)
void AuraEffect::HandleAuraModIncreaseSpeed(bool apply, bool Real)
{
// all applied/removed only at real aura add/remove
if(!Real)
return;
if(apply) // Dash wont work if you are not in cat form
if(m_spellProto->SpellFamilyName==SPELLFAMILY_DRUID && m_spellProto->SpellFamilyFlags[2] & 0x8 && m_target->m_form != FORM_CAT )
return;
m_target->UpdateSpeed(MOVE_RUN, true);
}
+5
View File
@@ -2423,6 +2423,11 @@ void SpellMgr::LoadSpellCustomAttr()
if(spellInfo->SpellFamilyFlags[2] & 0x100)
spellInfo->MaxAffectedTargets = 2;
break;
// circle of healing
case SPELLFAMILY_PRIEST:
if(spellInfo->SpellFamilyFlags[0] & 0x10000000)
spellInfo->MaxAffectedTargets = 5;
break;
}
}