diff options
author | Shauren <shauren.trinity@gmail.com> | 2017-02-11 13:04:12 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2017-02-11 13:04:12 +0100 |
commit | 6f176c0980659b80e0103f776f76aa0fa46124d0 (patch) | |
tree | eeb9c36f5a2c9e44f6fbb25a6a3d4ba35da3b91f /src/server/scripts | |
parent | 87513871dc3c8131d089de0fdc0f8c31f2bc2832 (diff) |
Core/Spells: Fixed fishing
Closes #19016
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(); |