aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/2794_world_spell_proc_event.sql3
-rw-r--r--src/game/SpellAuras.cpp20
-rw-r--r--src/game/SpellMgr.cpp5
3 files changed, 27 insertions, 1 deletions
diff --git a/sql/updates/2794_world_spell_proc_event.sql b/sql/updates/2794_world_spell_proc_event.sql
new file mode 100644
index 00000000000..ac52b418d85
--- /dev/null
+++ b/sql/updates/2794_world_spell_proc_event.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_proc_event` WHERE `entry` IN (54754);
+INSERT INTO `spell_proc_event` VALUES
+(54754, 0x00, 7, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x0000000, 0.000000, 0.000000, 0);
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 5e0da2f9e35..37c4600feaf 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -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);
}
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index c3467ad7e1a..d130d58f9fd 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -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;
}
}