From 550f9f435c107a9b3fc6ea0bb0aee1b5203ce9a6 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 13 Apr 2026 14:06:56 -0500 Subject: [PATCH] Fix fishing random portals not working correctly (#95737) --- .../sources/subtypes/fishing_portal_machine.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/fishing/sources/subtypes/fishing_portal_machine.dm b/code/modules/fishing/sources/subtypes/fishing_portal_machine.dm index df8ce18990a..b79eae415ee 100644 --- a/code/modules/fishing/sources/subtypes/fishing_portal_machine.dm +++ b/code/modules/fishing/sources/subtypes/fishing_portal_machine.dm @@ -154,7 +154,8 @@ ///Generate the fish table if we don't have one already. /datum/fish_source/portal/random/on_fishing_spot_init(datum/component/fishing_spot/spot) - if(fish_table) + if(all_portal_fish_sources_at_once) + fish_table = all_portal_fish_sources_at_once return ///rewards not found in other fishing portals @@ -166,13 +167,12 @@ if(portal_type == type || !ispath(portal_type, /datum/fish_source/portal)) continue var/datum/fish_source/portal/preset_portal = GLOB.preset_fish_sources[portal_type] - fish_table |= preset_portal.fish_table + for(var/reward_path in preset_portal.fish_table) + if(reward_path == FISHING_DUD) // We don't serve duds. + continue + fish_table[reward_path] = rand(1, 4) - ///We don't serve duds. - fish_table -= FISHING_DUD - - for(var/reward_path in fish_table) - fish_table[reward_path] = rand(1, 4) + all_portal_fish_sources_at_once = fish_table ///Difficulty has to be calculated before the rest, because of how it influences jump chances /datum/fish_source/portal/random/calculate_difficulty(datum/fishing_challenge/challenge, result, obj/item/fishing_rod/rod, mob/fisherman)