diff options
author | MrSmite <bull@deadmines.cave> | 2014-08-10 03:56:39 -0400 |
---|---|---|
committer | MrSmite <bull@deadmines.cave> | 2014-08-10 04:51:46 -0400 |
commit | 5dcf11115045c8c848efac9c4c4451f5cc26d447 (patch) | |
tree | 48b1147adb1556e98dfb9e75a73707e30ce276ba /src | |
parent | 91053d557ca89c4b0c455366afae258835bd25f8 (diff) |
Fix pet spell cooldown being extended without successful cast
Closes #12560
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/CoreAI/PetAI.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp index 8032568434f..4bce9113082 100644 --- a/src/server/game/AI/CoreAI/PetAI.cpp +++ b/src/server/game/AI/CoreAI/PetAI.cpp @@ -246,8 +246,6 @@ void PetAI::UpdateAI(uint32 diff) me->SendUpdateToPlayer(owner->ToPlayer()); } - me->AddCreatureSpellCooldown(spell->m_spellInfo->Id); - spell->prepare(&targets); } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 1245ef71a4d..c81b3ebc6fe 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3420,7 +3420,14 @@ void Spell::SendSpellCooldown() { Player* _player = m_caster->ToPlayer(); if (!_player) + { + // Handle pet cooldowns here if needed instead of in PetAI to avoid hidden cooldown restarts + Creature* _creature = m_caster->ToCreature(); + if (_creature && _creature->IsPet()) + _creature->AddCreatureSpellCooldown(m_spellInfo->Id); + return; + } // mana/health/etc potions, disabled by client (until combat out as declarate) if (m_CastItem && (m_CastItem->IsPotion() || m_spellInfo->IsCooldownStartedOnEvent())) |