diff options
Diffstat (limited to 'src/server/scripts')
-rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 7e51fd7b24e..681a5efde3e 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -1629,6 +1629,57 @@ class spell_gen_elune_candle : public SpellScriptLoader } }; +enum FishingSpells +{ + SPELL_FISHING_NO_FISHING_POLE = 131476, + SPELL_FISHING_WITH_POLE = 131490 +}; + +// 131474 - Fishing +class spell_gen_fishing : public SpellScriptLoader +{ +public: + spell_gen_fishing() : SpellScriptLoader("spell_gen_fishing") { } + + class spell_gen_fishing_SpellScript : public SpellScript + { + PrepareSpellScript(spell_gen_fishing_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_FISHING_NO_FISHING_POLE, SPELL_FISHING_WITH_POLE }); + } + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } + + void HandleDummy(SpellEffIndex effIndex) + { + PreventHitDefaultEffect(effIndex); + uint32 spellId; + Item* mainHand = GetCaster()->ToPlayer()->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND); + if (!mainHand || mainHand->GetTemplate()->GetClass() != ITEM_CLASS_WEAPON || mainHand->GetTemplate()->GetSubClass() != ITEM_SUBCLASS_WEAPON_FISHING_POLE) + spellId = SPELL_FISHING_NO_FISHING_POLE; + else + spellId = SPELL_FISHING_WITH_POLE; + + GetCaster()->CastSpell(GetCaster(), spellId, false); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_gen_fishing_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_gen_fishing_SpellScript(); + } +}; + enum TransporterBackfires { SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH = 23444, @@ -4547,6 +4598,7 @@ void AddSC_generic_spell_scripts() new spell_gen_dummy_trigger(); new spell_gen_dungeon_credit(); new spell_gen_elune_candle(); + new spell_gen_fishing(); new spell_gen_gadgetzan_transporter_backfire(); new spell_gen_gift_of_naaru(); new spell_gen_gnomish_transporter(); |