diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 19 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 47 |
2 files changed, 66 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index b9188c17662..8255495e497 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -3536,6 +3536,25 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_7_YARDS); }); + // In sniff caster hits multiple targets + ApplySpellFix({ + 73725, // [DND] Test Cheer + 73835, // [DND] Test Salute + 73836 // [DND] Test Roar + }, [](SpellInfo* spellInfo) + { + spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50_YARDS); // 50yd + }); + + // In sniff caster hits multiple targets + ApplySpellFix({ + 73837, // [DND] Test Dance + 73886 // [DND] Test Stop Dance + }, [](SpellInfo* spellInfo) + { + spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_150_YARDS); // 150yd + }); + // Master Shapeshifter: missing stance data for forms other than bear - bear version has correct data // To prevent aura staying on target after talent unlearned ApplySpellFix({ 48420 }, [](SpellInfo* spellInfo) diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index ea2808ca930..86b0acba785 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -2300,6 +2300,52 @@ class spell_q12308_escape_from_silverbrook_summon_worgen : public SpellScriptLoa } }; +enum BasicOrdersEmote +{ + SPELL_TEST_SALUTE = 73835, + SPELL_TEST_ROAR = 73836, + SPELL_TEST_CHEER = 73725, + SPELL_TEST_DANCE = 73837, + SPELL_TEST_STOP_DANCE = 73886 +}; + +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->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE); + break; + case SPELL_TEST_STOP_DANCE: + target->SetUInt32Value(UNIT_NPC_EMOTESTATE, 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, @@ -2968,6 +3014,7 @@ void AddSC_quest_spell_scripts() RegisterSpellScript(spell_q11896_weakness_to_lightning_46444); new spell_q12308_escape_from_silverbrook_summon_worgen(); new spell_q12308_escape_from_silverbrook(); + RegisterSpellScript(spell_q25199_emote); new spell_q12641_death_comes_from_on_high(); new spell_q12641_recall_eye_of_acherus(); new spell_q12619_emblazon_runeblade(); |