aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2012-04-06 18:42:37 -0700
committerShocker <shocker@freakz.ro>2012-04-06 18:42:37 -0700
commit1fccaae4b00d0a4e6019ea2735e32ad7dd1962f4 (patch)
tree703b380beb1c1d97f1129ae92df7cc9eb8f0c3c6 /src/server/game/Spells/Spell.cpp
parent33d5e7c753f484c33f7bbc017bbfc52549a12e30 (diff)
parentcc03f2db361be852302a35389a58ce6888ce6bd5 (diff)
Merge pull request #6070 from MrSmite/PetAI_3.1
Core/Pets: Improve PetAI Closes #6048 Closes #6070
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 82a89e97e4b..8759cfd9acc 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3101,11 +3101,20 @@ void Spell::cast(bool skipCheck)
return;
}
- // now that we've done the basic check, now run the scripts
- // should be done before the spell is actually executed
if (Player* playerCaster = m_caster->ToPlayer())
+ {
+ // now that we've done the basic check, now run the scripts
+ // should be done before the spell is actually executed
sScriptMgr->OnPlayerSpellCast(playerCaster, this, skipCheck);
+ // Let any pets know we've attacked something. As of 3.0.2 pets begin
+ // attacking their owner's target immediately
+ if (Pet* playerPet = playerCaster->GetPet())
+ {
+ if (playerPet->isAlive() && playerPet->isControlled() && (m_targets.GetTargetMask() & TARGET_FLAG_UNIT))
+ playerPet->AI()->OwnerAttacked(m_targets.GetObjectTarget()->ToUnit());
+ }
+ }
SetExecutedCurrently(true);
if (m_caster->GetTypeId() != TYPEID_PLAYER && m_targets.GetUnitTarget() && m_targets.GetUnitTarget() != m_caster)