diff options
| author | Rat <gmstreetrat@gmail.com> | 2015-03-29 11:25:48 +0200 |
|---|---|---|
| committer | Rat <gmstreetrat@gmail.com> | 2015-03-29 11:25:48 +0200 |
| commit | 3660c3a37f7f5a61e14f28c09f94f57fe6315788 (patch) | |
| tree | 61e92a0de035697d350d1545c1bdafd569d91778 /src/server/scripts/Spells | |
| parent | eebc468e628acc801a6426e03815150c8cfd9172 (diff) | |
| parent | c26dbb786a91b0454a8648039b63d3dc9ddd1c42 (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.cpp | 39 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 4 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_shaman.cpp | 9 |
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; } |
