aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorTeleqraph <nyrdeveloper@gmail.com>2023-04-23 16:49:01 +0200
committerGitHub <noreply@github.com>2023-04-23 16:49:01 +0200
commitc7ff9a9083fdb5aab1fe54b16ffd84851f99424d (patch)
tree992cbad112412a88c282fb3bb70367c405bfd42c /src/server/game
parent26950594f6b90b8de81d6043cbe78759c7185e28 (diff)
Scripts/Spells: Implement Summon Sayaad (#28907)
Co-authored-by: ModoX <moardox@gmail.com>
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Entities/Creature/TemporarySummon.h4
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp2
-rw-r--r--src/server/game/Entities/Pet/PetDefines.h1
-rw-r--r--src/server/game/Spells/Spell.cpp2
4 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Entities/Creature/TemporarySummon.h b/src/server/game/Entities/Creature/TemporarySummon.h
index 27dfea28506..4b0778ff796 100644
--- a/src/server/game/Entities/Creature/TemporarySummon.h
+++ b/src/server/game/Entities/Creature/TemporarySummon.h
@@ -29,6 +29,7 @@ enum PetEntry
PET_SUCCUBUS = 1863,
PET_DOOMGUARD = 18540,
PET_FELGUARD = 30146,
+ PET_INCUBUS = 184600,
// Death Knight pets
PET_GHOUL = 26125,
@@ -94,9 +95,10 @@ class TC_GAME_API Minion : public TempSummon
bool IsPetImp() const { return GetEntry() == PET_IMP; }
bool IsPetFelhunter() const { return GetEntry() == PET_FEL_HUNTER; }
bool IsPetVoidwalker() const { return GetEntry() == PET_VOID_WALKER; }
- bool IsPetSuccubus() const { return GetEntry() == PET_SUCCUBUS; }
+ bool IsPetSayaad() const { return GetEntry() == PET_SUCCUBUS || GetEntry() == PET_INCUBUS; }
bool IsPetDoomguard() const { return GetEntry() == PET_DOOMGUARD; }
bool IsPetFelguard() const { return GetEntry() == PET_FELGUARD; }
+ bool IsWarlockPet() const { return IsPetImp() || IsPetFelhunter() || IsPetVoidwalker() || IsPetSayaad() || IsPetDoomguard() || IsPetFelguard(); }
// Death Knight pets
bool IsPetGhoul() const { return GetEntry() == PET_GHOUL; } // Ghoul may be guardian or pet
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 10283386cc6..e95740ea408 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -931,7 +931,7 @@ bool Guardian::InitStatsForLevel(uint8 petlevel)
SetPowerType(POWER_ENERGY);
SetFullPower(POWER_ENERGY);
}
- else if (IsPetImp() || IsPetFelhunter() || IsPetVoidwalker() || IsPetSuccubus() || IsPetDoomguard() || IsPetFelguard()) // Warlock pets have energy (since 5.x)
+ else if (IsWarlockPet()) // Warlock pets have energy (since 5.x)
SetPowerType(POWER_ENERGY);
else
SetPowerType(POWER_MANA);
diff --git a/src/server/game/Entities/Pet/PetDefines.h b/src/server/game/Entities/Pet/PetDefines.h
index 0b1048e79d0..607efbf59df 100644
--- a/src/server/game/Entities/Pet/PetDefines.h
+++ b/src/server/game/Entities/Pet/PetDefines.h
@@ -111,6 +111,7 @@ enum class PetTameResult : uint8
};
constexpr uint32 CALL_PET_SPELL_ID = 883;
+constexpr uint32 PET_SUMMONING_DISORIENTATION = 32752;
class PetStable
{
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index f13171af2df..77d5cf5e449 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -6174,7 +6174,7 @@ SpellCastResult Spell::CheckCast(bool strict, int32* param1 /*= nullptr*/, int32
{
if (strict) //starting cast, trigger pet stun (cast by pet so it doesn't attack player)
if (Pet* pet = unitCaster->ToPlayer()->GetPet())
- pet->CastSpell(pet, 32752, CastSpellExtraArgs(TRIGGERED_FULL_MASK)
+ pet->CastSpell(pet, PET_SUMMONING_DISORIENTATION, CastSpellExtraArgs(TRIGGERED_FULL_MASK)
.SetOriginalCaster(pet->GetGUID())
.SetTriggeringSpell(this));
}