From b7b882367e85fd7d49d1d40f442d86bb83b75c19 Mon Sep 17 00:00:00 2001 From: Synful-Syn Date: Mon, 15 Aug 2022 02:35:07 -0400 Subject: [PATCH] fix(Core/Mage) Water Elemental wrongly ressurected at Spirit Healer (#12684) --- src/server/game/Entities/Player/Player.cpp | 27 ++++++++++++++-------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e6528091c..2aa7b694c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -13895,20 +13895,27 @@ void Player::ResummonPetTemporaryUnSummonedIfAny() bool Player::CanResummonPet(uint32 spellid) { - if (getClass() == CLASS_DEATH_KNIGHT) + switch (getClass()) { - if (CanSeeDKPet()) + case CLASS_DEATH_KNIGHT: + if (CanSeeDKPet()) + return true; + else if (spellid == 52150) //Raise Dead + return false; + break; + case CLASS_MAGE: + if (HasSpell(31687) && HasAura(70937)) //Has [Summon Water Elemental] spell and [Glyph of Eternal Water]. + return true; + break; + case CLASS_HUNTER: + case CLASS_WARLOCK: return true; - else if (spellid == 52150) - return false; + break; + default: + break; } - else if (getClass() == CLASS_HUNTER || getClass() == CLASS_MAGE || getClass() == CLASS_WARLOCK) - return true; - if (!HasSpell(spellid)) - return false; - - return true; + return HasSpell(spellid); } bool Player::CanSeeSpellClickOn(Creature const* c) const