From f2ba845ea05e2efd69daf680ab42300666d9b4d3 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 28 Apr 2025 14:44:14 +0000 Subject: [PATCH] Fishing lures box peeve (#90741) ## About The Pull Request This fixes a small excerpt from #90678: >"[...] double-examining it to see what extra items it can hold (normally all lures) only reports the Artificial Minnow as fitting." By making it use subtypesof instead of typesof for purpose of spawning lures and making the minnow its own subtype. ## Why It's Good For The Game Fixing a mild botherance. ## Changelog :cl: fix: Examining a fishing lures box twice no longer says it can hold just artificial minnows. /:cl: --- .../subsystem/processing/fishing.dm | 2 +- code/modules/fishing/bait.dm | 22 +++++++++++++------ code/modules/fishing/fishing_equipment.dm | 2 +- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/code/controllers/subsystem/processing/fishing.dm b/code/controllers/subsystem/processing/fishing.dm index 0238f7b4e49..070e2ce6c08 100644 --- a/code/controllers/subsystem/processing/fishing.dm +++ b/code/controllers/subsystem/processing/fishing.dm @@ -97,7 +97,7 @@ PROCESSING_SUBSYSTEM_DEF(fishing) ///init the list of things lures can catch lure_catchables = list() - for(var/lure_type in typesof(/obj/item/fishing_lure)) + for(var/lure_type in subtypesof(/obj/item/fishing_lure)) var/obj/item/fishing_lure/lure = new lure_type lure_catchables[lure_type] = list() for(var/obj/item/fish/fish as anything in spawned_fish) diff --git a/code/modules/fishing/bait.dm b/code/modules/fishing/bait.dm index 50cb6ef09b1..c6b94c636a4 100644 --- a/code/modules/fishing/bait.dm +++ b/code/modules/fishing/bait.dm @@ -62,8 +62,8 @@ uses_left = 12 /obj/item/fishing_lure - name = "artificial minnow" - desc = "A fishing lure that may attract small fish. Too tiny, too large, or too picky prey won't be interested in it, though." + name = "fishing lure" + desc = "It's just that, a plastic piece of fishing equipment, yet fish yearn with every last molecule of their bodies to take a bite of it." icon = 'icons/obj/fishing.dmi' icon_state = "minnow" w_class = WEIGHT_CLASS_SMALL @@ -89,11 +89,6 @@ ///Called for every fish subtype by the fishing subsystem when initializing, to populate the list of fish that can be catched with this lure. /obj/item/fishing_lure/proc/is_catchable_fish(obj/item/fish/fish, list/fish_properties) - var/intermediate_size = FISH_SIZE_SMALL_MAX + (FISH_SIZE_NORMAL_MAX - FISH_SIZE_SMALL_MAX) - if(!ISINRANGE(fish.size, FISH_SIZE_TINY_MAX * 0.5, intermediate_size)) - return FALSE - if(length(list(/datum/fish_trait/vegan, /datum/fish_trait/picky_eater, /datum/fish_trait/nocturnal, /datum/fish_trait/heavy) & fish.fish_traits)) - return FALSE return TRUE /obj/item/fishing_lure/examine(mob/user) @@ -131,6 +126,19 @@ multiplier += 10 return multiplier +/obj/item/fishing_lure/minnow + name = "artificial minnow" + desc = "A fishing lure that may attract small fish. Too tiny, too large, or too picky prey won't be interested in it, though." + icon_state = "minnow" + +/obj/item/fishing_lure/minnow/is_catchable_fish(obj/item/fish/fish, list/fish_properties) + var/intermediate_size = FISH_SIZE_SMALL_MAX + (FISH_SIZE_NORMAL_MAX - FISH_SIZE_SMALL_MAX) + if(!ISINRANGE(fish.size, FISH_SIZE_TINY_MAX * 0.5, intermediate_size)) + return FALSE + if(length(list(/datum/fish_trait/vegan, /datum/fish_trait/picky_eater, /datum/fish_trait/nocturnal, /datum/fish_trait/heavy) & fish.fish_traits)) + return FALSE + return TRUE + /obj/item/fishing_lure/plug name = "artificial plug lure" desc = "A bigger fishing lure that may attract larger fish. Tiny or picky prey will remain uninterested." diff --git a/code/modules/fishing/fishing_equipment.dm b/code/modules/fishing/fishing_equipment.dm index a24398d532f..86eefe72461 100644 --- a/code/modules/fishing/fishing_equipment.dm +++ b/code/modules/fishing/fishing_equipment.dm @@ -444,7 +444,7 @@ /obj/item/storage/box/fishing_lures/PopulateContents() new /obj/item/paper/lures_instructions(src) - var/list/typesof = typesof(/obj/item/fishing_lure) + var/list/typesof = subtypesof(/obj/item/fishing_lure) for(var/type in typesof) new type (src)