From 69e9ce7a92f3ce4ee5cc69182fe28d4fe9ba024b Mon Sep 17 00:00:00 2001 From: Colfer Date: Fri, 14 Nov 2025 12:15:47 -0600 Subject: [PATCH] Alraune fruits, buildable fey grass, & soil (#7401) --- .../content/factions/fey_forest/fey_flora.dm | 70 +++++++++++++++++++ .../objects/items/stacks/tiles/tile_types.dm | 7 ++ code/global.dm | 37 +++++++++- code/modules/hydroponics/trays/tray_soil.dm | 4 ++ 4 files changed, 117 insertions(+), 1 deletion(-) diff --git a/code/game/content/factions/fey_forest/fey_flora.dm b/code/game/content/factions/fey_forest/fey_flora.dm index 05979d5bb5a..76d076c82ef 100644 --- a/code/game/content/factions/fey_forest/fey_flora.dm +++ b/code/game/content/factions/fey_forest/fey_flora.dm @@ -130,6 +130,75 @@ desc = "A cluster of bushes and grass." density = 0 +// Colfer change, these randomizations are for grass buildings in tile_types.dm +/obj/structure/flora/grass/fey/bush/florarandom + icon_state = "busha1" + +/obj/structure/flora/grass/fey/bush/florarandom/Initialize(mapload) + . = ..() + icon_state = "busha[rand(1, 3)]" + +/obj/structure/flora/grass/fey/bush/bushrandom + icon_state = "bushb1" + +/obj/structure/flora/grass/fey/bush/bushrandom/Initialize(mapload) + . = ..() + icon_state = "bushb[rand(1, 3)]" + +/obj/structure/flora/grass/fey/bush/lowbushrandom + icon_state = "bushc1" + +/obj/structure/flora/grass/fey/bush/lowbushrandom/Initialize(mapload) + . = ..() + icon_state = "bushc[rand(1, 3)]" + +/obj/structure/flora/grass/fey/bush/grassrandom + icon_state = "grassa1" + +/obj/structure/flora/grass/fey/bush/grassrandom/Initialize(mapload) + . = ..() + icon_state = "grassa[rand(1, 5)]" + +/obj/structure/flora/grass/fey/bush/sparcegrassrandom + icon_state = "grassb1" + +/obj/structure/flora/grass/fey/bush/sparcegrassrandom/Initialize(mapload) + . = ..() + icon_state = "grassb[rand(1, 2)]" + +/obj/structure/flora/fey/large/randombush + icon_state = "bush1" + pixel_x = -16 + +/obj/structure/flora/fey/large/randombush/Initialize(mapload) + . = ..() + icon_state = "bush[rand(1, 3)]" +// This makes it so you can tear them apart +/obj/structure/flora/grass/fey/bush/attackby(obj/item/W as obj, mob/user as mob) + // Dismantle + if(user.a_intent == INTENT_HARM) // who said you CAN'T touch grass (violently)? + return ..() + if(istype(W, /obj/item/shovel)) + playsound(src.loc, W.tool_sound, 50, 1) + if(do_after(user, 10, src)) + user.visible_message("\The [user] digs up \the [src].", "You dig up \the [src].") + new /obj/item/stack/tile/grass(get_turf(usr), 1) + qdel(src) + return +// Also have to do the large ones too, but seperately +/obj/structure/flora/fey/large/attackby(obj/item/W as obj, mob/user as mob) + // Dismantle + if(user.a_intent == INTENT_HARM) // who said you CAN'T touch grass (violently)? + return ..() + if(istype(W, /obj/item/shovel)) + playsound(src.loc, W.tool_sound, 50, 1) + if(do_after(user, 10, src)) + user.visible_message("\The [user] digs up \the [src].", "You dig up \the [src].") + new /obj/item/stack/tile/grass(get_turf(usr), 1) + qdel(src) + return + +// Still colfer here, I don't want to touch these down here because I don't know if maps use these /obj/structure/flora/grass/fey/bush/bush1 icon_state = "busha1" @@ -195,6 +264,7 @@ name = "Large Flora" desc = "Giganticism at its finest. This part of the endless forest has been alive for centuries, if not thousands of years." density = 0 + pixel_x = -16 /obj/structure/flora/fey/large/bush1 icon_state = "bush1" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index b0b1e5db320..f0ca7d142af 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -59,6 +59,13 @@ . += create_stack_recipe_datum(name = "lush grass", product = /obj/structure/flora/ausbushes/grassybush, cost = 1) . += create_stack_recipe_datum(name = "grass", product = /obj/structure/flora/ausbushes/fullgrass, cost = 1) . += create_stack_recipe_datum(name = "sparse grass", product = /obj/structure/flora/ausbushes/sparsegrass, cost = 1) + . += create_stack_recipe_datum(name = "soil bed", product = /obj/machinery/portable_atmospherics/hydroponics/soil/grassy, cost = 15) + . += create_stack_recipe_datum(category = "fey flora", name = "Fey Foliage", product = /obj/structure/flora/grass/fey/bush/florarandom, cost = 1) + . += create_stack_recipe_datum(category = "fey flora", name = "Fey Bush", product = /obj/structure/flora/grass/fey/bush/bushrandom, cost = 1) + . += create_stack_recipe_datum(category = "fey flora", name = "Fey Low Bush", product = /obj/structure/flora/grass/fey/bush/lowbushrandom, cost = 1) + . += create_stack_recipe_datum(category = "fey flora", name = "Big Fey Grass", product = /obj/structure/flora/fey/large/randombush, cost = 1) + . += create_stack_recipe_datum(category = "fey flora", name = "Fey Grass", product = /obj/structure/flora/grass/fey/bush/grassrandom, cost = 1) + . += create_stack_recipe_datum(category = "fey flora", name = "Fey Sparce Grass", product = /obj/structure/flora/grass/fey/bush/sparcegrassrandom, cost = 1) /* * Wood diff --git a/code/global.dm b/code/global.dm index 4e794d8c827..81f893bb6e0 100644 --- a/code/global.dm +++ b/code/global.dm @@ -131,46 +131,81 @@ var/list/eventdestinations = list() // List of scatter landmarks for event porta var/global/list/acceptable_fruit_types = list( "ambrosia", + "amanita", + "ambrosiadeus", + "ambrosiagaia", "apple", + "goldapple", "banana", "berries", + "bloodrose", + "bloodtomato", + "bentars", "cabbage", + "carpet", "carrot", "celery", "cherry", "chili", + "coconut", "cocoa", "corn", + "cersut", "durian", + "disho", + "brickdisho", + "thatchdisho", "eggplant", + "egg-plant", "grapes", "grass", + "glowshroom", + "glowberries", "greengrapes", "harebells", - "jahtak", + "icechili", + "ironwood", + "juhtak", + "jurlmah", "lavender", "lemon", "lettuce", "lime", + "libertycap", + "mtear", + "nettle", "onion", "orange", + "peas", "peanut", "poppies", + "pokalea", "potato", "pumpkin", + "plastic", + "plumphelmet", "pyrrhlea", "rice", "rose", + "reishi", "rhubarb", + "shimash", + "shand", "soybean", + "siflettuce", "spineapple", "sugarcane", "sunflowers", + "taro", + "telriis", "tomato", + "tobacco", + "towercap", "vanilla", "watermelon", "wheat", "whitebeet", + "whitewabback", ) var/global/list/acceptable_nectar_types= list( diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm index 12c44948964..71a20cc2f00 100644 --- a/code/modules/hydroponics/trays/tray_soil.dm +++ b/code/modules/hydroponics/trays/tray_soil.dm @@ -67,3 +67,7 @@ /obj/machinery/portable_atmospherics/hydroponics/soil/ashlander name = "ashen soil" hostile_soil = 1 + +/obj/machinery/portable_atmospherics/hydroponics/soil/grassy + waterlevel = 40 //Soil made out of grass isn't great, good for maybe 1 harvest + nutrilevel = 4