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)