aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSnapperRy <snapperryen@gmail.com>2016-08-23 13:36:57 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-18 14:47:00 +0100
commita6209e6d6d08a3ef5ef71b8799eb07eefd04275a (patch)
treeb0ccab22a8ac1ab82d76301dc7267934bb546d1c /src
parentd8befaf68b60caeae1e13e70ec50158dc39b92a4 (diff)
Event/Brewfest: implement relay race (#17603)
(cherry picked from commit 894378f86728f54a604f6808b6c34e4f498ddd0c) Rename 9999_99_99_99_world.sql to 2016_08_23_05_world.sql (cherry picked from commit 6036b07f2515bec008df3ec02ab71b90e4384229)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_holiday.cpp37
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 71c8878b81b..59b4e11d6c2 100644
--- a/src/server/scripts/Spells/spell_holiday.cpp
+++ b/src/server/scripts/Spells/spell_holiday.cpp
@@ -847,6 +847,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,
@@ -854,6 +855,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,
@@ -874,7 +876,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;
@@ -1111,6 +1113,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
{
@@ -1383,6 +1417,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