aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-03-23 23:22:55 +0200
committerShauren <shauren.trinity@gmail.com>2022-03-26 16:08:12 +0100
commita36e815ac666143f8cb765d63845d9bb7cebd5af (patch)
tree463d9d6e5826e0d96893a7ec28913655d09e5ba5 /src
parent3bf6dcc6756161adee8b2a37df26620d2290e447 (diff)
Scripts/Quest: Update 'Ample Inspiration' (12828) (#27885)
(cherry picked from commit 45f30ceee27001015e42cafdd9081144910457d4)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index db8e35eecdb..febb0674067 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -1442,6 +1442,81 @@ class spell_bear_flank_fail : public AuraScript
}
};
+/*######
+## Quest 12828: Ample Inspiration
+######*/
+
+enum AmpleInspiration
+{
+ SPELL_QUIET_SUICIDE = 3617,
+ SPELL_SUMMON_MAIN_MAMMOTH_MEAT = 57444,
+ SPELL_MAMMOTH_SUMMON_OBJECT_1 = 54627,
+ SPELL_MAMMOTH_SUMMON_OBJECT_2 = 54628,
+ SPELL_MAMMOTH_SUMMON_OBJECT_3 = 54623,
+
+ ITEM_EXPLOSIVE_DEVICE = 40686
+};
+
+// 54581 - Mammoth Explosion Spell Spawner
+class spell_storm_peaks_mammoth_explosion_master : public SpellScript
+{
+ PrepareSpellScript(spell_storm_peaks_mammoth_explosion_master);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
+ {
+ SPELL_QUIET_SUICIDE,
+ SPELL_SUMMON_MAIN_MAMMOTH_MEAT,
+ SPELL_MAMMOTH_SUMMON_OBJECT_1,
+ SPELL_MAMMOTH_SUMMON_OBJECT_2,
+ SPELL_MAMMOTH_SUMMON_OBJECT_3
+ });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ caster->CastSpell(caster, SPELL_QUIET_SUICIDE);
+ caster->CastSpell(caster, SPELL_SUMMON_MAIN_MAMMOTH_MEAT);
+ caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_1);
+ caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_1);
+ caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_1);
+ caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_2);
+ caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_2);
+ caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_2);
+ caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_3);
+ caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_3);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_storm_peaks_mammoth_explosion_master::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
+// 54892 - Unstable Explosive Detonation
+class spell_storm_peaks_unstable_explosive_detonation : public SpellScript
+{
+ PrepareSpellScript(spell_storm_peaks_unstable_explosive_detonation);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return sObjectMgr->GetItemTemplate(ITEM_EXPLOSIVE_DEVICE);
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (Player* caster = GetCaster()->ToPlayer())
+ caster->DestroyItemCount(ITEM_EXPLOSIVE_DEVICE, 1, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_storm_peaks_unstable_explosive_detonation::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_storm_peaks()
{
new npc_brunnhildar_prisoner();
@@ -1468,4 +1543,6 @@ void AddSC_storm_peaks()
RegisterSpellScript(spell_read_pronouncement);
RegisterSpellScript(spell_bear_flank_master);
RegisterSpellScript(spell_bear_flank_fail);
+ RegisterSpellScript(spell_storm_peaks_mammoth_explosion_master);
+ RegisterSpellScript(spell_storm_peaks_unstable_explosive_detonation);
}