From 7988717eef41d21cb35e6d43d64efef32b579d33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefano=20Borz=C3=AC?= Date: Sun, 7 Mar 2021 13:13:29 +0100 Subject: [PATCH] fix(Code/Fishing): improve timing of fishing (#4733) --- src/server/game/Spells/SpellEffects.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 30104c9bd..b1b082673 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -5497,7 +5497,7 @@ void Spell::EffectTransmitted(SpellEffIndex effIndex) // end time of range when possible catch fish (FISHING_BOBBER_READY_TIME..GetDuration(m_spellInfo)) // start time == fish-FISHING_BOBBER_READY_TIME (0..GetDuration(m_spellInfo)-FISHING_BOBBER_READY_TIME) int32 lastSec = 0; - switch (urand(0, 3)) + switch (urand(0, 2)) { case 0: lastSec = 3; @@ -5508,12 +5508,11 @@ void Spell::EffectTransmitted(SpellEffIndex effIndex) case 2: lastSec = 13; break; - case 3: - lastSec = 17; - break; } - duration = duration - lastSec * IN_MILLISECONDS + FISHING_BOBBER_READY_TIME * IN_MILLISECONDS; + // Duration of the fishing bobber can't be higher than the Fishing channeling duration + duration = std::min(duration, duration - lastSec*IN_MILLISECONDS + FISHING_BOBBER_READY_TIME*IN_MILLISECONDS); + break; } case GAMEOBJECT_TYPE_SUMMONING_RITUAL: