Event/Brewfest: implement relay race (#17603)

(cherry picked from commit 894378f867)

Rename 9999_99_99_99_world.sql to 2016_08_23_05_world.sql
(cherry picked from commit 6036b07f25)
This commit is contained in:
SnapperRy
2016-08-23 13:36:57 +02:00
committed by joschiwald
parent d8befaf68b
commit a6209e6d6d
2 changed files with 99 additions and 1 deletions

View File

@@ -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