From b48309484061ad520177491ee100444b31297ad2 Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Sun, 23 May 2021 04:03:18 +0200 Subject: [PATCH] fix(Script/Creature): Script warlock imp (#5960) * fix(Core/Creature): Script warlock imp * creature * Update pet_warlock.cpp --- .../rev_1621466398169598700.sql | 3 ++ src/server/scripts/Pet/CMakeLists.txt | 1 + src/server/scripts/Pet/pet_warlock.cpp | 43 +++++++++++++++++++ src/server/scripts/ScriptLoader.cpp | 2 + 4 files changed, 49 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1621466398169598700.sql create mode 100644 src/server/scripts/Pet/pet_warlock.cpp diff --git a/data/sql/updates/pending_db_world/rev_1621466398169598700.sql b/data/sql/updates/pending_db_world/rev_1621466398169598700.sql new file mode 100644 index 000000000..271675c47 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1621466398169598700.sql @@ -0,0 +1,3 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1621466398169598700'); + +UPDATE `creature_template` SET `ScriptName` = 'npc_pet_warlock_imp' WHERE `entry` = 416; diff --git a/src/server/scripts/Pet/CMakeLists.txt b/src/server/scripts/Pet/CMakeLists.txt index f63f1a586..f68ace2c8 100644 --- a/src/server/scripts/Pet/CMakeLists.txt +++ b/src/server/scripts/Pet/CMakeLists.txt @@ -16,6 +16,7 @@ set(scripts_STAT_SRCS ${AC_SCRIPTS_DIR}/Pet/pet_mage.cpp ${AC_SCRIPTS_DIR}/Pet/pet_priest.cpp ${AC_SCRIPTS_DIR}/Pet/pet_shaman.cpp + ${AC_SCRIPTS_DIR}/Pet/pet_warlock.cpp ) AC_ADD_SCRIPT_LOADER("Pet" "ScriptLoader.h") diff --git a/src/server/scripts/Pet/pet_warlock.cpp b/src/server/scripts/Pet/pet_warlock.cpp new file mode 100644 index 000000000..e49dc57cc --- /dev/null +++ b/src/server/scripts/Pet/pet_warlock.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. + */ + +/* + * Ordered alphabetically using scriptname. + * Scriptnames of files in this file should be prefixed with "npc_pet_warlock_". + */ + +#include "ScriptedCreature.h" +#include "ScriptMgr.h" + +enum WarlockSpells +{ + SPELL_WARLOCK_PHASE_SHIFT = 4511, // Imp spell +}; + +class npc_pet_warlock_imp : public CreatureScript +{ +public: + npc_pet_warlock_imp() : CreatureScript("npc_pet_warlock_imp") { } + + struct npc_pet_warlock_impAI : public ScriptedAI + { + npc_pet_warlock_impAI(Creature* creature) : ScriptedAI(creature) { } + + void EnterCombat(Unit* /*who*/) override + { + me->RemoveAurasDueToSpell(SPELL_WARLOCK_PHASE_SHIFT); + } + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_pet_warlock_impAI(creature); + } +}; + + +void AddSC_warlock_pet_scripts() +{ + new npc_pet_warlock_imp(); +} diff --git a/src/server/scripts/ScriptLoader.cpp b/src/server/scripts/ScriptLoader.cpp index fefd53245..5f3e3fc31 100644 --- a/src/server/scripts/ScriptLoader.cpp +++ b/src/server/scripts/ScriptLoader.cpp @@ -565,6 +565,7 @@ void AddSC_hunter_pet_scripts(); void AddSC_mage_pet_scripts(); void AddSC_priest_pet_scripts(); void AddSC_shaman_pet_scripts(); +void AddSC_warlock_pet_scripts(); // battlegrounds @@ -1171,6 +1172,7 @@ void AddPetScripts() AddSC_mage_pet_scripts(); AddSC_priest_pet_scripts(); AddSC_shaman_pet_scripts(); + AddSC_warlock_pet_scripts(); #endif }