diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_hunter.cpp | 435 |
1 files changed, 0 insertions, 435 deletions
diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index 564214943a8..4dae0593f83 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -32,31 +32,17 @@ enum HunterSpells { - SPELL_HUNTER_ARCANE_SHOT_FOCUS = 187675, SPELL_HUNTER_ASPECT_CHEETAH_SLOW = 186258, - SPELL_HUNTER_BESTIAL_WRATH = 19574, - SPELL_HUNTER_CHIMERA_SHOT_HEAL = 53353, SPELL_HUNTER_EXHILARATION = 109304, SPELL_HUNTER_EXHILARATION_PET = 128594, SPELL_HUNTER_EXHILARATION_R2 = 231546, - SPELL_HUNTER_FIRE = 82926, - SPELL_HUNTER_GENERIC_ENERGIZE_FOCUS = 91954, - SPELL_HUNTER_IMPROVED_MEND_PET = 24406, - SPELL_HUNTER_INSANITY = 95809, - SPELL_HUNTER_LOCK_AND_LOAD = 56453, SPELL_HUNTER_LONE_WOLF = 155228, SPELL_HUNTER_MASTERS_CALL_TRIGGERED = 62305, SPELL_HUNTER_MISDIRECTION_PROC = 35079, SPELL_HUNTER_MULTI_SHOT_FOCUS = 213363, SPELL_HUNTER_PET_LAST_STAND_TRIGGERED = 53479, - SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX = 55709, SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_TRIGGERED = 54114, SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_DEBUFF = 55711, - SPELL_HUNTER_PET_CARRION_FEEDER_TRIGGERED = 54045, - SPELL_HUNTER_READINESS = 23989, - SPELL_HUNTER_SERPENT_STING = 1978, - SPELL_HUNTER_SNIPER_TRAINING_R1 = 53302, - SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1 = 64418, SPELL_HUNTER_STEADY_SHOT_FOCUS = 77443, SPELL_HUNTER_T9_4P_GREATNESS = 68130, SPELL_ROAR_OF_SACRIFICE_TRIGGERED = 67481 @@ -70,86 +56,6 @@ enum MiscSpells SPELL_SHAMAN_SATED = 57724 }; -// 90355 - Ancient Hysteria -class spell_hun_ancient_hysteria : public SpellScriptLoader -{ - public: - spell_hun_ancient_hysteria() : SpellScriptLoader("spell_hun_ancient_hysteria") { } - - class spell_hun_ancient_hysteria_SpellScript : public SpellScript - { - PrepareSpellScript(spell_hun_ancient_hysteria_SpellScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo( - { - SPELL_HUNTER_INSANITY, - SPELL_MAGE_TEMPORAL_DISPLACEMENT, - SPELL_SHAMAN_EXHAUSTION, - SPELL_SHAMAN_SATED - }); - } - - void RemoveInvalidTargets(std::list<WorldObject*>& targets) - { - targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_HUNTER_INSANITY)); - targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_MAGE_TEMPORAL_DISPLACEMENT)); - targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_SHAMAN_EXHAUSTION)); - targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_SHAMAN_SATED)); - } - - void ApplyDebuff() - { - if (Unit* target = GetHitUnit()) - target->CastSpell(target, SPELL_HUNTER_INSANITY, true); - } - - void Register() override - { - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_hun_ancient_hysteria_SpellScript::RemoveInvalidTargets, EFFECT_ALL, TARGET_UNIT_CASTER_AREA_RAID); - AfterHit += SpellHitFn(spell_hun_ancient_hysteria_SpellScript::ApplyDebuff); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_hun_ancient_hysteria_SpellScript(); - } -}; - -// 185358 - Arcane Shot -class spell_hun_arcane_shot : public SpellScriptLoader -{ - public: - spell_hun_arcane_shot() : SpellScriptLoader("spell_hun_arcane_shot") { } - - class spell_hun_arcane_shot_SpellScript : public SpellScript - { - PrepareSpellScript(spell_hun_arcane_shot_SpellScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_HUNTER_ARCANE_SHOT_FOCUS }); - } - - void HandleOnHit() - { - GetCaster()->CastSpell(GetCaster(), SPELL_HUNTER_ARCANE_SHOT_FOCUS, true); - } - - void Register() override - { - OnHit += SpellHitFn(spell_hun_arcane_shot_SpellScript::HandleOnHit); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_hun_arcane_shot_SpellScript(); - } -}; - // 186257 - Aspect of the Cheetah class spell_hun_aspect_cheetah : public SpellScriptLoader { @@ -186,89 +92,6 @@ class spell_hun_aspect_cheetah : public SpellScriptLoader } }; -// 53209 - Chimera Shot -class spell_hun_chimera_shot : public SpellScriptLoader -{ - public: - spell_hun_chimera_shot() : SpellScriptLoader("spell_hun_chimera_shot") { } - - class spell_hun_chimera_shot_SpellScript : public SpellScript - { - PrepareSpellScript(spell_hun_chimera_shot_SpellScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_HUNTER_CHIMERA_SHOT_HEAL, SPELL_HUNTER_SERPENT_STING }); - } - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_PLAYER; - } - - void HandleScriptEffect(SpellEffIndex /*effIndex*/) - { - GetCaster()->CastSpell(GetCaster(), SPELL_HUNTER_CHIMERA_SHOT_HEAL, true); - - if (Aura* aur = GetHitUnit()->GetAura(SPELL_HUNTER_SERPENT_STING, GetCaster()->GetGUID())) - aur->SetDuration(aur->GetSpellInfo()->GetMaxDuration(), true); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_hun_chimera_shot_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_hun_chimera_shot_SpellScript(); - } -}; - -// 77767 - Cobra Shot -class spell_hun_cobra_shot : public SpellScriptLoader -{ - public: - spell_hun_cobra_shot() : SpellScriptLoader("spell_hun_cobra_shot") { } - - class spell_hun_cobra_shot_SpellScript : public SpellScript - { - PrepareSpellScript(spell_hun_cobra_shot_SpellScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_HUNTER_GENERIC_ENERGIZE_FOCUS, SPELL_HUNTER_SERPENT_STING }); - } - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_PLAYER; - } - - void HandleScriptEffect(SpellEffIndex /*effIndex*/) - { - GetCaster()->CastSpell(GetCaster(), SPELL_HUNTER_GENERIC_ENERGIZE_FOCUS, true); - - if (Aura* aur = GetHitUnit()->GetAura(SPELL_HUNTER_SERPENT_STING, GetCaster()->GetGUID())) - { - int32 newDuration = aur->GetDuration() + GetEffectValue() * IN_MILLISECONDS; - aur->SetDuration(std::min(newDuration, aur->GetMaxDuration()), true); - } - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_hun_cobra_shot_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_hun_cobra_shot_SpellScript(); - } -}; - // 109304 - Exhilaration class spell_hun_exhilaration : public SpellScriptLoader { @@ -340,45 +163,6 @@ class spell_hun_hunting_party : public SpellScriptLoader } }; -// -19572 - Improved Mend Pet -class spell_hun_improved_mend_pet : public SpellScriptLoader -{ - public: - spell_hun_improved_mend_pet() : SpellScriptLoader("spell_hun_improved_mend_pet") { } - - class spell_hun_improved_mend_pet_AuraScript : public AuraScript - { - PrepareAuraScript(spell_hun_improved_mend_pet_AuraScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_HUNTER_IMPROVED_MEND_PET }); - } - - bool CheckProc(ProcEventInfo& /*eventInfo*/) - { - return roll_chance_i(GetEffect(EFFECT_0)->GetAmount()); - } - - void HandleProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/) - { - PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_IMPROVED_MEND_PET, true, nullptr, aurEff); - } - - void Register() override - { - DoCheckProc += AuraCheckProcFn(spell_hun_improved_mend_pet_AuraScript::CheckProc); - OnEffectProc += AuraEffectProcFn(spell_hun_improved_mend_pet_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } - }; - - AuraScript* GetAuraScript() const override - { - return new spell_hun_improved_mend_pet_AuraScript(); - } -}; - // 53478 - Last Stand Pet class spell_hun_last_stand_pet : public SpellScriptLoader { @@ -653,87 +437,6 @@ class spell_hun_pet_heart_of_the_phoenix : public SpellScriptLoader } }; -// 23989 - Readiness -class spell_hun_readiness : public SpellScriptLoader -{ - public: - spell_hun_readiness() : SpellScriptLoader("spell_hun_readiness") { } - - class spell_hun_readiness_SpellScript : public SpellScript - { - PrepareSpellScript(spell_hun_readiness_SpellScript); - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_PLAYER; - } - - void HandleDummy(SpellEffIndex /*effIndex*/) - { - // immediately finishes the cooldown on your other Hunter abilities except Bestial Wrath - GetCaster()->GetSpellHistory()->ResetCooldowns([this](SpellHistory::CooldownStorageType::iterator itr) - { - SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(itr->first, GetCastDifficulty()); - - ///! If spellId in cooldown map isn't valid, the above will return a null pointer. - if (spellInfo->SpellFamilyName == SPELLFAMILY_HUNTER && - spellInfo->Id != SPELL_HUNTER_READINESS && - spellInfo->Id != SPELL_HUNTER_BESTIAL_WRATH && - spellInfo->Id != SPELL_DRAENEI_GIFT_OF_THE_NAARU && - spellInfo->GetRecoveryTime() > 0) - return true; - return false; - }, true); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_hun_readiness_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_hun_readiness_SpellScript(); - } -}; - -// 82925 - Ready, Set, Aim... -class spell_hun_ready_set_aim : public SpellScriptLoader -{ - public: - spell_hun_ready_set_aim() : SpellScriptLoader("spell_hun_ready_set_aim") { } - - class spell_hun_ready_set_aim_AuraScript : public AuraScript - { - PrepareAuraScript(spell_hun_ready_set_aim_AuraScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_HUNTER_FIRE }); - } - - void OnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) - { - if (GetStackAmount() == 5) - { - GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_FIRE, true, nullptr, aurEff); - GetTarget()->RemoveAura(GetId()); - } - } - - void Register() override - { - AfterEffectApply += AuraEffectApplyFn(spell_hun_ready_set_aim_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); - } - }; - - AuraScript* GetAuraScript() const override - { - return new spell_hun_ready_set_aim_AuraScript(); - } -}; - // 53480 - Roar of Sacrifice class spell_hun_roar_of_sacrifice : public SpellScriptLoader { @@ -818,64 +521,6 @@ class spell_hun_scatter_shot : public SpellScriptLoader } }; -// -53302 - Sniper Training -class spell_hun_sniper_training : public SpellScriptLoader -{ - public: - spell_hun_sniper_training() : SpellScriptLoader("spell_hun_sniper_training") { } - - class spell_hun_sniper_training_AuraScript : public AuraScript - { - PrepareAuraScript(spell_hun_sniper_training_AuraScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_HUNTER_SNIPER_TRAINING_R1, SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1 }); - } - - void HandlePeriodic(AuraEffect const* aurEff) - { - PreventDefaultAction(); - if (aurEff->GetAmount() <= 0) - { - Unit* target = GetTarget(); - uint32 spellId = SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1 + GetId() - SPELL_HUNTER_SNIPER_TRAINING_R1; - - target->CastSpell(target, spellId, true, nullptr, aurEff); - if (Player* playerTarget = GetUnitOwner()->ToPlayer()) - { - int32 baseAmount = aurEff->GetBaseAmount(); - int32 amount = playerTarget->CalculateSpellDamage(playerTarget, GetSpellInfo(), aurEff->GetEffIndex(), &baseAmount); - GetEffect(EFFECT_0)->SetAmount(amount); - } - } - } - - void HandleUpdatePeriodic(AuraEffect* aurEff) - { - if (Player* playerTarget = GetUnitOwner()->ToPlayer()) - { - int32 baseAmount = aurEff->GetBaseAmount(); - int32 amount = playerTarget->isMoving() ? - playerTarget->CalculateSpellDamage(playerTarget, GetSpellInfo(), aurEff->GetEffIndex(), &baseAmount) : - aurEff->GetAmount() - 1; - aurEff->SetAmount(amount); - } - } - - void Register() override - { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_hun_sniper_training_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); - OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_hun_sniper_training_AuraScript::HandleUpdatePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); - } - }; - - AuraScript* GetAuraScript() const override - { - return new spell_hun_sniper_training_AuraScript(); - } -}; - // 56641 - Steady Shot class spell_hun_steady_shot : public SpellScriptLoader { @@ -965,37 +610,6 @@ class spell_hun_tame_beast : public SpellScriptLoader } }; -// 53434 - Call of the Wild -class spell_hun_target_only_pet_and_owner : public SpellScriptLoader -{ - public: - spell_hun_target_only_pet_and_owner() : SpellScriptLoader("spell_hun_target_only_pet_and_owner") { } - - class spell_hun_target_only_pet_and_owner_SpellScript : public SpellScript - { - PrepareSpellScript(spell_hun_target_only_pet_and_owner_SpellScript); - - void FilterTargets(std::list<WorldObject*>& targets) - { - targets.clear(); - targets.push_back(GetCaster()); - if (Unit* owner = GetCaster()->GetOwner()) - targets.push_back(owner); - } - - void Register() override - { - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_hun_target_only_pet_and_owner_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_PARTY); - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_hun_target_only_pet_and_owner_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_PARTY); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_hun_target_only_pet_and_owner_SpellScript(); - } -}; - // 67151 - Item - Hunter T9 4P Bonus (Steady Shot) class spell_hun_t9_4p_bonus : public SpellScriptLoader { @@ -1039,69 +653,20 @@ public: } }; -// -56333 - T.N.T. -class spell_hun_tnt : public SpellScriptLoader -{ - public: - spell_hun_tnt() : SpellScriptLoader("spell_hun_tnt") { } - - class spell_hun_tnt_AuraScript : public AuraScript - { - PrepareAuraScript(spell_hun_tnt_AuraScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_HUNTER_LOCK_AND_LOAD }); - } - - bool CheckProc(ProcEventInfo& /*eventInfo*/) - { - return roll_chance_i(GetEffect(EFFECT_0)->GetAmount()); - } - - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/) - { - PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_LOCK_AND_LOAD, true, nullptr, aurEff); - } - - void Register() override - { - DoCheckProc += AuraCheckProcFn(spell_hun_tnt_AuraScript::CheckProc); - OnEffectProc += AuraEffectProcFn(spell_hun_tnt_AuraScript::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } - }; - - AuraScript* GetAuraScript() const override - { - return new spell_hun_tnt_AuraScript(); - } -}; - void AddSC_hunter_spell_scripts() { - new spell_hun_ancient_hysteria(); - new spell_hun_arcane_shot(); new spell_hun_aspect_cheetah(); - new spell_hun_chimera_shot(); - new spell_hun_cobra_shot(); new spell_hun_exhilaration(); new spell_hun_hunting_party(); - new spell_hun_improved_mend_pet(); new spell_hun_last_stand_pet(); new spell_hun_masters_call(); new spell_hun_misdirection(); new spell_hun_misdirection_proc(); new spell_hun_multi_shot(); new spell_hun_pet_heart_of_the_phoenix(); - new spell_hun_readiness(); - new spell_hun_ready_set_aim(); new spell_hun_roar_of_sacrifice(); new spell_hun_scatter_shot(); - new spell_hun_sniper_training(); new spell_hun_steady_shot(); new spell_hun_tame_beast(); - new spell_hun_target_only_pet_and_owner(); new spell_hun_t9_4p_bonus(); - new spell_hun_tnt(); } |