diff options
author | DDuarte <dnpd.dd@gmail.com> | 2015-07-12 15:01:16 +0100 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2015-07-12 15:01:16 +0100 |
commit | 06ad2802137d1afb6926846b86dd6e17ed0b5e4b (patch) | |
tree | a87d6630632f68b6779642c791b7362128a03531 /src | |
parent | 9aa91061312ed50c52f868bfe19a7321a4e29b90 (diff) |
Scripts/Spells: Cherry-pick multiple commits related to Midsummer
Merge pull request #14776 from sirikfoll/SpellMidsummer
Core/Spells Add support for quest Torch Tossing/More Torch Tossing
(cherry picked from commit 8197467c8787397ff58cd77e8a03a22b8654cac0)
by sirikfoll
---
Rename 2015_08_29_00_world.sql to 2015_06_23_01_world.sql
(cherry picked from commit 352703e89b5b707f541340c3f1ee6bcac0801278)
by MitchesD
---
Scripts/Spells: fix codestyle
thanks @whoami
(cherry picked from commit 0cba5558cf1149e2dc04a50858b00652ed3e31af)
by MitchesD
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_holiday.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp index e6e97a9d04a..44db7605296 100644 --- a/src/server/scripts/Spells/spell_holiday.cpp +++ b/src/server/scripts/Spells/spell_holiday.cpp @@ -824,6 +824,60 @@ class spell_brewfest_barker_bunny : public SpellScriptLoader } }; +enum TorchSpells +{ + SPELL_TORCH_TOSSING_TRAINING = 45716, + SPELL_TORCH_TOSSING_PRACTICE = 46630, + SPELL_TORCH_TOSSING_TRAINING_SUCCESS_ALLIANCE = 45719, + SPELL_TORCH_TOSSING_TRAINING_SUCCESS_HORDE = 46651, + SPELL_BRAZIERS_HIT = 45724 +}; + +// 45724 - Braziers Hit! +class spell_midsummer_braziers_hit : public SpellScriptLoader +{ + public: + spell_midsummer_braziers_hit() : SpellScriptLoader("spell_midsummer_braziers_hit") { } + + class spell_midsummer_braziers_hit_AuraScript : public AuraScript + { + PrepareAuraScript(spell_midsummer_braziers_hit_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_TORCH_TOSSING_TRAINING) || !sSpellMgr->GetSpellInfo(SPELL_TORCH_TOSSING_PRACTICE)) + return false; + return true; + } + + void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Player* player = GetTarget()->ToPlayer(); + if (!player) + return; + + if ((player->HasAura(SPELL_TORCH_TOSSING_TRAINING) && GetStackAmount() == 8) || (player->HasAura(SPELL_TORCH_TOSSING_PRACTICE) && GetStackAmount() == 20)) + { + if (player->GetTeam() == ALLIANCE) + player->CastSpell(player, SPELL_TORCH_TOSSING_TRAINING_SUCCESS_ALLIANCE, true); + else if (player->GetTeam() == HORDE) + player->CastSpell(player, SPELL_TORCH_TOSSING_TRAINING_SUCCESS_HORDE, true); + Remove(); + } + } + + void Register() override + { + AfterEffectApply += AuraEffectApplyFn(spell_midsummer_braziers_hit_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AuraEffectHandleModes(AURA_EFFECT_HANDLE_REAPPLY)); + } + }; + + AuraScript* GetAuraScript() const override + { + return new spell_midsummer_braziers_hit_AuraScript(); + } +}; + void AddSC_holiday_spell_scripts() { // Love is in the Air @@ -850,4 +904,6 @@ void AddSC_holiday_spell_scripts() new spell_brewfest_relay_race_intro_force_player_to_throw(); new spell_brewfest_dismount_ram(); new spell_brewfest_barker_bunny(); + // Midsummer Fire Festival + new spell_midsummer_braziers_hit(); } |