From f29fccfc2cd871ad1c4ffdd635aaa08abe912d71 Mon Sep 17 00:00:00 2001 From: Leland Kemble <70413276+lelandkemble@users.noreply.github.com> Date: Sun, 12 Jul 2026 07:45:35 -0400 Subject: [PATCH] Not as scary as it looks attackby() to item_interaction() (#96795) --- .../IceRuins/icemoon_surface_lodge.dmm | 4 +- ..._underground_abandoned_plasma_facility.dmm | 2 +- .../icemoon_underground_comms_agent.dmm | 2 +- _maps/RandomRuins/SpaceRuins/bus.dmm | 2 +- .../RandomRuins/SpaceRuins/garbagetruck1.dmm | 4 +- _maps/RandomRuins/SpaceRuins/meatderelict.dmm | 2 +- _maps/RandomRuins/SpaceRuins/spacehotel.dmm | 12 +- _maps/RandomZLevels/TheBeach.dmm | 8 +- .../CatwalkStation/CatwalkStation_2023.dmm | 6 +- .../map_files/IceBoxStation/IceBoxStation.dmm | 6 +- _maps/map_files/MetaStation/MetaStation.dmm | 4 +- .../map_files/NebulaStation/NebulaStation.dmm | 6 +- _maps/map_files/generic/CentCom.dmm | 2 +- _maps/minigame/deathmatch/ragnarok.dmm | 2 +- _maps/templates/lazy_templates/ninja_den.dmm | 2 +- _maps/templates/lazy_templates/nukie_base.dmm | 12 +- _maps/virtual_domains/island_brawl.dmm | 8 +- code/datums/components/crafting/tailoring.dm | 2 +- .../orders/order_items/cook/order_veggies.dm | 6 +- .../effects/spawners/random/food_or_drink.dm | 6 +- .../objects/items/storage/boxes/food_boxes.dm | 8 +- .../antagonists/wizard/equipment/wiz_robe.dm | 2 +- code/modules/cargo/bounties/botany.dm | 4 +- code/modules/cargo/packs/organic.dm | 4 +- code/modules/events/holiday/easter.dm | 2 +- .../recipes/processor_recipes.dm | 4 +- .../food_and_drinks/recipes/soup_mixtures.dm | 26 +-- .../recipes/tablecraft/recipes_cake.dm | 2 +- .../recipes/tablecraft/recipes_egg.dm | 2 +- .../recipes/tablecraft/recipes_guide.dm | 6 +- .../recipes/tablecraft/recipes_lizard.dm | 6 +- .../recipes/tablecraft/recipes_martian.dm | 6 +- .../recipes/tablecraft/recipes_meat.dm | 2 +- .../recipes/tablecraft/recipes_misc.dm | 4 +- .../recipes/tablecraft/recipes_moth.dm | 6 +- .../recipes/tablecraft/recipes_pizza.dm | 2 +- .../recipes/tablecraft/recipes_salad.dm | 6 +- .../recipes/tablecraft/recipes_seafood.dm | 2 +- .../recipes/tablecraft/recipes_spaghetti.dm | 4 +- .../hydroponics/beekeeping/bee_smoker.dm | 20 +- code/modules/hydroponics/beekeeping/beebox.dm | 59 ++--- code/modules/hydroponics/grown/corn.dm | 15 +- code/modules/hydroponics/grown/melon.dm | 210 ++++++++---------- code/modules/hydroponics/grown/mushrooms.dm | 16 +- code/modules/hydroponics/grown/potato.dm | 18 +- code/modules/hydroponics/grown/pumpkin.dm | 16 +- code/modules/hydroponics/grown/root.dm | 120 +++++----- .../mob/living/basic/farm_animals/pig.dm | 2 +- .../mob/living/basic/farm_animals/rabbit.dm | 2 +- .../basic/space_fauna/eyeball/_eyeball.dm | 4 +- .../space_fauna/eyeball/eyeball_ai_subtree.dm | 2 +- .../Scripts/96795_update_plant_refinement.txt | 7 + 52 files changed, 329 insertions(+), 358 deletions(-) create mode 100644 tools/UpdatePaths/Scripts/96795_update_plant_refinement.txt diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm index 39c49ade1dd..58ebf9634aa 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm @@ -1023,11 +1023,11 @@ "pU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet/freezer/fridge/all_access, -/obj/item/food/grown/carrot{ +/obj/item/food/grown/carrotlike/carrot{ pixel_x = 1; pixel_y = 2 }, -/obj/item/food/grown/carrot{ +/obj/item/food/grown/carrotlike/carrot{ pixel_x = 6; pixel_y = -2 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm index df600c338fa..c11ba6fad9a 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm @@ -1414,7 +1414,7 @@ "yp" = ( /obj/structure/closet/secure_closet/freezer/fridge/open, /obj/item/knife/kitchen, -/obj/item/food/grown/carrot, +/obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/potato, /obj/item/food/meat/slab/human/mutant/zombie, /obj/item/food/meat/slab/human/mutant/zombie, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm index 61bc59a530a..ab0716d4be2 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm @@ -498,7 +498,7 @@ /obj/structure/closet/crate/freezer, /obj/item/food/grown/potato, /obj/item/food/grown/potato, -/obj/item/food/grown/carrot, +/obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/onion, /obj/item/food/grown/garlic, /turf/open/floor/iron/white, diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm index b725897aa36..18a9b704e58 100644 --- a/_maps/RandomRuins/SpaceRuins/bus.dmm +++ b/_maps/RandomRuins/SpaceRuins/bus.dmm @@ -65,7 +65,7 @@ pixel_y = 1; anchored = 1 }, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ offset_at_init = 0; pixel_z = 17; anchored = 1 diff --git a/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm b/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm index a7eb36e8456..893ef21aff8 100644 --- a/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm +++ b/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm @@ -502,8 +502,8 @@ /obj/item/knife/kitchen, /obj/item/storage/box/mousetraps, /obj/structure/broken_flooring/pile, -/obj/item/food/grown/parsnip, -/obj/item/food/grown/parsnip, +/obj/item/food/grown/carrotlike/parsnip, +/obj/item/food/grown/carrotlike/parsnip, /obj/item/food/cheese/wedge, /turf/open/floor/plating/dumpsterair, /area/ruin/space/has_grav/garbagetruck/foodwaste) diff --git a/_maps/RandomRuins/SpaceRuins/meatderelict.dmm b/_maps/RandomRuins/SpaceRuins/meatderelict.dmm index b7016e7eb9e..8bda3cde936 100644 --- a/_maps/RandomRuins/SpaceRuins/meatderelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/meatderelict.dmm @@ -1868,7 +1868,7 @@ /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/flora/bush/fullgrass/style_random, -/obj/item/food/grown/carrot{ +/obj/item/food/grown/carrotlike/carrot{ preserved_food = 1 }, /turf/open/floor/grass, diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index e8448c8a047..0b692788e97 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -1332,12 +1332,12 @@ /obj/item/food/grown/potato, /obj/item/food/grown/potato, /obj/item/food/grown/potato, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot, +/obj/item/food/grown/carrotlike/carrot, +/obj/item/food/grown/carrotlike/carrot, +/obj/item/food/grown/carrotlike/carrot, +/obj/item/food/grown/carrotlike/carrot, +/obj/item/food/grown/carrotlike/carrot, +/obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/tomato, /obj/item/food/grown/tomato, /obj/item/food/grown/tomato, diff --git a/_maps/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/TheBeach.dmm index 3eb04da8ee6..3b71facaec6 100644 --- a/_maps/RandomZLevels/TheBeach.dmm +++ b/_maps/RandomZLevels/TheBeach.dmm @@ -187,7 +187,7 @@ /area/awaymission/beach) "cv" = ( /obj/structure/table/wood, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ pixel_y = 8; pixel_x = 6 }, @@ -2300,7 +2300,7 @@ /area/awaymission/beach) "Dv" = ( /obj/item/storage/bag/tray, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ pixel_y = 4; pixel_x = -1 }, @@ -2569,11 +2569,11 @@ /area/awaymission/beach) "FH" = ( /obj/structure/table/wood, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ pixel_y = 13; pixel_x = 6 }, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ pixel_y = 8; pixel_x = -4 }, diff --git a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm index f513f5e1f38..739cda89621 100644 --- a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm +++ b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm @@ -14141,8 +14141,8 @@ /obj/item/food/grown/wheat, /obj/item/food/grown/grapes, /obj/item/food/grown/citrus/orange, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/carrot, +/obj/item/food/grown/melonlike/watermelon, +/obj/item/food/grown/carrotlike/carrot, /obj/item/grown/corncob, /obj/item/food/grown/pumpkin{ pixel_y = 5 @@ -14325,7 +14325,7 @@ "dMp" = ( /obj/structure/table, /obj/item/food/grown/banana/bunch, -/obj/item/food/grown/carrot{ +/obj/item/food/grown/carrotlike/carrot{ pixel_x = -1; pixel_y = 3 }, diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index cf3f0c61fee..fbbac7f5d5d 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -30055,8 +30055,8 @@ /area/station/maintenance/port/fore) "iBi" = ( /obj/structure/table, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot{ +/obj/item/food/grown/carrotlike/carrot, +/obj/item/food/grown/carrotlike/carrot{ pixel_x = -2; pixel_y = 4 }, @@ -58364,7 +58364,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "qvx" = ( -/obj/item/food/grown/carrot, +/obj/item/food/grown/carrotlike/carrot, /turf/open/misc/asteroid/snow/standard_air, /area/station/science/cytology) "qvE" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 3d9d1a30ace..5197b421c7c 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -7537,7 +7537,7 @@ /area/station/commons/lounge) "cEv" = ( /obj/item/food/grown/wheat, -/obj/item/food/grown/watermelon, +/obj/item/food/grown/melonlike/watermelon, /obj/item/food/grown/citrus/orange, /obj/item/food/grown/grapes, /obj/structure/extinguisher_cabinet/directional/west, @@ -62690,7 +62690,7 @@ /obj/item/seeds/potato, /obj/item/seeds/apple, /obj/item/grown/corncob, -/obj/item/food/grown/carrot, +/obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/wheat, /obj/item/food/grown/pumpkin{ pixel_y = 5 diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index d51d273d260..7c0021cb884 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -15106,7 +15106,7 @@ /obj/item/seeds/potato, /obj/item/seeds/apple, /obj/item/grown/corncob, -/obj/item/food/grown/carrot, +/obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/wheat, /obj/item/food/grown/pumpkin{ pixel_y = 5 @@ -56776,7 +56776,7 @@ /area/station/maintenance/department/cargo) "iqZ" = ( /obj/item/fish/pufferfish, -/obj/item/food/grown/carrot{ +/obj/item/food/grown/carrotlike/carrot{ pixel_x = 7; preserved_food = 1 }, @@ -76786,7 +76786,7 @@ /area/space/nearstation) "lnV" = ( /obj/item/food/grown/wheat, -/obj/item/food/grown/watermelon, +/obj/item/food/grown/melonlike/watermelon, /obj/item/food/grown/citrus/orange, /obj/item/food/grown/grapes, /obj/structure/table/glass, diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 10327f0266f..ea7c73d53cf 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -11690,7 +11690,7 @@ /obj/item/food/grown/corn, /obj/item/food/grown/chili, /obj/item/food/grown/chili, -/obj/item/food/grown/carrot, +/obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/apple, /obj/item/food/grown/ambrosia/vulgaris, /obj/machinery/status_display/evac/directional/north, diff --git a/_maps/minigame/deathmatch/ragnarok.dmm b/_maps/minigame/deathmatch/ragnarok.dmm index c55693d46fb..0cff89dd846 100644 --- a/_maps/minigame/deathmatch/ragnarok.dmm +++ b/_maps/minigame/deathmatch/ragnarok.dmm @@ -891,7 +891,7 @@ /area/deathmatch) "My" = ( /obj/structure/table/wood, -/obj/item/food/grown/holymelon, +/obj/item/food/grown/melonlike/holymelon, /turf/open/floor/wood/tile, /area/deathmatch) "MM" = ( diff --git a/_maps/templates/lazy_templates/ninja_den.dmm b/_maps/templates/lazy_templates/ninja_den.dmm index 30452f41e5c..1260b153b4d 100644 --- a/_maps/templates/lazy_templates/ninja_den.dmm +++ b/_maps/templates/lazy_templates/ninja_den.dmm @@ -1033,7 +1033,7 @@ /obj/item/food/grown/citrus/lime, /obj/item/food/grown/citrus/orange, /obj/item/food/grown/citrus/lemon, -/obj/item/food/grown/watermelon, +/obj/item/food/grown/melonlike/watermelon, /obj/machinery/light/small/directional/west, /turf/open/floor/carpet/black, /area/centcom/central_command_areas/holding) diff --git a/_maps/templates/lazy_templates/nukie_base.dmm b/_maps/templates/lazy_templates/nukie_base.dmm index c3c6268f400..1156100a9fd 100644 --- a/_maps/templates/lazy_templates/nukie_base.dmm +++ b/_maps/templates/lazy_templates/nukie_base.dmm @@ -2951,12 +2951,12 @@ /obj/item/food/grown/bell_pepper, /obj/item/food/grown/chili, /obj/item/food/grown/chili, -/obj/item/food/grown/parsnip, -/obj/item/food/grown/parsnip, +/obj/item/food/grown/carrotlike/parsnip, +/obj/item/food/grown/carrotlike/parsnip, /obj/item/food/grown/redbeet, /obj/item/food/grown/redbeet, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/watermelon, +/obj/item/food/grown/melonlike/watermelon, +/obj/item/food/grown/melonlike/watermelon, /obj/item/food/grown/peas, /obj/item/food/grown/peas, /obj/item/food/grown/onion, @@ -3193,8 +3193,8 @@ /obj/item/food/meat/slab/spider, /obj/item/food/meat/slab/penguin, /obj/item/food/meat/slab/rawcrab, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot, +/obj/item/food/grown/carrotlike/carrot, +/obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/garlic, /obj/item/food/grown/garlic, /obj/item/food/grown/tomato, diff --git a/_maps/virtual_domains/island_brawl.dmm b/_maps/virtual_domains/island_brawl.dmm index 4688e496bbf..009ccc6c76b 100644 --- a/_maps/virtual_domains/island_brawl.dmm +++ b/_maps/virtual_domains/island_brawl.dmm @@ -72,7 +72,7 @@ /area/virtual_domain) "aZ" = ( /obj/structure/table/wood, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ pixel_y = 8; pixel_x = 6 }, @@ -786,7 +786,7 @@ /area/virtual_domain/fullbright) "iY" = ( /obj/item/storage/bag/tray, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ pixel_y = 4; pixel_x = -1 }, @@ -1124,11 +1124,11 @@ /area/virtual_domain) "oq" = ( /obj/structure/table/wood, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ pixel_y = 13; pixel_x = 6 }, -/obj/item/food/grown/watermelon{ +/obj/item/food/grown/melonlike/watermelon{ pixel_y = 8; pixel_x = -4 }, diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm index 569d38ed0a1..3b36e6dd12d 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/tailoring.dm @@ -47,7 +47,7 @@ name = "Durathread Geomancer Robe" result = /obj/item/clothing/suit/wizrobe/durathread/earth reqs = list(/obj/item/clothing/suit/wizrobe/durathread = 1, - /obj/item/food/grown/cahnroot = 1, + /obj/item/food/grown/carrotlike/cahnroot = 1, /obj/item/food/grown/potato = 3) time = 2 SECONDS category = CAT_CLOTHING diff --git a/code/game/machinery/computer/orders/order_items/cook/order_veggies.dm b/code/game/machinery/computer/orders/order_items/cook/order_veggies.dm index 5eff7055b9f..92cdeb84dc8 100644 --- a/code/game/machinery/computer/orders/order_items/cook/order_veggies.dm +++ b/code/game/machinery/computer/orders/order_items/cook/order_veggies.dm @@ -11,7 +11,7 @@ /datum/orderable_item/veggies/carrot name = "Carrot" - purchase_path = /obj/item/food/grown/carrot + purchase_path = /obj/item/food/grown/carrotlike/carrot /datum/orderable_item/veggies/eggplant name = "Eggplant" @@ -40,7 +40,7 @@ /datum/orderable_item/veggies/watermelon name = "Watermelon" - purchase_path = /obj/item/food/grown/watermelon + purchase_path = /obj/item/food/grown/melonlike/watermelon /datum/orderable_item/veggies/corn name = "Corn" @@ -113,7 +113,7 @@ /datum/orderable_item/veggies/parsnip name = "Parsnip" - purchase_path = /obj/item/food/grown/parsnip + purchase_path = /obj/item/food/grown/carrotlike/parsnip /datum/orderable_item/veggies/redbeet name = "Red Beet" diff --git a/code/game/objects/effects/spawners/random/food_or_drink.dm b/code/game/objects/effects/spawners/random/food_or_drink.dm index 0838b621028..75db6e4e4e5 100644 --- a/code/game/objects/effects/spawners/random/food_or_drink.dm +++ b/code/game/objects/effects/spawners/random/food_or_drink.dm @@ -105,7 +105,7 @@ /obj/item/food/grown/eggplant, /obj/item/food/grown/garlic, /obj/item/food/grown/korta_nut, - /obj/item/food/grown/watermelon, + /obj/item/food/grown/melonlike/watermelon, /obj/item/food/grown/olive, /obj/item/food/grown/onion, /obj/item/food/grown/peanut, @@ -113,8 +113,8 @@ /obj/item/food/grown/plum, /obj/item/food/grown/potato, /obj/item/food/grown/pumpkin, - /obj/item/food/grown/carrot, - /obj/item/food/grown/parsnip, + /obj/item/food/grown/carrotlike/carrot, + /obj/item/food/grown/carrotlike/parsnip, /obj/item/food/grown/whitebeet, /obj/item/food/grown/peas, /obj/item/grown/cotton, diff --git a/code/game/objects/items/storage/boxes/food_boxes.dm b/code/game/objects/items/storage/boxes/food_boxes.dm index 738cb6e5120..cb030bebed1 100644 --- a/code/game/objects/items/storage/boxes/food_boxes.dm +++ b/code/game/objects/items/storage/boxes/food_boxes.dm @@ -177,7 +177,7 @@ /obj/item/food/grown/apple, /obj/item/food/grown/banana, /obj/item/food/grown/cabbage, - /obj/item/food/grown/carrot, + /obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/cherries, /obj/item/food/grown/chili, /obj/item/food/grown/corn, @@ -215,7 +215,7 @@ /obj/item/storage/box/ingredients/vegetarian/PopulateContents() for(var/i in 1 to 2) - new /obj/item/food/grown/carrot(src) + new /obj/item/food/grown/carrotlike/carrot(src) new /obj/item/food/grown/apple(src) new /obj/item/food/grown/corn(src) new /obj/item/food/grown/eggplant(src) @@ -241,7 +241,7 @@ new /obj/item/food/grown/citrus/orange(src) new /obj/item/food/grown/citrus/lemon(src) new /obj/item/food/grown/citrus/lime(src) - new /obj/item/food/grown/watermelon(src) + new /obj/item/food/grown/melonlike/watermelon(src) /obj/item/storage/box/ingredients/sweets theme_name = "sweets" @@ -313,7 +313,7 @@ /obj/item/storage/box/ingredients/salads/PopulateContents() new /obj/item/food/grown/cabbage(src) - new /obj/item/food/grown/carrot(src) + new /obj/item/food/grown/carrotlike/carrot(src) new /obj/item/food/grown/olive(src) new /obj/item/food/grown/onion/red(src) new /obj/item/food/grown/onion/red(src) diff --git a/code/modules/antagonists/wizard/equipment/wiz_robe.dm b/code/modules/antagonists/wizard/equipment/wiz_robe.dm index 26e6d85690a..3152d0b5222 100644 --- a/code/modules/antagonists/wizard/equipment/wiz_robe.dm +++ b/code/modules/antagonists/wizard/equipment/wiz_robe.dm @@ -64,7 +64,7 @@ armor_type = /datum/armor/none resistance_flags = FLAMMABLE -/obj/item/clothing/head/wizard/chanterelle/fr +/obj/item/clothing/head/wizard/chanterelle/fireproof resistance_flags = FIRE_PROOF /obj/item/clothing/head/wizard/marisa diff --git a/code/modules/cargo/bounties/botany.dm b/code/modules/cargo/bounties/botany.dm index ab3627c8096..9afbd513348 100644 --- a/code/modules/cargo/bounties/botany.dm +++ b/code/modules/cargo/bounties/botany.dm @@ -149,12 +149,12 @@ /datum/bounty/item/botany/watermelon name = "Watermelons" - wanted_types = list(/obj/item/food/grown/watermelon = TRUE) + wanted_types = list(/obj/item/food/grown/melonlike/watermelon = TRUE) foodtype = "dessert" /datum/bounty/item/botany/watermelon_holy name = "Holy Melons" - wanted_types = list(/obj/item/food/grown/holymelon = TRUE) + wanted_types = list(/obj/item/food/grown/melonlike/holymelon = TRUE) multiplier = 2 foodtype = "dessert" diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 300289e4f48..5bdedb34f81 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -66,7 +66,7 @@ contains = list( /obj/item/food/grown/citrus/lime, /obj/item/food/grown/citrus/orange, - /obj/item/food/grown/watermelon, + /obj/item/food/grown/melonlike/watermelon, /obj/item/food/grown/apple, /obj/item/food/grown/berries, /obj/item/food/grown/citrus/lemon, @@ -81,7 +81,7 @@ /obj/item/food/grown/corn, /obj/item/food/grown/tomato, /obj/item/food/grown/potato, - /obj/item/food/grown/carrot, + /obj/item/food/grown/carrotlike/carrot, /obj/item/food/grown/mushroom/chanterelle, /obj/item/food/grown/onion, /obj/item/food/grown/pumpkin, diff --git a/code/modules/events/holiday/easter.dm b/code/modules/events/holiday/easter.dm index 3fcbe9e7429..805dbf48223 100644 --- a/code/modules/events/holiday/easter.dm +++ b/code/modules/events/holiday/easter.dm @@ -98,7 +98,7 @@ var/static/list/prize_list = list(/obj/item/clothing/head/costume/bunnyhead, /obj/item/clothing/suit/costume/bunnysuit, /obj/item/storage/backpack/satchel/bunnysatchel, - /obj/item/food/grown/carrot, + /obj/item/food/grown/carrotlike/carrot, /obj/item/toy/balloon, /obj/item/toy/gun, /obj/item/toy/sword, diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm index a16fb6fc349..28379ab43f6 100644 --- a/code/modules/food_and_drinks/recipes/processor_recipes.dm +++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm @@ -114,7 +114,7 @@ added_foodtypes = FRIED /datum/food_processor_process/carrot - input = /obj/item/food/grown/carrot + input = /obj/item/food/grown/carrotlike/carrot output = /obj/item/food/carrotfries added_foodtypes = FRIED @@ -138,7 +138,7 @@ added_foodtypes = JUNKFOOD|FRIED /datum/food_processor_process/parsnip - input = /obj/item/food/grown/parsnip + input = /obj/item/food/grown/carrotlike/parsnip output = /obj/item/food/roastparsnip /datum/food_processor_process/mob/slime diff --git a/code/modules/food_and_drinks/recipes/soup_mixtures.dm b/code/modules/food_and_drinks/recipes/soup_mixtures.dm index e9f0aa096ea..805840c51bd 100644 --- a/code/modules/food_and_drinks/recipes/soup_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/soup_mixtures.dm @@ -302,7 +302,7 @@ /obj/item/soup_test_kit/Initialize(mapload) ..() new /obj/item/food/meatball(loc) - new /obj/item/food/grown/carrot(loc) + new /obj/item/food/grown/carrotlike/carrot(loc) new /obj/item/food/grown/potato(loc) new /obj/item/reagent_containers/cup/soup_pot(loc) return INITIALIZE_HINT_QDEL @@ -394,7 +394,7 @@ required_reagents = list(/datum/reagent/water = 50) required_ingredients = list( /obj/item/food/meatball = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/potato = 1, ) results = list( @@ -418,7 +418,7 @@ /datum/chemical_reaction/food/soup/vegetable_soup required_reagents = list(/datum/reagent/water = 50) required_ingredients = list( - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/corn = 1, /obj/item/food/grown/eggplant = 1, /obj/item/food/grown/potato = 1, @@ -978,7 +978,7 @@ /obj/item/food/grown/tomato = 1, /obj/item/food/meat/cutlet = 3, /obj/item/food/grown/potato = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/eggplant = 1, /obj/item/food/grown/mushroom = 1, ) @@ -1166,8 +1166,8 @@ required_reagents = list(/datum/reagent/water = 50) required_ingredients = list( /obj/item/food/grown/peas = 2, - /obj/item/food/grown/parsnip = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/parsnip = 1, + /obj/item/food/grown/carrotlike/carrot = 1, ) results = list( /datum/reagent/consumable/nutriment/soup/pea = 30, @@ -1250,7 +1250,7 @@ required_ingredients = list( /obj/item/food/boiledegg = 1, /obj/item/food/meat/cutlet = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/onion = 1, ) results = list( @@ -1307,7 +1307,7 @@ /datum/chemical_reaction/food/soup/chicken_noodle_soup required_reagents = list(/datum/reagent/water = 30) required_ingredients = list( - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/meat/slab/chicken = 1, /obj/item/food/spaghetti/boiledspaghetti = 1, ) @@ -1338,7 +1338,7 @@ required_ingredients = list( /obj/item/food/grown/corn = 1, /obj/item/food/grown/potato = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/meat/bacon = 1, ) results = list( @@ -1532,7 +1532,7 @@ required_ingredients = list( /obj/item/grown/cotton = 1, // Why are you buying clothes at the soup store?! /obj/item/food/grown/onion = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/eggplant = 1, /obj/item/food/oven_baked_corn = 1, ) @@ -1658,8 +1658,8 @@ required_ingredients = list( /obj/item/food/grown/oat = 1, /obj/item/food/grown/potato/sweet = 1, - /obj/item/food/grown/parsnip = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/parsnip = 1, + /obj/item/food/grown/carrotlike/carrot = 1, ) results = list( /datum/reagent/consumable/nutriment/soup/moth_oats = 30, @@ -2125,7 +2125,7 @@ /obj/item/food/grown/tomato = 1, /obj/item/food/grown/cabbage = 1, /obj/item/food/grown/onion = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/meat/cutlet = 1, ) results = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index cd6c9c9a059..d221d45632d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -7,7 +7,7 @@ name = "Carrot cake" reqs = list( /obj/item/food/cake/plain = 1, - /obj/item/food/grown/carrot = 2 + /obj/item/food/grown/carrotlike/carrot = 2 ) result = /obj/item/food/cake/carrot dish_category = DISH_CAKE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm index 2bb13fed0e8..ac1ea6102c3 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -49,7 +49,7 @@ /obj/item/reagent_containers/cup/bowl = 1, /obj/item/food/boiledrice = 1, /obj/item/food/boiledegg = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/corn = 1 ) result = /obj/item/food/salad/eggbowl diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm index 39661236e3f..f6cc5812c95 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm @@ -404,7 +404,7 @@ meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/watermelonslice - reqs = list(/obj/item/food/grown/watermelon = 1) + reqs = list(/obj/item/food/grown/melonlike/watermelon = 1) result = /obj/item/food/watermelonslice dish_category = DISH_SALAD meal_category = MEAL_SNACK @@ -712,12 +712,12 @@ meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/processor/carrotfries - reqs = list(/obj/item/food/grown/carrot = 1) + reqs = list(/obj/item/food/grown/carrotlike/carrot = 1) result = /obj/item/food/carrotfries meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/processor/roastparsnip - reqs = list(/obj/item/food/grown/parsnip = 1) + reqs = list(/obj/item/food/grown/carrotlike/parsnip = 1) result = /obj/item/food/roastparsnip meal_category = MEAL_SNACK diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm index 99fb61c1cff..2996e0e262e 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm @@ -25,7 +25,7 @@ /datum/crafting_recipe/food/shredded_lungs name = "Crispy shredded lung stirfry" reqs = list( - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/chili = 1, /obj/item/food/grown/onion = 1, /obj/item/organ/lungs = 1, @@ -179,7 +179,7 @@ reqs = list( /obj/item/food/grilled_moonfish = 1, /obj/item/food/grown/potato = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /datum/reagent/consumable/korta_milk = 5, /datum/reagent/consumable/ethanol/wine = 5 ) @@ -269,7 +269,7 @@ name = "Demit nizaya" reqs = list( /obj/item/food/spaghetti/nizaya = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/onion = 1, /obj/item/food/grown/eggplant = 1, /datum/reagent/consumable/korta_milk = 5, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm index d4ca73d3dee..ae1f8ba3d9b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm @@ -149,7 +149,7 @@ /obj/item/food/boiledrice = 1, /obj/item/food/onion_slice = 1, /obj/item/food/sausage/american = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/peas = 1, /datum/reagent/consumable/ketchup = 5, /datum/reagent/consumable/worcestershire = 2, @@ -226,7 +226,7 @@ reqs = list( /obj/item/food/spaghetti/boilednoodles = 1, /obj/item/food/grown/cabbage = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/onion_slice = 1, /obj/item/food/katsu_fillet = 1, /datum/reagent/consumable/worcestershire = 3, @@ -277,7 +277,7 @@ /datum/reagent/consumable/curry_powder = 3, /obj/item/food/meat/slab = 1, /obj/item/food/grown/onion = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/potato = 1, /obj/item/reagent_containers/cup/bowl = 1, ) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index ab60a0f5adf..ef9e43178a8 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -100,7 +100,7 @@ name = "Stewed soymeat" reqs = list( /obj/item/food/soydope = 2, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/stewedsoymeat diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 1ab13d864bd..7ab682cdc78 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -98,7 +98,7 @@ name ="Melon keg" reqs = list( /datum/reagent/consumable/ethanol/vodka = 25, - /obj/item/food/grown/holymelon = 1, + /obj/item/food/grown/melonlike/holymelon = 1, /obj/item/reagent_containers/cup/glass/bottle/vodka = 1 ) result = /obj/item/food/melonkeg @@ -323,7 +323,7 @@ /datum/crafting_recipe/food/springroll name = "Spring roll" reqs = list( - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/cucumber = 1, /obj/item/food/grown/chili = 1, /datum/reagent/consumable/rice = 10, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm index bac204550ce..d9878b67e6a 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm @@ -54,7 +54,7 @@ /obj/item/food/tofu = 1, /obj/item/food/grown/chili = 1, /obj/item/food/boiledrice = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/onion_slice = 1 ) result = /obj/item/food/squeaking_stir_fry @@ -237,7 +237,7 @@ /datum/reagent/consumable/vinegar = 2, /obj/item/food/breadslice/plain = 1, /obj/item/food/grilled_cheese = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/mothic_salad = 1, /obj/item/reagent_containers/cup/bowl = 1, ) @@ -250,7 +250,7 @@ reqs = list( /datum/reagent/consumable/nutriment/fat/oil/olive = 2, /datum/reagent/consumable/vinegar = 2, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/mothic_salad = 1, /obj/item/grown/cotton = 2, /obj/item/reagent_containers/cup/bowl = 1, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm index be0c994556e..f06b21b7810 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm @@ -48,7 +48,7 @@ reqs = list( /obj/item/food/flatdough = 1, /obj/item/food/grown/eggplant = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/corn = 1, /obj/item/food/grown/tomato = 1, /obj/item/food/cheese/wedge = 1, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 36cd993b1f6..c6ac7a78eaa 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -38,7 +38,7 @@ /datum/crafting_recipe/food/melonfruitbowl name ="Melon fruit bowl" reqs = list( - /obj/item/food/grown/watermelon = 1, + /obj/item/food/grown/melonlike/watermelon = 1, /obj/item/food/grown/apple = 1, /obj/item/food/grown/citrus/orange = 1, /obj/item/food/grown/citrus/lemon = 1, @@ -101,7 +101,7 @@ name = "Kale salad" reqs = list( /obj/item/reagent_containers/cup/bowl = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/onion_slice/red = 2, /obj/item/food/grown/cabbage = 1, /datum/reagent/consumable/nutriment/fat/oil/olive = 2, @@ -141,7 +141,7 @@ reqs = list( /obj/item/reagent_containers/cup/bowl = 1, /obj/item/food/grown/cabbage = 2, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/peas = 1, /datum/reagent/consumable/nutriment/fat/oil/olive = 5, ) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm index fbc72e24598..e4b1f692507 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm @@ -67,7 +67,7 @@ reqs = list( /obj/item/food/seaweedsheet = 1, /obj/item/food/boiledrice = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/potato = 1 ) result = /obj/item/food/vegetariansushiroll diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm index a04b21e3abf..990f423b8f6 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm @@ -60,7 +60,7 @@ /obj/item/food/spaghetti/boiledspaghetti = 1, /obj/item/food/meat/cutlet = 1, /obj/item/food/grown/cabbage = 2, - /obj/item/food/grown/carrot = 1 + /obj/item/food/grown/carrotlike/carrot = 1 ) result = /obj/item/food/spaghetti/chowmein dish_category = DISH_NOODLES @@ -138,7 +138,7 @@ /obj/item/food/spaghetti/boiledspaghetti = 1, /obj/item/food/meat/cutlet = 2, /obj/item/food/grown/potato = 1, - /obj/item/food/grown/carrot = 1, + /obj/item/food/grown/carrotlike/carrot = 1, /obj/item/food/grown/peas = 1, ) result = /obj/item/food/spaghetti/nikujaga diff --git a/code/modules/hydroponics/beekeeping/bee_smoker.dm b/code/modules/hydroponics/beekeeping/bee_smoker.dm index d54cc6d99bc..3be9313ce29 100644 --- a/code/modules/hydroponics/beekeeping/bee_smoker.dm +++ b/code/modules/hydroponics/beekeeping/bee_smoker.dm @@ -75,23 +75,23 @@ return . -/obj/item/bee_smoker/attackby(obj/item/herb, mob/living/carbon/human/user, list/modifiers, list/attack_modifiers) - . = ..() - if(.) - return - if(!istype(herb, /obj/item/food/grown/cannabis)) - return - var/obj/item/food/grown/cannabis/weed = herb +/obj/item/bee_smoker/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/food/grown/cannabis)) + return NONE + + var/obj/item/food/grown/cannabis/weed = tool if(isnull(weed.wine_power)) - return TRUE + return ITEM_INTERACT_BLOCKING + if(current_herb_fuel == max_herb_fuel) user.balloon_alert(user, "already at maximum fuel!") - return TRUE + return ITEM_INTERACT_BLOCKING + var/fuel_worth = weed.wine_power * WEED_WINE_MULTIPLIER current_herb_fuel = (current_herb_fuel + fuel_worth > max_herb_fuel) ? max_herb_fuel : current_herb_fuel + fuel_worth user.balloon_alert(user, "fuel added") qdel(weed) - return TRUE + return ITEM_INTERACT_SUCCESS /obj/item/bee_smoker/process(seconds_per_tick) current_herb_fuel-- diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index 7d834015838..de5b5aa5ab0 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -146,24 +146,26 @@ default_unfasten_wrench(user, tool) return ITEM_INTERACT_SUCCESS -/obj/structure/beebox/attackby(obj/item/item, mob/user, list/modifiers, list/attack_modifiers) - if(istype(item, /obj/item/honey_frame)) - var/obj/item/honey_frame/frame = item - if(honey_frames.len < BEEBOX_MAX_FRAMES) - visible_message(span_notice("[user] adds a frame to the apiary.")) - if(!user.transferItemToLoc(frame, src)) - return - honey_frames += frame - else +/obj/structure/beebox/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/honey_frame)) + var/obj/item/honey_frame/frame = tool + if(honey_frames.len == BEEBOX_MAX_FRAMES) to_chat(user, span_warning("There's no room for any more frames in the apiary!")) - return + return ITEM_INTERACT_BLOCKING - if(istype(item, /obj/item/queen_bee)) + if(!user.transferItemToLoc(frame, src)) + return ITEM_INTERACT_BLOCKING + + visible_message(span_notice("[user] adds a frame to the apiary.")) + honey_frames += frame + return ITEM_INTERACT_SUCCESS + + if(istype(tool, /obj/item/queen_bee)) if(queen_bee) to_chat(user, span_warning("This hive already has a queen!")) - return + return ITEM_INTERACT_BLOCKING - var/obj/item/queen_bee/new_queen = item + var/obj/item/queen_bee/new_queen = tool user.temporarilyRemoveItemFromInventory(new_queen) bees += new_queen.queen @@ -171,25 +173,24 @@ new_queen.queen.forceMove(src) - if(queen_bee) - visible_message(span_notice("[user] sets [queen_bee] down inside the apiary, making it their new home.")) - var/relocated = 0 - for(var/mob/living/basic/bee/relocating_bee as anything in bees) - if(relocating_bee.reagent_incompatible(queen_bee)) - bees -= relocating_bee - relocating_bee.beehome = null - if(relocating_bee.loc == src) - relocating_bee.forceMove(drop_location()) - relocated++ - if(relocated) - to_chat(user, span_warning("This queen has a different reagent to some of the bees who live here, those bees will not return to this apiary!")) - - else + if(!queen_bee) to_chat(user, span_warning("The queen bee disappeared! Disappearing bees have been in the news lately...")) + return ITEM_INTERACT_BLOCKING - return + visible_message(span_notice("[user] sets [queen_bee] down inside the apiary, making it their new home.")) + var/relocated = 0 + for(var/mob/living/basic/bee/relocating_bee as anything in bees) + if(relocating_bee.reagent_incompatible(queen_bee)) + bees -= relocating_bee + relocating_bee.beehome = null + if(relocating_bee.loc == src) + relocating_bee.forceMove(drop_location()) + relocated++ + if(relocated) + to_chat(user, span_warning("This queen has a different reagent to some of the bees who live here, those bees will not return to this apiary!")) + return ITEM_INTERACT_SUCCESS - ..() + return NONE /obj/structure/beebox/interact(mob/user) . = ..() diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index cd8ecb5ef5e..22623aa7ee2 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -53,13 +53,14 @@ /obj/item/grown/corncob/grind_results() return list(/datum/reagent/cellulose = 10) -/obj/item/grown/corncob/attackby(obj/item/grown/W, mob/user, list/modifiers, list/attack_modifiers) - if(W.get_sharpness()) - to_chat(user, span_notice("You use [W] to fashion a pipe out of the corn cob!")) - new /obj/item/cigarette/pipe/cobpipe (user.loc) - qdel(src) - else - return ..() +/obj/item/grown/corncob/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!tool.get_sharpness()) + return NONE + + to_chat(user, span_notice("You use [tool] to fashion a pipe out of the corn cob!")) + new /obj/item/cigarette/pipe/cobpipe (user.loc) + qdel(src) + return ITEM_INTERACT_SUCCESS // Snapcorn /obj/item/seeds/corn/snapcorn diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index c8f1bb01004..66348d6a3a7 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -1,3 +1,62 @@ +/obj/item/food/grown/melonlike + seed = /obj/item/seeds/watermelon + name = "melon?" + desc = "You felt like this was a melon, but it definitely isn't. You should tell somebody about this." + icon_state = "watermelon" + inhand_icon_state = "watermelon" + abstract_type = /obj/item/food/grown/melonlike + /// chestplate made by hollowing out the melon + var/chestplate_type = null + /// fire-resistant version of above + var/fire_resistant_chestplate_type = null + /// headgear received by hollowing out the melon + var/helmet_type = null + /// fire-resistant version of above + var/fire_resistant_helmet_type = null + /// pulp received by hollowing out the melon + var/pulp_type = null + /// slices received by cutting the melon + var/slice_type = null + +/obj/item/food/grown/melonlike/make_processable() + AddElement(/datum/element/processable, TOOL_KNIFE, slice_type, 5, 20, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) + +/obj/item/food/grown/melonlike/make_dryable() + return //No drying + +/obj/item/food/grown/melonlike/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/kitchen/spoon)) + return NONE + + var/pulp_count = 1 + if(seed) + pulp_count += round(seed.potency / 25) + + user.balloon_alert(user, "scooped out [pulp_count] pulp(s)") + for(var/i in 1 to pulp_count) + new pulp_type(user.loc) + + /// The piece of armour melon turns into; either chetsplate or helmet + var/obj/item/clothing/received_armor + if (prob(max(0, seed.potency - 50) / 50)) + if(seed.resistance_flags & FIRE_PROOF) + received_armor = new fire_resistant_chestplate_type + else + received_armor = new chestplate_type + to_chat(user, span_notice("You hollow \the [src] into a helmet with [tool].")) + else + if(seed.resistance_flags & FIRE_PROOF) + received_armor = new fire_resistant_helmet_type + else + received_armor = new helmet_type + to_chat(user, span_notice("You hollow \the [src] into a chestplate with [tool].")) + + remove_item_from_storage(user) + qdel(src) + user.put_in_hands(received_armor) + return ITEM_INTERACT_SUCCESS + + // Watermelon /obj/item/seeds/watermelon name = "watermelon seed pack" @@ -5,7 +64,7 @@ icon_state = "seed-watermelon" species = "watermelon" plantname = "Watermelon Vines" - product = /obj/item/food/grown/watermelon + product = /obj/item/food/grown/melonlike/watermelon lifespan = 50 endurance = 40 instability = 20 @@ -22,7 +81,7 @@ qdel(src) return MANUAL_SUICIDE -/obj/item/food/grown/watermelon +/obj/item/food/grown/melonlike/watermelon seed = /obj/item/seeds/watermelon name = "watermelon" desc = "It's full of watery goodness." @@ -33,47 +92,16 @@ foodtypes = FRUIT wine_power = 40 -/obj/item/food/grown/watermelon/juice_typepath() + fire_resistant_chestplate_type = /obj/item/clothing/suit/armor/durability/watermelon/fire_resist + chestplate_type = /obj/item/clothing/suit/armor/durability/watermelon + fire_resistant_helmet_type = /obj/item/clothing/head/helmet/durability/watermelon/fire_resist + helmet_type = /obj/item/clothing/head/helmet/durability/watermelon + pulp_type = /obj/item/food/watermelonmush + slice_type = /obj/item/food/watermelonslice + +/obj/item/food/grown/melonlike/watermelon/juice_typepath() return /datum/reagent/consumable/watermelonjuice -/obj/item/food/grown/watermelon/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/watermelonslice, 5, 20, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) - -/obj/item/food/grown/watermelon/make_dryable() - return //No drying - -/obj/item/food/grown/watermelon/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - if(!istype(I, /obj/item/kitchen/spoon)) - return ..() - - var/melon_pulp_count = 1 - if(seed) - melon_pulp_count += round(seed.potency / 25) - - user.balloon_alert(user, "scooped out [melon_pulp_count] pulp(s)") - for(var/i in 1 to melon_pulp_count) - new /obj/item/food/watermelonmush(user.loc) - - /// The piece of armour melon turns into; either chetsplate or helmet - var/obj/item/clothing/melon_armour - /// Chance for the armour to be a chestplate instead of the helmet - var/melon_chestplate_chance = (max(0, seed.potency - 50) / 50) - if (prob(melon_chestplate_chance)) - if(seed.resistance_flags & FIRE_PROOF) - melon_armour = new /obj/item/clothing/suit/armor/durability/watermelon/fire_resist - else - melon_armour = new /obj/item/clothing/suit/armor/durability/watermelon - to_chat(user, span_notice("You hollow the melon into a helmet with [I].")) - else - if(seed.resistance_flags & FIRE_PROOF) - melon_armour = new /obj/item/clothing/head/helmet/durability/watermelon/fire_resist - else - melon_armour = new /obj/item/clothing/head/helmet/durability/watermelon - to_chat(user, span_notice("You hollow the melon into a chestplate with [I].")) - remove_item_from_storage(user) - qdel(src) - user.put_in_hands(melon_armour) - // Holymelon /obj/item/seeds/watermelon/holy name = "holymelon seed pack" @@ -81,14 +109,14 @@ icon_state = "seed-holymelon" species = "holymelon" plantname = "Holy Melon Vines" - product = /obj/item/food/grown/holymelon + product = /obj/item/food/grown/melonlike/holymelon genes = list(/datum/plant_gene/trait/glow/yellow, /datum/plant_gene/trait/anti_magic) mutatelist = null reagents_add = list(/datum/reagent/water/holywater = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = PLANT_MODERATELY_RARE graft_gene = /datum/plant_gene/trait/glow/yellow -/obj/item/food/grown/holymelon +/obj/item/food/grown/melonlike/holymelon seed = /obj/item/seeds/watermelon/holy name = "holymelon" desc = "The water within this melon has been blessed by some deity that's particularly fond of watermelon." @@ -100,58 +128,26 @@ wine_power = 70 //Water to wine, baby. wine_flavor = "divinity" -/obj/item/food/grown/holymelon/juice_typepath() + fire_resistant_chestplate_type = /obj/item/clothing/suit/armor/durability/holymelon/fire_resist + chestplate_type = /obj/item/clothing/suit/armor/durability/holymelon + fire_resistant_helmet_type = /obj/item/clothing/head/helmet/durability/holymelon/fire_resist + helmet_type = /obj/item/clothing/head/helmet/durability/holymelon + pulp_type = /obj/item/food/holymelonmush + slice_type = /obj/item/food/holymelonslice + +/obj/item/food/grown/melonlike/holymelon/juice_typepath() return /datum/reagent/water/holywater -/obj/item/food/grown/holymelon/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/holymelonslice, 5, 20, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) - -/obj/item/food/grown/holymelon/make_dryable() - return //No drying - -/obj/item/food/grown/holymelon/make_edible() +/obj/item/food/grown/melonlike/holymelon/make_edible() . = ..() AddComponentFrom(SOURCE_EDIBLE_INNATE, /datum/component/edible, check_liked = CALLBACK(src, PROC_REF(check_holyness))) - -/obj/item/food/grown/holymelon/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - if(!istype(I, /obj/item/kitchen/spoon)) - return ..() - - var/holymelon_pulp_count = 1 - if(seed) - holymelon_pulp_count += round(seed.potency / 25) - - user.balloon_alert(user, "scooped out [holymelon_pulp_count] pulp(s)") - for(var/i in 1 to holymelon_pulp_count) - new /obj/item/food/holymelonmush(user.loc) - - /// The piece of armour holymelon turns into; either chetsplate or helmet - var/obj/item/clothing/holymelon_armour - /// Chance for the armour to be a chestplate instead of the helmet - var/holymelon_chestplate_chance = (max(0, seed.potency - 50) / 50) - if (prob(holymelon_chestplate_chance)) - if(seed.resistance_flags & FIRE_PROOF) - holymelon_armour = new /obj/item/clothing/suit/armor/durability/holymelon/fire_resist - else - holymelon_armour = new /obj/item/clothing/suit/armor/durability/holymelon - to_chat(user, span_notice("You hollow the holymelon into a helmet with [I].")) - else - if(seed.resistance_flags & FIRE_PROOF) - holymelon_armour = new /obj/item/clothing/head/helmet/durability/holymelon/fire_resist - else - holymelon_armour = new /obj/item/clothing/head/helmet/durability/holymelon - to_chat(user, span_notice("You hollow the holymelon into a chestplate with [I].")) - remove_item_from_storage(user) - qdel(src) - user.put_in_hands(holymelon_armour) - /* * Callback to be used with the edible component. * Checks whether or not the person eating the holymelon * is a holy_role (chaplain), as chaplains love holymelons. */ -/obj/item/food/grown/holymelon/proc/check_holyness(mob/mob_eating) +/obj/item/food/grown/melonlike/holymelon/proc/check_holyness(mob/mob_eating) if(!ishuman(mob_eating)) return var/mob/living/carbon/human/holy_person = mob_eating @@ -168,7 +164,7 @@ icon_state = "seed-barrelmelon" species = "barrelmelon" plantname = "Barrel Melon Vines" - product = /obj/item/food/grown/barrelmelon + product = /obj/item/food/grown/melonlike/barrelmelon genes = list(/datum/plant_gene/trait/brewing) mutatelist = null reagents_add = list(/datum/reagent/consumable/ethanol/ale = 0.2, /datum/reagent/consumable/nutriment = 0.1) @@ -176,7 +172,7 @@ graft_gene = /datum/plant_gene/trait/brewing /// Barrel melon Fruit -/obj/item/food/grown/barrelmelon +/obj/item/food/grown/melonlike/barrelmelon seed = /obj/item/seeds/watermelon/barrel name = "barrelmelon" desc = "The nutriments within this melon have been compressed and fermented into rich alcohol." @@ -184,38 +180,10 @@ inhand_icon_state = "barrelmelon" distill_reagent = /datum/reagent/medicine/antihol //You can call it a integer overflow. -/obj/item/food/grown/barrelmelon/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/barrelmelonslice, 5, 20, screentip_verb = "Chop") + fire_resistant_chestplate_type = /obj/item/clothing/suit/armor/durability/barrelmelon/fire_resist + chestplate_type = /obj/item/clothing/suit/armor/durability/barrelmelon + fire_resistant_helmet_type = /obj/item/clothing/head/helmet/durability/barrelmelon/fire_resist + helmet_type = /obj/item/clothing/head/helmet/durability/barrelmelon + pulp_type = /obj/item/food/barrelmelonmush + slice_type = /obj/item/food/barrelmelonslice -/obj/item/food/grown/barrelmelon/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - if(!istype(I, /obj/item/kitchen/spoon)) - return ..() - - var/barrelmelon_pulp_count = 1 - if(seed) - barrelmelon_pulp_count += round(seed.potency / 25) - - user.balloon_alert(user, "scooped out [barrelmelon_pulp_count] pulp(s)") - for(var/i in 1 to barrelmelon_pulp_count) - new /obj/item/food/barrelmelonmush(user.loc) - - /// The piece of armour barrelmelon turns into; either chetsplate or helmet - var/obj/item/clothing/barrelmelon_armour - /// Chance for the armour to be a chestplate instead of the helmet - var/barrelmelon_chestplate_chance = (max(0, seed.potency - 50) / 50) - if (prob(barrelmelon_chestplate_chance)) - if(seed.resistance_flags & FIRE_PROOF) - barrelmelon_armour = new /obj/item/clothing/suit/armor/durability/barrelmelon/fire_resist - else - barrelmelon_armour = new /obj/item/clothing/suit/armor/durability/barrelmelon - to_chat(user, span_notice("You hollow the barrelmelon into a helmet with [I].")) - else - if(seed.resistance_flags & FIRE_PROOF) - barrelmelon_armour = new /obj/item/clothing/head/helmet/durability/barrelmelon/fire_resist - else - barrelmelon_armour = new /obj/item/clothing/head/helmet/durability/barrelmelon - to_chat(user, span_notice("You hollow the barrelmelon into a chestplate with [I].")) - - remove_item_from_storage(user) - qdel(src) - user.put_in_hands(barrelmelon_armour) diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index d465e4dad90..e999e3b6653 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -195,19 +195,21 @@ desc = "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty!" icon_state = "chanterelle" -/obj/item/food/grown/mushroom/chanterelle/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - if(!istype(I, /obj/item/kitchen/spoon)) - return ..() - if(seed.potency < 95) - return ..() +/obj/item/food/grown/mushroom/chanterelle/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/kitchen/spoon)) + return NONE - to_chat(user, span_notice("You hollow up the chanterelle with [I].")) + if(seed.potency < 95) + return ITEM_INTERACT_BLOCKING + + to_chat(user, span_notice("You hollow out the chanterelle with [tool].")) remove_item_from_storage(user) if(seed.resistance_flags & FIRE_PROOF) - user.put_in_hands(new /obj/item/clothing/head/wizard/chanterelle/fr()) + user.put_in_hands(new /obj/item/clothing/head/wizard/chanterelle/fireproof()) else user.put_in_hands(new /obj/item/clothing/head/wizard/chanterelle()) qdel(src) + return ITEM_INTERACT_SUCCESS //Jupiter Cup /obj/item/seeds/chanter/jupitercup diff --git a/code/modules/hydroponics/grown/potato.dm b/code/modules/hydroponics/grown/potato.dm index 59da5edd120..ffd0509ccd0 100644 --- a/code/modules/hydroponics/grown/potato.dm +++ b/code/modules/hydroponics/grown/potato.dm @@ -39,15 +39,15 @@ icon_state = "potato_wedges" bite_consumption_mod = 100 -/obj/item/food/grown/potato/attackby(obj/item/W, mob/user, list/modifiers, list/attack_modifiers) - if(W.get_sharpness()) - to_chat(user, span_notice("You cut the potato into wedges with [W].")) - var/obj/item/food/grown/potato/wedges/Wedges = new /obj/item/food/grown/potato/wedges - remove_item_from_storage(user) - qdel(src) - user.put_in_hands(Wedges) - else - return ..() +/obj/item/food/grown/potato/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!tool.get_sharpness()) + return NONE + to_chat(user, span_notice("You cut the potato into wedges with [tool].")) + var/obj/item/food/grown/potato/wedges/slices = new /obj/item/food/grown/potato/wedges + remove_item_from_storage(user) + qdel(src) + user.put_in_hands(slices) + return ITEM_INTERACT_SUCCESS // Sweet Potato diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm index 0a388b9be6e..91aff91552d 100644 --- a/code/modules/hydroponics/grown/pumpkin.dm +++ b/code/modules/hydroponics/grown/pumpkin.dm @@ -31,14 +31,14 @@ /obj/item/food/grown/pumpkin/juice_typepath() return /datum/reagent/consumable/pumpkinjuice -/obj/item/food/grown/pumpkin/attackby(obj/item/W as obj, mob/user as mob, list/modifiers, list/attack_modifiers) - if(W.get_sharpness()) - user.show_message(span_notice("You carve a face into [src]!"), MSG_VISUAL) - new carved_type(user.loc) - qdel(src) - return - else - return ..() +/obj/item/food/grown/pumpkin/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!tool.get_sharpness()) + return NONE + + to_chat(user, span_notice("You carve a face into [src]!")) + new carved_type(user.loc) + qdel(src) + return ITEM_INTERACT_SUCCESS // Blumpkin /obj/item/seeds/pumpkin/blumpkin diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm index 9cb90554cef..fd5de5d0dfc 100644 --- a/code/modules/hydroponics/grown/root.dm +++ b/code/modules/hydroponics/grown/root.dm @@ -1,3 +1,37 @@ +/obj/item/food/grown/carrotlike + seed = /obj/item/seeds/carrot + name = "carrot?" + desc = "What is this? It's not a carrot, that's for sure. You should tell someone about this." + icon_state = "carrot" + abstract_type = /obj/item/food/grown/carrotlike + /// What do we get from inadequately sharpening this? + var/shiv_type = null + /// What do we get from adequately sharpening this? + var/blade_type = null + /// What do we call our new weapon? + var/blade_string = null + /// What do we subtract from potency when rolling for the better blade? + var/potency_minimum = 50 + +/obj/item/food/grown/carrotlike/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!tool.get_sharpness()) + return NONE + + /// The blade our "carrot" will turn into once sharpened + var/obj/item/blade + /// Chance for it to become better than a shiv + var/sword_chance = (max(0, seed.potency - potency_minimum) / 50) + if (prob(sword_chance)) + blade = new blade_type + to_chat(user, span_notice("You sharpen \the [src] into a [blade_string] with [tool].")) + else + blade = new shiv_type + to_chat(user, span_notice("You sharpen \the [src] into a shiv with [tool].")) + remove_item_from_storage(user) + qdel(src) + user.put_in_hands(blade) + return ITEM_INTERACT_SUCCESS + // Carrot /obj/item/seeds/carrot name = "carrot seed pack" @@ -5,7 +39,7 @@ icon_state = "seed-carrot" species = "carrot" plantname = "Carrots" - product = /obj/item/food/grown/carrot + product = /obj/item/food/grown/carrotlike/carrot maturation = 10 production = 1 yield = 5 @@ -16,7 +50,7 @@ reagents_add = list(/datum/reagent/medicine/oculine = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05) genes = list(/datum/plant_gene/trait/soil_lover) -/obj/item/food/grown/carrot +/obj/item/food/grown/carrotlike/carrot seed = /obj/item/seeds/carrot name = "carrot" desc = "It's good for the eyes!" @@ -25,27 +59,13 @@ foodtypes = VEGETABLES wine_power = 30 -/obj/item/food/grown/carrot/juice_typepath() + shiv_type = /obj/item/knife/shiv/carrot + blade_type = /obj/item/claymore/carrot + blade_string = "sword" + +/obj/item/food/grown/carrotlike/carrot/juice_typepath() return /datum/reagent/consumable/carrotjuice -/obj/item/food/grown/carrot/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - if(!I.get_sharpness()) - return ..() - - /// The blade carrot will turn into once sharpened - var/obj/item/carrot_blade - /// Chance for it to become a sword rather than a shiv - var/carrot_sword_chance = (max(0, seed.potency - 50) / 50) - if (prob(carrot_sword_chance)) - carrot_blade = new /obj/item/claymore/carrot - to_chat(user, span_notice("You sharpen the carrot into a sword with [I].")) - else - carrot_blade = new /obj/item/knife/shiv/carrot - to_chat(user, span_notice("You sharpen the carrot into a shiv with [I].")) - remove_item_from_storage(user) - qdel(src) - user.put_in_hands(carrot_blade) - // Parsnip /obj/item/seeds/carrot/parsnip name = "parsnip seed pack" @@ -53,12 +73,12 @@ icon_state = "seed-parsnip" species = "parsnip" plantname = "Parsnip" - product = /obj/item/food/grown/parsnip + product = /obj/item/food/grown/carrotlike/parsnip icon_dead = "carrot-dead" mutatelist = null reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/aluminium = 0.05) -/obj/item/food/grown/parsnip +/obj/item/food/grown/carrotlike/parsnip seed = /obj/item/seeds/carrot/parsnip name = "parsnip" desc = "Closely related to carrots." @@ -66,28 +86,13 @@ foodtypes = VEGETABLES wine_power = 35 -/obj/item/food/grown/parsnip/juice_typepath() + shiv_type = /obj/item/knife/shiv/parsnip + blade_type = /obj/item/melee/parsnip_sabre + blade_string = "sabre" + +/obj/item/food/grown/carrotlike/parsnip/juice_typepath() return /datum/reagent/consumable/parsnipjuice -/obj/item/food/grown/parsnip/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - if(!I.get_sharpness()) - return ..() - - /// The blade parsnip will turn into once sharpened - var/obj/item/parsnip_blade - /// Chance for it to become a sabre rather than a shiv - var/parsnip_sabre_chance = (max(0, seed.potency - 50) / 50) - if (prob(parsnip_sabre_chance)) - parsnip_blade = new /obj/item/melee/parsnip_sabre - to_chat(user, span_notice("You sharpen the parsnip into a sabre with [I].")) - else - parsnip_blade = new /obj/item/knife/shiv/parsnip - to_chat(user, span_notice("You sharpen the parsnip into a shiv with [I].")) - remove_item_from_storage(user) - qdel(src) - user.put_in_hands(parsnip_blade) - - // Cahn'root /obj/item/seeds/carrot/cahnroot name = "cahn'root seed pack" @@ -95,7 +100,7 @@ icon_state = "seed-cahn'root" species = "cahn'root" plantname = "Cahn'root" - product = /obj/item/food/grown/cahnroot + product = /obj/item/food/grown/carrotlike/cahnroot genes = list(/datum/plant_gene/trait/soil_lover, /datum/plant_gene/trait/plant_type/weed_hardy) endurance = 50 instability = 10 @@ -105,7 +110,7 @@ rarity = 10 graft_gene = /datum/plant_gene/trait/plant_type/weed_hardy -/obj/item/food/grown/cahnroot +/obj/item/food/grown/carrotlike/cahnroot seed = /obj/item/seeds/carrot/cahnroot name = "cahn'root" desc = "Heavily modified version of terran carrot, originally made to survive the scarciest of environments by an enterprising scientist of Moth Flotilla, Cahn'Mang." @@ -114,27 +119,14 @@ tastes = list("sweet dirt" = 1) distill_reagent = /datum/reagent/consumable/rootbeer -/obj/item/food/grown/cahnroot/juice_typepath() + shiv_type = /obj/item/knife/shiv/root + blade_type = /obj/item/knife/combat/root + blade_string = "dagger" + potency_minimum = 25 + +/obj/item/food/grown/carrotlike/cahnroot/juice_typepath() return null -/obj/item/food/grown/cahnroot/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - if(!I.get_sharpness()) - return ..() - - /// The blade cahn'root will turn into once sharpened - var/obj/item/knife/root_blade - /// Chance for it to become a dagger rather than a shiv - var/root_dagger_chance = (max(0, seed.potency - 25) / 50) - if (prob(root_dagger_chance)) - root_blade = new /obj/item/knife/combat/root - to_chat(user, span_notice("You sharpen the cahn'root into a dagger with [I].")) - else - root_blade = new /obj/item/knife/shiv/root - to_chat(user, span_notice("You sharpen the cahn'root into a shiv with [I].")) - remove_item_from_storage(user) - qdel(src) - user.put_in_hands(root_blade) - // White-Beet /obj/item/seeds/whitebeet name = "white-beet seed pack" diff --git a/code/modules/mob/living/basic/farm_animals/pig.dm b/code/modules/mob/living/basic/farm_animals/pig.dm index b114dd3c923..39008cab867 100644 --- a/code/modules/mob/living/basic/farm_animals/pig.dm +++ b/code/modules/mob/living/basic/farm_animals/pig.dm @@ -50,7 +50,7 @@ ///wrapper for the tameable component addition so you can have non tamable cow subtypes /mob/living/basic/pig/proc/make_tameable() - var/list/food_types = string_list(list(/obj/item/food/grown/carrot)) + var/list/food_types = string_list(list(/obj/item/food/grown/carrotlike/carrot)) AddComponent(/datum/component/tameable, food_types = food_types, tame_chance = 25, bonus_tame_chance = 15) /mob/living/basic/pig/tamed(mob/living/tamer, atom/food) diff --git a/code/modules/mob/living/basic/farm_animals/rabbit.dm b/code/modules/mob/living/basic/farm_animals/rabbit.dm index ca09405ca23..00b97458be9 100644 --- a/code/modules/mob/living/basic/farm_animals/rabbit.dm +++ b/code/modules/mob/living/basic/farm_animals/rabbit.dm @@ -91,7 +91,7 @@ var/list/feed_messages = list("[p_they()] nibbles happily.", "[p_they()] noms happily.") AddComponent(/datum/component/egg_layer,\ /obj/item/surprise_egg,\ - list(/obj/item/food/grown/carrot),\ + list(/obj/item/food/grown/carrotlike/carrot),\ feed_messages,\ list("hides an egg.","scampers around suspiciously.","begins making a huge racket.","begins shuffling."),\ initial_egg_amount,\ diff --git a/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm b/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm index 7b2846d4272..35a9e4dafe4 100644 --- a/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm +++ b/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm @@ -58,7 +58,7 @@ grant_actions_by_list(innate_actions) AddElement(/datum/element/simple_flying) - var/list/food_types = string_list(list(/obj/item/food/grown/carrot)) + var/list/food_types = string_list(list(/obj/item/food/grown/carrotlike/carrot)) AddComponent(/datum/component/tameable, food_types = food_types, tame_chance = 100) ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) on_hit_overlay = mutable_appearance(icon, "[icon_state]_crying") @@ -71,7 +71,7 @@ if(!proximity_flag) return - if(istype(attack_target, /obj/item/food/grown/carrot)) + if(istype(attack_target, /obj/item/food/grown/carrotlike/carrot)) adjust_brute_loss(-5) to_chat(src, span_warning("You eat [attack_target]! It restores some health!")) qdel(attack_target) diff --git a/code/modules/mob/living/basic/space_fauna/eyeball/eyeball_ai_subtree.dm b/code/modules/mob/living/basic/space_fauna/eyeball/eyeball_ai_subtree.dm index d6e912f1ce6..e24abb62b5e 100644 --- a/code/modules/mob/living/basic/space_fauna/eyeball/eyeball_ai_subtree.dm +++ b/code/modules/mob/living/basic/space_fauna/eyeball/eyeball_ai_subtree.dm @@ -49,5 +49,5 @@ /datum/ai_planning_subtree/find_and_hunt_target/carrot target_key = BB_LOW_PRIORITY_HUNTING_TARGET hunting_behavior = /datum/ai_behavior/hunt_target/interact_with_target/carrot - hunt_targets = list(/obj/item/food/grown/carrot) + hunt_targets = list(/obj/item/food/grown/carrotlike/carrot) hunt_range = 6 diff --git a/tools/UpdatePaths/Scripts/96795_update_plant_refinement.txt b/tools/UpdatePaths/Scripts/96795_update_plant_refinement.txt new file mode 100644 index 00000000000..02dba5037bb --- /dev/null +++ b/tools/UpdatePaths/Scripts/96795_update_plant_refinement.txt @@ -0,0 +1,7 @@ +/obj/item/food/grown/watermelon : /obj/item/food/grown/melonlike/watermelon{@OLD} +/obj/item/food/grown/holymelon : /obj/item/food/grown/melonlike/holymelon{@OLD} +/obj/item/food/grown/barrelmelon : /obj/item/food/grown/melonlike/barrelmelon{@OLD} + +/obj/item/food/grown/carrot : /obj/item/food/grown/carrotlike/carrot{@OLD} +/obj/item/food/grown/parsnip : /obj/item/food/grown/carrotlike/parsnip{@OLD} +/obj/item/food/grown/cahnroot : /obj/item/food/grown/carrotlike/cahnroot{@OLD}