diff --git a/code/datums/supplypacks/recreation.dm b/code/datums/supplypacks/recreation.dm index 684ef962f4..7059e43755 100644 --- a/code/datums/supplypacks/recreation.dm +++ b/code/datums/supplypacks/recreation.dm @@ -67,4 +67,24 @@ /obj/item/device/pipe_painter = 2, /obj/item/device/floor_painter = 2, /obj/item/device/closet_painter = 2 + ) + +/datum/supply_pack/recreation/cheapbait + name = "Cheap Fishing Bait" + cost = 10 + containername = "cheap bait crate" + containertype = /obj/structure/closet/crate/freezer + contains = list( + /obj/item/weapon/storage/box/wormcan/sickly = 5 + ) + +/datum/supply_pack/randomised/recreation/cheapbait + name = "Deluxe Fishing Bait" + cost = 40 + containername = "deluxe bait crate" + containertype = /obj/structure/closet/crate/freezer + num_contained = 8 + contains = list( + /obj/item/weapon/storage/box/wormcan, + /obj/item/weapon/storage/box/wormcan/deluxe ) \ No newline at end of file diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 6801ba303e..29d1108b4e 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1150,3 +1150,21 @@ /obj/item/toy/plushie/carp = 50, /obj/item/toy/plushie/deer = 50, /obj/item/toy/plushie/tabby_cat = 50) + +/obj/machinery/vending/fishing + name = "loot trawler" + desc = "A special vendor for fishing equipment." + product_ads = "Tired of trawling across the ocean floor? Get our loot!;Chum and rods.;Don't get baited into fishing without us!;Baby is your star-sign pisces? We'd make a perfect match.;Do not fear, plenty to catch around here.;Don't get reeled in helplessly, get your own rod today!" + icon_state = "fishvendor" + products = list(/obj/item/weapon/material/fishing_rod/modern/cheap = 6, + /obj/item/weapon/storage/box/wormcan = 4, + /obj/item/weapon/storage/box/wormcan/sickly = 10, + /obj/item/weapon/material/fishing_net = 2, + /obj/item/stack/cable_coil/random = 6) + prices = list(/obj/item/weapon/material/fishing_rod/modern/cheap = 50, + /obj/item/weapon/storage/box/wormcan = 12, + /obj/item/weapon/storage/box/wormcan/sickly = 6, + /obj/item/weapon/material/fishing_net = 40, + /obj/item/stack/cable_coil/random = 4) + premium = list(/obj/item/weapon/storage/box/wormcan/deluxe = 1) + contraband = list(/obj/item/weapon/storage/box/wormcan/deluxe = 1) diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index 9dca5c3edd..b22ef4166f 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -24,3 +24,46 @@ /obj/item/weapon/storage/box/donut/empty empty = TRUE + +/obj/item/weapon/storage/box/wormcan + icon = 'icons/obj/food.dmi' + icon_state = "wormcan" + name = "can of worms" + desc = "You probably do want to open this can of worms." + max_storage_space = ITEMSIZE_COST_TINY * 6 + can_hold = list( + /obj/item/weapon/reagent_containers/food/snacks/wormsickly, + /obj/item/weapon/reagent_containers/food/snacks/worm, + /obj/item/weapon/reagent_containers/food/snacks/wormdeluxe + ) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/worm = 6) + +/obj/item/weapon/storage/box/wormcan/Initialize() + . = ..() + update_icon() + +/obj/item/weapon/storage/box/wormcan/update_icon(var/itemremoved = 0) + if (contents.len == 0) + icon_state = "wormcan_empty" + +/obj/item/weapon/storage/box/wormcan/sickly + icon_state = "wormcan_sickly" + name = "can of sickly worms" + desc = "You probably don't want to open this can of worms." + max_storage_space = ITEMSIZE_COST_TINY * 6 + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/wormsickly = 6) + +/obj/item/weapon/storage/box/wormcan/sickly/update_icon(var/itemremoved = 0) + if (contents.len == 0) + icon_state = "wormcan_empty_sickly" + +/obj/item/weapon/storage/box/wormcan/deluxe + icon_state = "wormcan_deluxe" + name = "can of deluxe worms" + desc = "You absolutely want to open this can of worms." + max_storage_space = ITEMSIZE_COST_TINY * 6 + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/wormdeluxe = 6) + +/obj/item/weapon/storage/box/wormcan/deluxe/update_icon(var/itemremoved = 0) + if (contents.len == 0) + icon_state = "wormcan_empty_deluxe" \ No newline at end of file diff --git a/code/game/turfs/simulated/outdoors/outdoors_attackby.dm b/code/game/turfs/simulated/outdoors/outdoors_attackby.dm new file mode 100644 index 0000000000..e38f601b8b --- /dev/null +++ b/code/game/turfs/simulated/outdoors/outdoors_attackby.dm @@ -0,0 +1,12 @@ +// this code here enables people to dig up worms from certain tiles. + +/turf/simulated/floor/outdoors/grass/attackby(obj/item/weapon/S as obj, mob/user as mob) + if(istype(S, /obj/item/weapon/shovel)) + to_chat(user, "You begin to dig in \the [src] with your [S].") + if(do_after(user, 4 SECONDS * S.toolspeed)) + to_chat(user, "\The [src] has been dug up, a worm pops from the ground.") + new /obj/item/weapon/reagent_containers/food/snacks/worm(src) + else + to_chat(user, "You decide to not finish digging in \the [src].") + else + ..() \ No newline at end of file diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index 7cf6f7457c..6cb8c267fb 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -87,7 +87,7 @@ if(istype(Bait, bait_type)) var/foodvolume for(var/datum/reagent/re in Bait.reagents.reagent_list) - if(re.id == "nutriment" || re.id == "protein" || re.id == "glucose") + if(re.id == "nutriment" || re.id == "protein" || re.id == "glucose" || re.id == "fishbait") foodvolume += re.volume toolspeed = initial(toolspeed) * min(0.75, (0.5 / max(0.5, (foodvolume / Bait.reagents.maximum_volume)))) @@ -122,3 +122,10 @@ /obj/item/weapon/material/fishing_rod/modern/built strung = FALSE + +/obj/item/weapon/material/fishing_rod/modern/cheap //A rod sold by the fishing vendor. Done so that the rod sold by mining reward vendors doesn't loose its value. + name = "cheap fishing rod" + desc = "Mass produced, but somewhat reliable." + default_material = "plastic" + + toolspeed = 0.9 \ No newline at end of file diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 0df763fa35..f0c5725aa1 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -3913,3 +3913,55 @@ reagents.add_reagent("nutriment", 6) reagents.add_reagent("protein", 4) bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/piginblanket + name = "pig in a blanket" + desc = "A sausage embedded in soft, fluffy pastry. Free this pig from its blanket prison by eating it." + icon_state = "piginblanket" + nutriment_amt = 6 + nutriment_desc = list("meat" = 3, "pastry" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/piginblanket/Initialize() + . = ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("protein", 4) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/wormsickly + name = "sickly worm" + desc = "A worm, it doesn't look particularily healthy, but it will still serve as good fishing bait." + icon_state = "worm_sickly" + nutriment_amt = 1 + nutriment_desc = list("bugflesh" = 1) + w_class = ITEMSIZE_TINY + +/obj/item/weapon/reagent_containers/food/snacks/wormsickly/Initialize() + . = ..() + reagents.add_reagent("fishbait", 10) + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/worm + name = "strange worm" + desc = "A peculiar worm, freshly plucked from the earth." + icon_state = "worm" + nutriment_amt = 1 + nutriment_desc = list("bugflesh" = 1) + w_class = ITEMSIZE_TINY + +/obj/item/weapon/reagent_containers/food/snacks/worm/Initialize() + . = ..() + reagents.add_reagent("fishbait", 20) + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/wormdeluxe + name = "deluxe worm" + desc = "A fancy worm, genetically engineered to appeal to fish." + icon_state = "worm_deluxe" + nutriment_amt = 5 + nutriment_desc = list("bugflesh" = 1) + w_class = ITEMSIZE_TINY + +/obj/item/weapon/reagent_containers/food/snacks/wormdeluxe/Initialize() + . = ..() + reagents.add_reagent("fishbait", 40) + bitesize = 5 \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm index ad150f1b4f..dea0a6a987 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm @@ -529,4 +529,12 @@ M.take_organ_damage(2 * removed, 2 * removed) M.adjustOxyLoss(4 * removed) M.adjustToxLoss(2 * removed) - M.adjustCloneLoss(2 * removed) \ No newline at end of file + M.adjustCloneLoss(2 * removed) + +/datum/reagent/fishbait + name = "Fish Bait" + id = "fishbait" + description = "A natural slurry that particularily appeals to fish." + taste_description = "earthy" + reagent_state = LIQUID + color = "#62764E" \ No newline at end of file diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index ea59c54077..bb1f398a79 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index 962648392c..f77a777e9c 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/vorestation.dme b/vorestation.dme index fcdc86702f..72bbd1f10a 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1322,6 +1322,7 @@ #include "code\game\turfs\simulated\outdoors\dirt.dm" #include "code\game\turfs\simulated\outdoors\grass.dm" #include "code\game\turfs\simulated\outdoors\outdoors.dm" +#include "code\game\turfs\simulated\outdoors\outdoors_attackby.dm" #include "code\game\turfs\simulated\outdoors\sky.dm" #include "code\game\turfs\simulated\outdoors\snow.dm" #include "code\game\turfs\snow\snow.dm"