From aeae738b371446710b6bf7cb9a0600aef8646771 Mon Sep 17 00:00:00 2001 From: SnapperRy Date: Mon, 12 Sep 2016 19:37:24 +0200 Subject: [PATCH] Core/Fishing: ignore required skill when fishing in pools. --- .../game/Entities/GameObject/GameObject.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 1f2a37da56f..c6f52b6ebdc 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1490,8 +1490,12 @@ void GameObject::Use(Unit* user) player->UpdateFishingSkill(); - // but you will likely cause junk in areas that require a high fishing skill - if (chance >= roll) + /// @todo find reasonable value for fishing hole search + GameObject* fishingPool = LookupFishingHoleAround(20.0f + CONTACT_DISTANCE); + + // If fishing skill is high enough, or if fishing on a pool, send correct loot. + // Fishing pools have no skill requirement as of patch 3.3.0 (undocumented change). + if (chance >= roll || fishingPool) { /// @todo I do not understand this hack. Need some explanation. // prevent removing GO at spell cancel @@ -1499,17 +1503,15 @@ void GameObject::Use(Unit* user) SetOwnerGUID(player->GetGUID()); SetSpellId(0); // prevent removing unintended auras at Unit::RemoveGameObject - /// @todo find reasonable value for fishing hole search - GameObject* ok = LookupFishingHoleAround(20.0f + CONTACT_DISTANCE); - if (ok) + if (fishingPool) { - ok->Use(player); + fishingPool->Use(player); SetLootState(GO_JUST_DEACTIVATED); } else player->SendLoot(GetGUID(), LOOT_FISHING); } - else // else: junk + else // If fishing skill is too low, send junk loot. player->SendLoot(GetGUID(), LOOT_FISHING_JUNK); break; }