aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2021-04-03 00:27:59 +0300
committerGitHub <noreply@github.com>2021-04-03 00:27:59 +0300
commit293ae05d31be71276cb093f66945652bbd5965a1 (patch)
tree6e44125d437ef57ad93c329c90781cd9bf1d5341 /src
parent7fd6733dac26c1ca76bb93ed1561172195ad2daf (diff)
Scripts/Quest: Rework 'Basic Orders' (25199) (#26294)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellMgr.cpp19
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp47
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();