Not as scary as it looks attackby() to item_interaction() (#96795)

This commit is contained in:
Leland Kemble
2026-07-12 13:45:35 +02:00
committed by GitHub
parent 55e1b1fe0f
commit f29fccfc2c
52 changed files with 329 additions and 358 deletions
@@ -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
},
@@ -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,
@@ -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,
+1 -1
View File
@@ -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
@@ -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)
@@ -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,
+6 -6
View File
@@ -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,
+4 -4
View File
@@ -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
},
@@ -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
},
@@ -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" = (
+2 -2
View File
@@ -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
@@ -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,
+1 -1
View File
@@ -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,
+1 -1
View File
@@ -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" = (
+1 -1
View File
@@ -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)
@@ -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,
+4 -4
View File
@@ -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
},
+1 -1
View File
@@ -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
@@ -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"
@@ -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,
@@ -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)
@@ -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
+2 -2
View File
@@ -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"
+2 -2
View File
@@ -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,
+1 -1
View File
@@ -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,
@@ -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
@@ -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(
@@ -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
@@ -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
@@ -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
@@ -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,
@@ -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,
)
@@ -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
@@ -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,
@@ -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,
@@ -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,
@@ -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,
)
@@ -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
@@ -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
@@ -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--
+30 -29
View File
@@ -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)
. = ..()
+8 -7
View File
@@ -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
+89 -121
View File
@@ -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)
+9 -7
View File
@@ -195,19 +195,21 @@
desc = "<I>Cantharellus Cibarius</I>: 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
+9 -9
View File
@@ -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
+8 -8
View File
@@ -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
+56 -64
View File
@@ -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"
@@ -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)
@@ -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,\
@@ -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)
@@ -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
@@ -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}