diff options
| author | SnapperRy <snapperryen@gmail.com> | 2016-08-23 13:36:57 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-23 13:36:57 +0200 | 
| commit | 894378f86728f54a604f6808b6c34e4f498ddd0c (patch) | |
| tree | 0b8e97118b6322ca7e56f15e319a8d2b751fc838 /src | |
| parent | 9985e6380086382c3e406447d8c9b0d416c5d606 (diff) | |
Event/Brewfest: implement relay race (#17603)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Spells/spell_holiday.cpp | 37 | 
1 files changed, 36 insertions, 1 deletions
diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp index bd36e3cb765..a7b58737374 100644 --- a/src/server/scripts/Spells/spell_holiday.cpp +++ b/src/server/scripts/Spells/spell_holiday.cpp @@ -846,6 +846,7 @@ enum RamBlaBla  {      SPELL_GIDDYUP                           = 42924,      SPELL_RENTAL_RACING_RAM                 = 43883, +    SPELL_SWIFT_WORK_RAM                    = 43880,      SPELL_RENTAL_RACING_RAM_AURA            = 42146,      SPELL_RAM_LEVEL_NEUTRAL                 = 43310,      SPELL_RAM_TROT                          = 42992, @@ -853,6 +854,7 @@ enum RamBlaBla      SPELL_RAM_GALLOP                        = 42994,      SPELL_RAM_FATIGUE                       = 43052,      SPELL_EXHAUSTED_RAM                     = 43332, +    SPELL_RELAY_RACE_TURN_IN                = 44501,      // Quest      SPELL_BREWFEST_QUEST_SPEED_BUNNY_GREEN  = 43345, @@ -873,7 +875,7 @@ class spell_brewfest_giddyup : public SpellScriptLoader              void OnChange(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)              {                  Unit* target = GetTarget(); -                if (!target->HasAura(SPELL_RENTAL_RACING_RAM)) +                if (!target->HasAura(SPELL_RENTAL_RACING_RAM) && !target->HasAura(SPELL_SWIFT_WORK_RAM))                  {                      target->RemoveAura(GetId());                      return; @@ -1110,6 +1112,38 @@ class spell_brewfest_relay_race_intro_force_player_to_throw : public SpellScript          }  }; +class spell_brewfest_relay_race_turn_in : public SpellScriptLoader +{ +public: +    spell_brewfest_relay_race_turn_in() : SpellScriptLoader("spell_brewfest_relay_race_turn_in") { } + +    class spell_brewfest_relay_race_turn_in_SpellScript : public SpellScript +    { +        PrepareSpellScript(spell_brewfest_relay_race_turn_in_SpellScript); + +        void HandleDummy(SpellEffIndex effIndex) +        { +            PreventHitDefaultEffect(effIndex); + +            if (Aura* aura = GetHitUnit()->GetAura(SPELL_SWIFT_WORK_RAM)) +            { +                aura->SetDuration(aura->GetDuration() + 30 * IN_MILLISECONDS); +                GetCaster()->CastSpell(GetHitUnit(), SPELL_RELAY_RACE_TURN_IN, TRIGGERED_FULL_MASK); +            } +        } + +        void Register() override +        { +            OnEffectHitTarget += SpellEffectFn(spell_brewfest_relay_race_turn_in_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); +        } +    }; + +    SpellScript* GetSpellScript() const override +    { +        return new spell_brewfest_relay_race_turn_in_SpellScript(); +    } +}; +  // 43876 - Dismount Ram  class spell_brewfest_dismount_ram : public SpellScriptLoader  { @@ -1382,6 +1416,7 @@ void AddSC_holiday_spell_scripts()      new spell_brewfest_apple_trap();      new spell_brewfest_exhausted_ram();      new spell_brewfest_relay_race_intro_force_player_to_throw(); +    new spell_brewfest_relay_race_turn_in();      new spell_brewfest_dismount_ram();      new spell_brewfest_barker_bunny();      // Midsummer Fire Festival  | 
