aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Northrend/wintergrasp.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp
index ff21f34d1e2..d765e3363af 100644
--- a/src/server/scripts/Northrend/wintergrasp.cpp
+++ b/src/server/scripts/Northrend/wintergrasp.cpp
@@ -492,6 +492,33 @@ class spell_wintergrasp_force_building : public SpellScriptLoader
}
};
+class spell_wintergrasp_grab_passenger : public SpellScriptLoader
+{
+ public:
+ spell_wintergrasp_grab_passenger() : SpellScriptLoader("spell_wintergrasp_grab_passenger") { }
+
+ class spell_wintergrasp_grab_passenger_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_wintergrasp_grab_passenger_SpellScript);
+
+ void HandleScript(SpellEffIndex effIndex)
+ {
+ if (Player* target = GetHitPlayer())
+ GetCaster()->GetVehicleKit()->AddPassenger(target);
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_wintergrasp_grab_passenger_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_wintergrasp_grab_passenger_SpellScript();
+ }
+};
+
class achievement_wg_didnt_stand_a_chance : public AchievementCriteriaScript
{
public:
@@ -516,6 +543,8 @@ public:
}
};
+
+
void AddSC_wintergrasp()
{
new npc_wg_queue();
@@ -524,6 +553,7 @@ void AddSC_wintergrasp()
new npc_wg_quest_giver();
new achievement_wg_didnt_stand_a_chance();
new spell_wintergrasp_force_building();
+ new spell_wintergrasp_grab_passenger();
new go_wg_vehicle_teleporter();
}