aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGustavo <sirikfoll@hotmail.com>2016-08-23 13:21:03 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-18 14:40:14 +0100
commit7e57e9a91ba98435ed87b96964eae57e8b10455d (patch)
treec8b76a27bcd1bfcd03654ea9cc4c4b9f185548bf /src
parent2574667854b17c20a77e61136ac13d7c0ca1ce15 (diff)
Improve scripts for quests Breakfast Of Champions and A Bear of an Appetite (#17780)
Properly despawn the related GameObjects after use of the quest item, avoiding multiple use and summon (cherry picked from commit 5661b4686bf7a1d2147d9fdb47115883a4d11ecf) Rename 2016_08_99_99_world.sql to 2016_08_23_03_world.sql (cherry picked from commit 831975fa3426bdec9f9c0647d690e6c9664d5f72)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index eb4a5ecf24d..b76b51a8fbc 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -1127,6 +1127,75 @@ class spell_q9452_cast_net: public SpellScriptLoader
}
};
+enum PoundDrumSpells
+{
+ SPELL_SUMMON_DEEP_JORMUNGAR = 66510,
+ SPELL_STORMFORGED_MOLE_MACHINE = 66492
+};
+
+class spell_q14076_14092_pound_drum : public SpellScriptLoader
+{
+ public:
+ spell_q14076_14092_pound_drum() : SpellScriptLoader("spell_q14076_14092_pound_drum") { }
+
+ class spell_q14076_14092_pound_drum_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q14076_14092_pound_drum_SpellScript);
+
+ void HandleSummon()
+ {
+ Unit* caster = GetCaster();
+
+ if (roll_chance_i(80))
+ caster->CastSpell(caster, SPELL_SUMMON_DEEP_JORMUNGAR, true);
+ else
+ caster->CastSpell(caster, SPELL_STORMFORGED_MOLE_MACHINE, true);
+ }
+
+ void HandleActiveObject(SpellEffIndex /*effIndex*/)
+ {
+ GetHitGObj()->SetLootState(GO_JUST_DEACTIVATED);
+ }
+
+ void Register() override
+ {
+ OnCast += SpellCastFn(spell_q14076_14092_pound_drum_SpellScript::HandleSummon);
+ OnEffectHitTarget += SpellEffectFn(spell_q14076_14092_pound_drum_SpellScript::HandleActiveObject, EFFECT_0, SPELL_EFFECT_ACTIVATE_OBJECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const override
+ {
+ return new spell_q14076_14092_pound_drum_SpellScript();
+ }
+};
+
+class spell_q12279_cast_net : public SpellScriptLoader
+{
+ public:
+ spell_q12279_cast_net() : SpellScriptLoader("spell_q12279_cast_net") { }
+
+ class spell_q12279_cast_net_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q12279_cast_net_SpellScript);
+
+ void HandleActiveObject(SpellEffIndex /*effIndex*/)
+ {
+ GetHitGObj()->SetLootState(GO_JUST_DEACTIVATED);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_q12279_cast_net_SpellScript::HandleActiveObject, EFFECT_1, SPELL_EFFECT_ACTIVATE_OBJECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const override
+ {
+ return new spell_q12279_cast_net_SpellScript();
+ }
+};
+
enum HodirsHelm
{
SAY_1 = 1,
@@ -2569,6 +2638,8 @@ void AddSC_quest_spell_scripts()
new spell_q13280_13283_plant_battle_standard();
new spell_q14112_14145_chum_the_water();
new spell_q9452_cast_net();
+ new spell_q12279_cast_net();
+ new spell_q14076_14092_pound_drum();
new spell_q12987_read_pronouncement();
new spell_q12277_wintergarde_mine_explosion();
new spell_q12066_bunny_kill_credit();