diff options
author | offl <11556157+offl@users.noreply.github.com> | 2021-11-01 18:10:09 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-03-21 00:18:17 +0100 |
commit | 3fbc9d796d2bb5553fd83c652d0e1539de9ec09e (patch) | |
tree | bbdd65af9ef1ce54e64e1e8e234a78769d217183 /src | |
parent | d013a8251f096755523fb5eaafa95fb191556926 (diff) |
Scripts/Misc: Migrate Operation Gnomeregan & Zalazane's Fall scripts to own files (#27163)
(cherry picked from commit d42c89aa04e58f74069ac1fdda94d7fbba1a7a52)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Events/events_script_loader.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Events/operation_gnomeregan.cpp | 76 | ||||
-rw-r--r-- | src/server/scripts/Events/zalazane_fall.cpp | 467 | ||||
-rw-r--r-- | src/server/scripts/Kalimdor/zone_durotar.cpp | 47 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 52 |
5 files changed, 565 insertions, 81 deletions
diff --git a/src/server/scripts/Events/events_script_loader.cpp b/src/server/scripts/Events/events_script_loader.cpp index ca530dbeef2..a6c1e6d2448 100644 --- a/src/server/scripts/Events/events_script_loader.cpp +++ b/src/server/scripts/Events/events_script_loader.cpp @@ -18,6 +18,8 @@ // This is where scripts' loading functions should be declared: void AddSC_event_childrens_week(); void AddSC_event_fireworks(); +void AddSC_event_operation_gnomeregan(); +void AddSC_event_zalazane_fall(); // The name of this function should match: // void Add${NameOfDirectory}Scripts() @@ -25,4 +27,6 @@ void AddEventsScripts() { AddSC_event_childrens_week(); AddSC_event_fireworks(); + AddSC_event_operation_gnomeregan(); + AddSC_event_zalazane_fall(); } diff --git a/src/server/scripts/Events/operation_gnomeregan.cpp b/src/server/scripts/Events/operation_gnomeregan.cpp new file mode 100644 index 00000000000..2dd0d611dda --- /dev/null +++ b/src/server/scripts/Events/operation_gnomeregan.cpp @@ -0,0 +1,76 @@ +/* + * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "ScriptMgr.h" +#include "SpellScript.h" +#include "Unit.h" + +enum BasicOrdersEmote +{ + SPELL_TEST_SALUTE = 73835, + SPELL_TEST_ROAR = 73836, + SPELL_TEST_CHEER = 73725, + SPELL_TEST_DANCE = 73837, + SPELL_TEST_STOP_DANCE = 73886 +}; + +/* 73725 - [DND] Test Cheer + 73835 - [DND] Test Salute + 73836 - [DND] Test Roar + 73837 - [DND] Test Dance + 73886 - [DND] Test Stop Dance */ +class spell_q25199_emote : public AuraScript +{ + PrepareAuraScript(spell_q25199_emote); + + void HandlePeriodic(AuraEffect const* /*aurEff*/) + { + Unit* target = GetTarget(); + + switch (GetId()) + { + case SPELL_TEST_SALUTE: + target->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); + break; + case SPELL_TEST_ROAR: + target->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); + break; + case SPELL_TEST_CHEER: + target->HandleEmoteCommand(EMOTE_ONESHOT_CHEER); + break; + case SPELL_TEST_DANCE: + target->SetEmoteState(EMOTE_STATE_DANCE); + break; + case SPELL_TEST_STOP_DANCE: + target->SetEmoteState(EMOTE_STATE_NONE); + break; + default: + return; + } + Remove(); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_q25199_emote::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + } +}; + +void AddSC_event_operation_gnomeregan() +{ + RegisterSpellScript(spell_q25199_emote); +} diff --git a/src/server/scripts/Events/zalazane_fall.cpp b/src/server/scripts/Events/zalazane_fall.cpp new file mode 100644 index 00000000000..342a426cfb4 --- /dev/null +++ b/src/server/scripts/Events/zalazane_fall.cpp @@ -0,0 +1,467 @@ +/* + * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "ScriptMgr.h" +#include "CreatureAIImpl.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "Player.h" +#include "ScriptedCreature.h" +#include "SpellInfo.h" +#include "SpellScript.h" +#include "TemporarySummon.h" +#include "Vehicle.h" + +enum Texts +{ + // Tiger Matriarch Credit + SAY_MATRIARCH_AGGRO = 0, + + // Troll Volunteer + SAY_VOLUNTEER_START = 0, + SAY_VOLUNTEER_END = 1, +}; + +enum Spells +{ + // Tiger Matriarch Credit + SPELL_SUMMON_MATRIARCH = 75187, + SPELL_NO_SUMMON_AURA = 75213, + SPELL_DETECT_INVIS = 75180, + SPELL_SUMMON_ZENTABRA_TRIGGER = 75212, + + // Tiger Matriarch + SPELL_POUNCE = 61184, + SPELL_FURIOUS_BITE = 75164, + SPELL_SUMMON_ZENTABRA = 75181, + SPELL_SPIRIT_OF_THE_TIGER_RIDER = 75166, + SPELL_EJECT_PASSENGERS = 50630, + + // Troll Volunteer + SPELL_VOLUNTEER_AURA = 75076, + SPELL_PETACT_AURA = 74071, + SPELL_QUEST_CREDIT = 75106, + SPELL_MOUNTING_CHECK = 75420, + SPELL_TURNIN = 73953, + SPELL_AOE_TURNIN = 75107, + + // Vol'jin War Drums + SPELL_MOTIVATE_1 = 75088, + SPELL_MOTIVATE_2 = 75086, +}; + +enum Creatures +{ + // Tiger Matriarch Credit + NPC_TIGER_VEHICLE = 40305, + + // Troll Volunteer + NPC_URUZIN = 40253, + NPC_VOLUNTEER_1 = 40264, + NPC_VOLUNTEER_2 = 40260, + + // Vol'jin War Drums + NPC_CITIZEN_1 = 40256, + NPC_CITIZEN_2 = 40257, +}; + +enum Events +{ + // Tiger Matriarch Credit + EVENT_CHECK_SUMMON_AURA = 1, + + // Tiger Matriarch + EVENT_POUNCE = 2, + EVENT_NOSUMMON = 3, +}; + +enum Points +{ + POINT_URUZIN = 4026400, +}; + +class npc_tiger_matriarch_credit : public CreatureScript +{ + public: + npc_tiger_matriarch_credit() : CreatureScript("npc_tiger_matriarch_credit") { } + + struct npc_tiger_matriarch_creditAI : public ScriptedAI + { + npc_tiger_matriarch_creditAI(Creature* creature) : ScriptedAI(creature) + { + SetCombatMovement(false); + events.ScheduleEvent(EVENT_CHECK_SUMMON_AURA, 2s); + } + + void UpdateAI(uint32 diff) override + { + events.Update(diff); + + if (events.ExecuteEvent() == EVENT_CHECK_SUMMON_AURA) + { + std::list<Creature*> tigers; + GetCreatureListWithEntryInGrid(tigers, me, NPC_TIGER_VEHICLE, 15.0f); + if (!tigers.empty()) + { + for (std::list<Creature*>::iterator itr = tigers.begin(); itr != tigers.end(); ++itr) + { + if (!(*itr)->IsSummon()) + continue; + + if (Unit* summoner = (*itr)->ToTempSummon()->GetSummonerUnit()) + if (!summoner->HasAura(SPELL_NO_SUMMON_AURA) && !summoner->HasAura(SPELL_SUMMON_ZENTABRA_TRIGGER) + && !summoner->IsInCombat()) + { + me->AddAura(SPELL_NO_SUMMON_AURA, summoner); + me->AddAura(SPELL_DETECT_INVIS, summoner); + summoner->CastSpell(summoner, SPELL_SUMMON_MATRIARCH, true); + Talk(SAY_MATRIARCH_AGGRO, summoner); + } + } + } + + events.ScheduleEvent(EVENT_CHECK_SUMMON_AURA, 5s); + } + } + + private: + EventMap events; + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_tiger_matriarch_creditAI(creature); + } +}; + +class npc_tiger_matriarch : public CreatureScript +{ + public: + npc_tiger_matriarch() : CreatureScript("npc_tiger_matriarch") { } + + struct npc_tiger_matriarchAI : public ScriptedAI + { + npc_tiger_matriarchAI(Creature* creature) : ScriptedAI(creature) + { + } + + void JustEngagedWith(Unit* /*target*/) override + { + _events.Reset(); + _events.ScheduleEvent(EVENT_POUNCE, 100ms); + _events.ScheduleEvent(EVENT_NOSUMMON, 50s); + } + + void IsSummonedBy(WorldObject* summonerWO) override + { + Player* summoner = summonerWO->ToPlayer(); + if (!summoner || !summoner->GetVehicle()) + return; + + _tigerGuid = summoner->GetVehicle()->GetBase()->GetGUID(); + if (Unit* tiger = ObjectAccessor::GetUnit(*me, _tigerGuid)) + { + AddThreat(tiger, 500000.0f); + DoCast(me, SPELL_FURIOUS_BITE); + } + } + + void KilledUnit(Unit* victim) override + { + if (victim->GetTypeId() != TYPEID_UNIT || !victim->IsSummon()) + return; + + if (Unit* vehSummoner = victim->ToTempSummon()->GetSummonerUnit()) + { + vehSummoner->RemoveAurasDueToSpell(SPELL_NO_SUMMON_AURA); + vehSummoner->RemoveAurasDueToSpell(SPELL_DETECT_INVIS); + vehSummoner->RemoveAurasDueToSpell(SPELL_SPIRIT_OF_THE_TIGER_RIDER); + vehSummoner->RemoveAurasDueToSpell(SPELL_SUMMON_ZENTABRA_TRIGGER); + } + me->DespawnOrUnsummon(); + } + + void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override + { + if (!attacker || !attacker->IsSummon()) + return; + + if (HealthBelowPct(20)) + { + damage = 0; + me->AddUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + if (Unit* vehSummoner = attacker->ToTempSummon()->GetSummonerUnit()) + { + vehSummoner->AddAura(SPELL_SUMMON_ZENTABRA_TRIGGER, vehSummoner); + vehSummoner->CastSpell(vehSummoner, SPELL_SUMMON_ZENTABRA, true); + attacker->CastSpell(attacker, SPELL_EJECT_PASSENGERS, true); + vehSummoner->RemoveAurasDueToSpell(SPELL_NO_SUMMON_AURA); + vehSummoner->RemoveAurasDueToSpell(SPELL_DETECT_INVIS); + vehSummoner->RemoveAurasDueToSpell(SPELL_SPIRIT_OF_THE_TIGER_RIDER); + vehSummoner->RemoveAurasDueToSpell(SPELL_SUMMON_ZENTABRA_TRIGGER); + } + + me->DespawnOrUnsummon(); + } + } + + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + if (!_tigerGuid) + return; + + _events.Update(diff); + + while (uint32 eventId = _events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_POUNCE: + DoCastVictim(SPELL_POUNCE); + _events.ScheduleEvent(EVENT_POUNCE, 30s); + break; + case EVENT_NOSUMMON: // Reapply SPELL_NO_SUMMON_AURA + if (Unit* tiger = ObjectAccessor::GetUnit(*me, _tigerGuid)) + { + if (tiger->IsSummon()) + if (Unit* vehSummoner = tiger->ToTempSummon()->GetSummonerUnit()) + me->AddAura(SPELL_NO_SUMMON_AURA, vehSummoner); + } + _events.ScheduleEvent(EVENT_NOSUMMON, 50s); + break; + default: + break; + } + } + + DoMeleeAttackIfReady(); + } + + private: + EventMap _events; + ObjectGuid _tigerGuid; + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_tiger_matriarchAI(creature); + } +}; + +// These models was found in sniff. +/// @todo generalize these models with race from dbc +uint32 const trollmodel[] = +{11665, 11734, 11750, 12037, 12038, 12042, 12049, 12849, 13529, 14759, 15570, 15701, +15702, 1882, 1897, 1976, 2025, 27286, 2734, 2735, 4084, 4085, 4087, 4089, 4231, 4357, +4358, 4360, 4361, 4362, 4363, 4370, 4532, 4537, 4540, 4610, 6839, 7037, 9767, 9768}; + +class npc_troll_volunteer : public CreatureScript +{ + public: + npc_troll_volunteer() : CreatureScript("npc_troll_volunteer") { } + + struct npc_troll_volunteerAI : public ScriptedAI + { + npc_troll_volunteerAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + _mountModel = 0; + } + + void Initialize() + { + _complete = false; + } + + void InitializeAI() override + { + if (me->isDead() || !me->GetOwner()) + return; + + Reset(); + + switch (urand(0, 3)) + { + case 0: + _mountModel = 6471; + break; + case 1: + _mountModel = 6473; + break; + case 2: + _mountModel = 6469; + break; + default: + _mountModel = 6472; + break; + } + me->SetDisplayId(trollmodel[urand(0, 39)]); + if (Player* player = me->GetOwner()->ToPlayer()) + me->GetMotionMaster()->MoveFollow(player, 5.0f, float(rand_norm() + 1.0f) * float(M_PI) / 3.0f * 4.0f); + } + + void Reset() override + { + Initialize(); + me->AddAura(SPELL_VOLUNTEER_AURA, me); + me->AddAura(SPELL_MOUNTING_CHECK, me); + DoCast(me, SPELL_PETACT_AURA); + me->SetReactState(REACT_PASSIVE); + Talk(SAY_VOLUNTEER_START); + } + + // This is needed for mount check aura to know what mountmodel the npc got stored + uint32 GetMountId() + { + return _mountModel; + } + + void MovementInform(uint32 type, uint32 id) override + { + if (type != POINT_MOTION_TYPE) + return; + if (id == POINT_URUZIN) + me->DespawnOrUnsummon(); + } + + void SpellHit(WorldObject* caster, SpellInfo const* spellInfo) override + { + if (spellInfo->Id == SPELL_AOE_TURNIN && caster->GetEntry() == NPC_URUZIN && !_complete) + { + _complete = true; // Preventing from giving credit twice + DoCast(me, SPELL_TURNIN); + DoCast(me, SPELL_QUEST_CREDIT); + me->RemoveAurasDueToSpell(SPELL_MOUNTING_CHECK); + me->Dismount(); + Talk(SAY_VOLUNTEER_END); + me->GetMotionMaster()->MovePoint(POINT_URUZIN, caster->GetPositionX(), caster->GetPositionY(), caster->GetPositionZ()); + } + } + + private: + uint32 _mountModel; + bool _complete; + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_troll_volunteerAI(creature); + } +}; + +typedef npc_troll_volunteer::npc_troll_volunteerAI VolunteerAI; + +// 75420 - Mounting Check +class spell_mount_check : public SpellScriptLoader +{ + public: + spell_mount_check() : SpellScriptLoader("spell_mount_check") { } + + class spell_mount_check_AuraScript : public AuraScript + { + PrepareAuraScript(spell_mount_check_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MOUNTING_CHECK }); + } + + void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) + { + Unit* target = GetTarget(); + Unit* owner = target->GetOwner(); + + if (!owner) + return; + + if (owner->IsMounted() && !target->IsMounted()) + { + if (VolunteerAI* volunteerAI = CAST_AI(VolunteerAI, target->GetAI())) + target->Mount(volunteerAI->GetMountId()); + } + else if (!owner->IsMounted() && target->IsMounted()) + target->Dismount(); + + target->SetSpeedRate(MOVE_RUN, owner->GetSpeedRate(MOVE_RUN)); + target->SetSpeedRate(MOVE_WALK, owner->GetSpeedRate(MOVE_WALK)); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_mount_check_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + } + }; + + AuraScript* GetAuraScript() const override + { + return new spell_mount_check_AuraScript(); + } +}; + +// 75102 - Vol'jin's War Drums +class spell_voljin_war_drums : public SpellScriptLoader +{ + public: + spell_voljin_war_drums() : SpellScriptLoader("spell_voljin_war_drums") { } + + class spell_voljin_war_drums_SpellScript : public SpellScript + { + PrepareSpellScript(spell_voljin_war_drums_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MOTIVATE_1, SPELL_MOTIVATE_2 }); + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + if (Unit* target = GetHitUnit()) + { + uint32 motivate = 0; + if (target->GetEntry() == NPC_CITIZEN_1) + motivate = SPELL_MOTIVATE_1; + else if (target->GetEntry() == NPC_CITIZEN_2) + motivate = SPELL_MOTIVATE_2; + if (motivate) + caster->CastSpell(target, motivate, false); + } + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_voljin_war_drums_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_voljin_war_drums_SpellScript(); + } +}; + +void AddSC_event_zalazane_fall() +{ + new npc_tiger_matriarch_credit(); + new npc_tiger_matriarch(); + new npc_troll_volunteer(); + new spell_mount_check(); + new spell_voljin_war_drums(); +} diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp index 9b4e1e43687..53125ed1a27 100644 --- a/src/server/scripts/Kalimdor/zone_durotar.cpp +++ b/src/server/scripts/Kalimdor/zone_durotar.cpp @@ -15,11 +15,11 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" #include "CreatureAIImpl.h" #include "GameObject.h" #include "MotionMaster.h" #include "Player.h" +#include "ScriptMgr.h" #include "ScriptedCreature.h" #include "SpellInfo.h" #include "SpellScript.h" @@ -125,41 +125,30 @@ enum VoodooSpells }; // 17009 - Voodoo -class spell_voodoo : public SpellScriptLoader +class spell_voodoo : public SpellScript { - public: - spell_voodoo() : SpellScriptLoader("spell_voodoo") { } - - class spell_voodoo_SpellScript : public SpellScript - { - PrepareSpellScript(spell_voodoo_SpellScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_BREW, SPELL_GHOSTLY, SPELL_HEX1, SPELL_HEX2, SPELL_HEX3, SPELL_GROW, SPELL_LAUNCH }); - } + PrepareSpellScript(spell_voodoo); - void HandleDummy(SpellEffIndex /*effIndex*/) - { - uint32 spellid = RAND(SPELL_BREW, SPELL_GHOSTLY, RAND(SPELL_HEX1, SPELL_HEX2, SPELL_HEX3), SPELL_GROW, SPELL_LAUNCH); - if (Unit* target = GetHitUnit()) - GetCaster()->CastSpell(target, spellid, false); - } + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_BREW, SPELL_GHOSTLY, SPELL_HEX1, SPELL_HEX2, SPELL_HEX3, SPELL_GROW, SPELL_LAUNCH }); + } - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_voodoo_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); - } - }; + void HandleDummy(SpellEffIndex /*effIndex*/) + { + uint32 spellid = RAND(SPELL_BREW, SPELL_GHOSTLY, RAND(SPELL_HEX1, SPELL_HEX2, SPELL_HEX3), SPELL_GROW, SPELL_LAUNCH); + if (Unit* target = GetHitUnit()) + GetCaster()->CastSpell(target, spellid, false); + } - SpellScript* GetSpellScript() const override - { - return new spell_voodoo_SpellScript(); - } + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_voodoo::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } }; void AddSC_durotar() { new npc_lazy_peon(); - new spell_voodoo(); + RegisterSpellScript(spell_voodoo); } diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index fb79e01f604..7883c6ef9f0 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1780,57 +1780,6 @@ class spell_q12308_escape_from_silverbrook_summon_worgen : public SpellScript } }; -enum BasicOrdersEmote -{ - SPELL_TEST_SALUTE = 73835, - SPELL_TEST_ROAR = 73836, - SPELL_TEST_CHEER = 73725, - SPELL_TEST_DANCE = 73837, - SPELL_TEST_STOP_DANCE = 73886 -}; - -/* 73725 - [DND] Test Cheer - 73835 - [DND] Test Salute - 73836 - [DND] Test Roar - 73837 - [DND] Test Dance - 73886 - [DND] Test Stop Dance */ -class spell_q25199_emote : public AuraScript -{ - PrepareAuraScript(spell_q25199_emote); - - void HandlePeriodic(AuraEffect const* /*aurEff*/) - { - Unit* target = GetTarget(); - - switch (GetSpellInfo()->Id) - { - case SPELL_TEST_SALUTE: - target->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); - break; - case SPELL_TEST_ROAR: - target->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); - break; - case SPELL_TEST_CHEER: - target->HandleEmoteCommand(EMOTE_ONESHOT_CHEER); - break; - case SPELL_TEST_DANCE: - target->SetEmoteState(EMOTE_STATE_DANCE); - break; - case SPELL_TEST_STOP_DANCE: - target->SetEmoteState(EMOTE_STATE_NONE); - break; - default: - return; - } - Remove(); - } - - void Register() override - { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_q25199_emote::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); - } -}; - enum DeathComesFromOnHigh { SPELL_FORGE_CREDIT = 51974, @@ -2547,7 +2496,6 @@ void AddSC_quest_spell_scripts() RegisterSpellScript(spell_q11896_weakness_to_lightning_46444); RegisterSpellScript(spell_q12308_escape_from_silverbrook_summon_worgen); RegisterSpellScript(spell_q12308_escape_from_silverbrook); - RegisterSpellScript(spell_q25199_emote); RegisterSpellScript(spell_q12641_death_comes_from_on_high); RegisterSpellScript(spell_q12641_recall_eye_of_acherus); RegisterSpellScript(spell_q12619_emblazon_runeblade); |