aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorRat <gmstreetrat@gmail.com>2015-03-29 11:25:48 +0200
committerRat <gmstreetrat@gmail.com>2015-03-29 11:25:48 +0200
commit3660c3a37f7f5a61e14f28c09f94f57fe6315788 (patch)
tree61e92a0de035697d350d1545c1bdafd569d91778 /src/server/scripts/Spells
parenteebc468e628acc801a6426e03815150c8cfd9172 (diff)
parentc26dbb786a91b0454a8648039b63d3dc9ddd1c42 (diff)
Merge branch '6.x' of https://github.com/TrinityCore/TrinityCore into 6.x
Conflicts: src/server/game/Handlers/MiscHandler.cpp src/server/game/Server/Protocol/Opcodes.cpp
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp39
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp4
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp9
3 files changed, 48 insertions, 4 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 31779c4df22..451dc933d86 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -3622,6 +3622,44 @@ class spell_gen_eject_all_passengers : public SpellScriptLoader
}
};
+class spell_gen_eject_passenger : public SpellScriptLoader
+{
+ public:
+ spell_gen_eject_passenger() : SpellScriptLoader("spell_gen_eject_passenger") { }
+
+ class spell_gen_eject_passenger_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_eject_passenger_SpellScript);
+
+ bool Validate(SpellInfo const* spellInfo) override
+ {
+ SpellEffectInfo const* effect = spellInfo->GetEffect(EFFECT_0);
+ if (!effect || effect->CalcValue() < 1)
+ return false;
+ return true;
+ }
+
+ void EjectPassenger(SpellEffIndex /*effIndex*/)
+ {
+ if (Vehicle* vehicle = GetHitUnit()->GetVehicleKit())
+ {
+ if (Unit* passenger = vehicle->GetPassenger(GetEffectValue() - 1))
+ passenger->ExitVehicle();
+ }
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_eject_passenger_SpellScript::EjectPassenger, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const override
+ {
+ return new spell_gen_eject_passenger_SpellScript();
+ }
+};
+
enum GMFreeze
{
SPELL_GM_FREEZE = 9454
@@ -4116,6 +4154,7 @@ void AddSC_generic_spell_scripts()
new spell_gen_wg_water();
new spell_gen_whisper_gulch_yogg_saron_whisper();
new spell_gen_eject_all_passengers();
+ new spell_gen_eject_passenger();
new spell_gen_gm_freeze();
new spell_gen_stand();
new spell_gen_mixology_bonus();
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index 91ef240a1a3..7d43157376f 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -85,6 +85,7 @@ enum MageSpells
SPELL_MAGE_FINGERS_OF_FROST = 44544,
SPELL_MAGE_TEMPORAL_DISPLACEMENT = 80354,
+ SPELL_PET_NETHERWINDS_FATIGUED = 160455,
};
enum MageIcons
@@ -1434,7 +1435,8 @@ class spell_mage_time_warp : public SpellScriptLoader
if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_TEMPORAL_DISPLACEMENT)
|| !sSpellMgr->GetSpellInfo(SPELL_HUNTER_INSANITY)
|| !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_EXHAUSTION)
- || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SATED))
+ || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SATED)
+ || !sSpellMgr->GetSpellInfo(SPELL_PET_NETHERWINDS_FATIGUED))
return false;
return true;
}
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index f9224e435af..af4ff1f4485 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -61,7 +61,8 @@ enum ShamanSpells
SPELL_SHAMAN_TOTEM_EARTHBIND_TOTEM = 6474,
SPELL_SHAMAN_TOTEM_EARTHEN_POWER = 59566,
SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL = 52042,
- SPELL_SHAMAN_TIDAL_WAVES = 53390
+ SPELL_SHAMAN_TIDAL_WAVES = 53390,
+ SPELL_PET_NETHERWINDS_FATIGUED = 160455
};
enum ShamanSpellIcons
@@ -176,7 +177,8 @@ class spell_sha_bloodlust : public SpellScriptLoader
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SATED)
|| !sSpellMgr->GetSpellInfo(SPELL_HUNTER_INSANITY)
- || !sSpellMgr->GetSpellInfo(SPELL_MAGE_TEMPORAL_DISPLACEMENT))
+ || !sSpellMgr->GetSpellInfo(SPELL_MAGE_TEMPORAL_DISPLACEMENT)
+ || !sSpellMgr->GetSpellInfo(SPELL_PET_NETHERWINDS_FATIGUED))
return false;
return true;
}
@@ -671,7 +673,8 @@ class spell_sha_heroism : public SpellScriptLoader
{
if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_EXHAUSTION)
|| !sSpellMgr->GetSpellInfo(SPELL_HUNTER_INSANITY)
- || !sSpellMgr->GetSpellInfo(SPELL_MAGE_TEMPORAL_DISPLACEMENT))
+ || !sSpellMgr->GetSpellInfo(SPELL_MAGE_TEMPORAL_DISPLACEMENT)
+ || !sSpellMgr->GetSpellInfo(SPELL_PET_NETHERWINDS_FATIGUED))
return false;
return true;
}