From 0cfa6ea3160e699189300c51ff1bbfc504a6ef08 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Wed, 19 Feb 2014 14:13:00 +0400 Subject: [PATCH] Hydroponics tray is now a machine that can be upgraded with bigger matter bins for more water and nutriment capacity. Tray icons will now only update when necessary. Added cream, plant bag and mining satchel to biogenerator. Biogenerator's messages are now shown on top of the menu, instead of a separate screen. Examining the tray now tells you the name of the plant. Hydroponics trays start without nutriment, more E-Z-Nutriment added to vendor to compensate Seed vending machine's contents are now sorted. --- _maps/map_files/tgstation.2.1.2.dmm | 12 +-- code/game/machinery/constructable_frame.dm | 6 +- code/game/machinery/vending.dm | 17 ++-- code/modules/hydroponics/biogenerator.dm | 76 ++++++++++-------- code/modules/hydroponics/hydroponics.dm | 90 +++++++++++++++++----- code/modules/research/designs.dm | 4 +- 6 files changed, 135 insertions(+), 70 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.2.dmm b/_maps/map_files/tgstation.2.1.2.dmm index ccca5c9c25a..f13c16df88e 100644 --- a/_maps/map_files/tgstation.2.1.2.dmm +++ b/_maps/map_files/tgstation.2.1.2.dmm @@ -1831,8 +1831,8 @@ "aJk" = (/obj/machinery/gibber,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aJl" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aJm" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/requests_console{department = "Hydroponics"; departmentType = 2; pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) -"aJn" = (/obj/machinery/hydroponics,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) -"aJo" = (/obj/machinery/hydroponics,/obj/machinery/camera{c_tag = "Hydroponics North"; dir = 2},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) +"aJn" = (/obj/machinery/hydroponics/constructable,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) +"aJo" = (/obj/machinery/hydroponics/constructable,/obj/machinery/camera{c_tag = "Hydroponics North"; dir = 2},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aJp" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aJq" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aJr" = (/obj/structure/bookcase{name = "bookcase (Religious)"},/turf/simulated/floor/wood,/area/library) @@ -2117,7 +2117,7 @@ "aOK" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor,/area/hydroponics) "aOL" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/simulated/floor,/area/hydroponics) "aOM" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hydroponics) -"aON" = (/obj/machinery/hydroponics,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) +"aON" = (/obj/machinery/hydroponics/constructable,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aOO" = (/obj/structure/bookcase{name = "bookcase (Adult)"},/turf/simulated/floor/wood,/area/library) "aOP" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/wood,/area/library) "aOQ" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/simulated/floor/wood,/area/library) @@ -2183,9 +2183,9 @@ "aPY" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aPZ" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aQa" = (/obj/machinery/processor,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"aQb" = (/obj/machinery/light{dir = 8},/obj/machinery/hydroponics,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) +"aQb" = (/obj/machinery/light{dir = 8},/obj/machinery/hydroponics/constructable,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aQc" = (/obj/effect/landmark/start{name = "Botanist"},/turf/simulated/floor,/area/hydroponics) -"aQd" = (/obj/machinery/hydroponics,/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) +"aQd" = (/obj/machinery/hydroponics/constructable,/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aQe" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aQf" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/library) "aQg" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/wood,/area/library) @@ -2340,7 +2340,7 @@ "aSZ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aTa" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/hydroponics) "aTb" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor,/area/hydroponics) -"aTc" = (/obj/machinery/hydroponics,/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics) +"aTc" = (/obj/machinery/hydroponics/constructable,/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics) "aTd" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Botanist"},/turf/simulated/floor,/area/hydroponics) "aTe" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/camera{c_tag = "Hydroponics South"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/hydroponics) "aTf" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/starboard) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 39fc9ce8b28..854d72b7518 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -304,16 +304,16 @@ to destroy them and players will be able to make replacements. "/obj/item/weapon/stock_parts/manipulator" = 1, "/obj/item/stack/cable_coil" = 1, "/obj/item/weapon/stock_parts/console_screen" = 1) -/* + /obj/item/weapon/circuitboard/hydroponics name = "circuit board (Hydroponics Tray)" build_path = /obj/machinery/hydroponics/constructable board_type = "machine" origin_tech = "programming=1;biotech=1" req_components = list( - "/obj/item/weapon/reagent_containers/glass/beaker" = 2, + "/obj/item/weapon/stock_parts/matter_bin" = 2, "/obj/item/weapon/stock_parts/console_screen" = 1) -*/ + /obj/item/weapon/circuitboard/microwave name = "circuit board (Microwave)" build_path = /obj/machinery/microwave diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 0bc771e850d..41c23a02155 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -651,7 +651,7 @@ product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." icon_state = "nutri" icon_deny = "nutri-deny" - products = list(/obj/item/nutrient/ez = 35,/obj/item/nutrient/l4z = 25,/obj/item/nutrient/rh = 15,/obj/item/weapon/pestspray = 20, + products = list(/obj/item/nutrient/ez = 45,/obj/item/nutrient/l4z = 25,/obj/item/nutrient/rh = 15,/obj/item/weapon/pestspray = 20, /obj/item/weapon/reagent_containers/syringe = 5,/obj/item/weapon/storage/bag/plants = 5) contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5) @@ -661,13 +661,14 @@ product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!" product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!" icon_state = "seeds" - products = list(/obj/item/seeds/bananaseed = 3,/obj/item/seeds/berryseed = 3,/obj/item/seeds/carrotseed = 3,/obj/item/seeds/chantermycelium = 3,/obj/item/seeds/chiliseed = 3, - /obj/item/seeds/cornseed = 3, /obj/item/seeds/eggplantseed = 3, /obj/item/seeds/potatoseed = 3, /obj/item/seeds/replicapod = 3,/obj/item/seeds/soyaseed = 3, - /obj/item/seeds/sunflowerseed = 3,/obj/item/seeds/tomatoseed = 3,/obj/item/seeds/towermycelium = 3,/obj/item/seeds/wheatseed = 3,/obj/item/seeds/appleseed = 3, - /obj/item/seeds/poppyseed = 3,/obj/item/seeds/ambrosiavulgarisseed = 3,/obj/item/seeds/whitebeetseed = 3,/obj/item/seeds/watermelonseed = 3,/obj/item/seeds/limeseed = 3, - /obj/item/seeds/lemonseed = 3,/obj/item/seeds/orangeseed = 3,/obj/item/seeds/grassseed = 3,/obj/item/seeds/cocoapodseed = 3,/obj/item/seeds/cabbageseed = 3, - /obj/item/seeds/grapeseed = 3,/obj/item/seeds/pumpkinseed = 3,/obj/item/seeds/cherryseed = 3,/obj/item/seeds/coffee_arabica_seed = 3,/obj/item/seeds/tobacco_seed = 3, - /obj/item/seeds/tea_aspera_seed = 3) + products = list(/obj/item/seeds/ambrosiavulgarisseed = 3,/obj/item/seeds/appleseed = 3,/obj/item/seeds/bananaseed = 3,/obj/item/seeds/berryseed = 3, + /obj/item/seeds/cabbageseed = 3,/obj/item/seeds/carrotseed = 3,/obj/item/seeds/cherryseed = 3,/obj/item/seeds/chantermycelium = 3, + /obj/item/seeds/chiliseed = 3,/obj/item/seeds/cocoapodseed = 3,/obj/item/seeds/coffee_arabica_seed = 3,/obj/item/seeds/cornseed = 3, + /obj/item/seeds/eggplantseed = 3,/obj/item/seeds/grapeseed = 3,/obj/item/seeds/grassseed = 3,/obj/item/seeds/lemonseed = 3, + /obj/item/seeds/limeseed = 3,/obj/item/seeds/orangeseed = 3,/obj/item/seeds/potatoseed = 3,/obj/item/seeds/poppyseed = 3, + /obj/item/seeds/pumpkinseed = 3,/obj/item/seeds/replicapod = 3,/obj/item/seeds/soyaseed = 3,/obj/item/seeds/sunflowerseed = 3, + /obj/item/seeds/tea_aspera_seed = 3,/obj/item/seeds/tobacco_seed = 3,/obj/item/seeds/tomatoseed = 3, + /obj/item/seeds/towermycelium = 3,/obj/item/seeds/watermelonseed = 3,/obj/item/seeds/wheatseed = 3,/obj/item/seeds/whitebeetseed = 3) contraband = list(/obj/item/seeds/amanitamycelium = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/libertymycelium = 2,/obj/item/seeds/nettleseed = 2, /obj/item/seeds/plumpmycelium = 2,/obj/item/seeds/reishimycelium = 2) premium = list(/obj/item/weapon/reagent_containers/spray/waterflower = 1) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index f49214a6b79..8d4ae9bd6b2 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -68,13 +68,16 @@ user << "\red The biogenerator is already full! Activate it." else for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in O.contents) + if(i >= 10) + break G.loc = src i++ - if(i >= 10) - user << "\blue You fill the biogenerator to its capacity." - break if(i<10) user << "\blue You empty the plant bag into the biogenerator." + else if(O.contents.len == 0) + user << "\blue You empty the plant bag into the biogenerator, filling it to its capacity." + else + user << "\blue You fill the biogenerator to its capacity." else if(!istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) @@ -111,40 +114,42 @@ dat += "
Biogenerator is processing! Please wait...

" else switch(menustat) - if("menu") - if(beaker) - dat += "
Biomass: [points] units.

" - dat += "ActivateDetach Container" - dat += "

Food:

" - dat += "
" - dat += "10 milk: Make ([20/efficiency])
" - dat += "Monkey cube: Make ([250/efficiency])" - dat += "
" - dat += "

Nutrients:

" - dat += "
" - dat += "E-Z-Nutrient: Makex5 ([10/efficiency])
" - dat += "Left 4 Zed: Makex5 ([20/efficiency])
" - dat += "Robust Harvest: Makex5 ([25/efficiency])
" - dat += "
" - dat += "

Leather:

" - dat += "
" - dat += "Wallet: Make ([100/efficiency])
" - dat += "Book bag: Make ([200/efficiency])
" - dat += "Botanical gloves: Make ([250/efficiency])
" - dat += "Utility belt: Make ([300/efficiency])
" - dat += "Leather Satchel: Make ([400/efficiency])
" - dat += "
" - else - dat += "
No beaker inside, please insert beaker.
" if("nopoints") dat += "
You do not have biomass to create products.
Please, put growns into reactor and activate it.
" - dat += "Return to menu" + menustat = "menu" if("complete") dat += "
Operation complete.
" - dat += "Return to menu" + menustat = "menu" if("void") dat += "
Error: No growns inside.
Please, put growns into reactor.
" - dat += "Return to menu" + menustat = "menu" + if(beaker) + dat += "
Biomass: [points] units.

" + dat += "ActivateDetach Container" + dat += "

Food:

" + dat += "
" + dat += "10 milk: Make ([20/efficiency])
" + dat += "10 cream: Make ([30/efficiency])
" + dat += "Monkey cube: Make ([250/efficiency])" + dat += "
" + dat += "

Nutrients:

" + dat += "
" + dat += "E-Z-Nutrient: Makex5 ([10/efficiency])
" + dat += "Left 4 Zed: Makex5 ([20/efficiency])
" + dat += "Robust Harvest: Makex5 ([25/efficiency])
" + dat += "
" + dat += "

Leather:

" + dat += "
" + dat += "Wallet: Make ([100/efficiency])
" + dat += "Book bag: Make ([200/efficiency])
" + dat += "Plant bag: Make ([200/efficiency])
" + dat += "Mining satchel: Make ([200/efficiency])
" + dat += "Botanical gloves: Make ([250/efficiency])
" + dat += "Utility belt: Make ([300/efficiency])
" + dat += "Leather Satchel: Make ([400/efficiency])
" + dat += "
" + else + dat += "
No beaker inside, please insert beaker.
" var/datum/browser/popup = new(user, "biogen", name, 350, 520) popup.set_content(dat) @@ -199,6 +204,9 @@ if("milk") if (check_cost(20/efficiency)) return 0 else beaker.reagents.add_reagent("milk",10) + if("cream") + if (check_cost(30/efficiency)) return 0 + else beaker.reagents.add_reagent("cream",10) if("meat") if (check_cost(250/efficiency)) return 0 else new/obj/item/weapon/reagent_containers/food/snacks/monkeycube(src.loc) @@ -241,6 +249,12 @@ if("bkbag") if (check_cost(200/efficiency)) return 0 else new/obj/item/weapon/storage/bag/books(src.loc) + if("ptbag") + if (check_cost(200/efficiency)) return 0 + else new/obj/item/weapon/storage/bag/plants(src.loc) + if("mnbag") + if (check_cost(200/efficiency)) return 0 + else new/obj/item/weapon/storage/bag/ore(src.loc) if("gloves") if (check_cost(250/efficiency)) return 0 else new/obj/item/clothing/gloves/botanic_leather(src.loc) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 268dddf02ce..bb91a0f6bdc 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -1,11 +1,13 @@ /obj/machinery/hydroponics name = "hydroponics tray" icon = 'icons/obj/hydroponics.dmi' - icon_state = "hydrotray3" + icon_state = "hydrotray" density = 1 anchored = 1 var/waterlevel = 100 //The amount of water in the tray (max 100) + var/maxwater = 100 //The maximum amount of water in the tray var/nutrilevel = 10 //The amount of nutrient in the tray (max 10) + var/maxnutri = 10 //The maximum nutrient of water in the tray var/pestlevel = 0 //The amount of pests in the tray (max 10) var/weedlevel = 0 //The amount of weeds in the tray (max 10) var/yieldmod = 1 //Modifier to yield @@ -24,6 +26,29 @@ pixel_y=8 +/obj/machinery/hydroponics/constructable + name = "hydroponics tray" + icon = 'icons/obj/hydroponics.dmi' + icon_state = "hydrotray3" + +/obj/machinery/hydroponics/constructable/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/hydroponics(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/hydroponics/constructable/RefreshParts() + var tmp_capacity = 0 + for (var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + tmp_capacity += M.rating + maxwater = tmp_capacity * 50 // Up to 300 + maxnutri = tmp_capacity * 5 // Up to 30 + waterlevel = maxwater + nutrilevel = 3 + /obj/machinery/hydroponics/proc/FindConnected() @@ -45,7 +70,6 @@ return connected - /obj/machinery/hydroponics/bullet_act(var/obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. if(!planted) ..() @@ -65,6 +89,8 @@ obj/machinery/hydroponics/process() + var/needs_update = 0 // Checks if the icon needs updating so we don't redraw empty trays every time + if(myseed && (myseed.loc != src)) myseed.loc = src @@ -73,6 +99,7 @@ obj/machinery/hydroponics/process() if(planted && !dead) // Advance age age++ + needs_update = 1 //Nutrients////////////////////////////////////////////////////////////// // Nutrients deplete slowly @@ -169,7 +196,9 @@ obj/machinery/hydroponics/process() weedinvasion() else weedinvasion() // Weed invasion into empty tray - update_icon() + needs_update = 1 + if (needs_update) + update_icon() return @@ -189,6 +218,7 @@ obj/machinery/hydroponics/update_icon() icon_state = "hoses-[n]" + UpdateDescription() if(planted) if(dead) @@ -223,6 +253,15 @@ obj/machinery/hydroponics/update_icon() return +obj/machinery/hydroponics/proc/UpdateDescription() + desc = null + if (planted) + desc = "[src] has \blue [myseed.plantname] \black planted." + if (dead) + desc += " It's dead." + else if (harvest) + desc += " It's ready to harvest." + obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient, this happens. dead = 0 var/oldPlantName @@ -259,7 +298,6 @@ obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient, visible_message("\blue [oldPlantName] overtaken by [myseed.plantname].") - obj/machinery/hydroponics/proc/mutate(var/lifemut=2, var/endmut=5, var/productmut=1, var/yieldmut=2, var/potmut=25) // Mutates the current seed if(!planted) return @@ -301,7 +339,6 @@ obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! visible_message("\red[oldPlantName] suddenly mutated into \blue [myseed.plantname]!") - obj/machinery/hydroponics/proc/mutateweed() // If the weeds gets the mutagent instead. Mind you, this pretty much destroys the old plant if( weedlevel > 5 ) if(myseed) @@ -324,7 +361,6 @@ obj/machinery/hydroponics/proc/mutateweed() // If the weeds gets the mutagent in usr << "The few weeds in [src] seem to react, but only for a moment..." - obj/machinery/hydroponics/proc/plantdies() // OH NOES!!!!! I put this all in one function to make things easier health = 0 harvest = 0 @@ -334,7 +370,6 @@ obj/machinery/hydroponics/proc/plantdies() // OH NOES!!!!! I put this all in one dead = 1 - obj/machinery/hydroponics/proc/mutatepest() if(pestlevel > 5) visible_message("The pests seem to behave oddly...") @@ -345,17 +380,20 @@ obj/machinery/hydroponics/proc/mutatepest() usr << "The pests seem to behave oddly, but quickly settle down..." - obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) //Called when mob user "attacks" it with object O if(istype(O, /obj/item/nutrient)) var/obj/item/nutrient/myNut = O user.u_equip(O) + if (yieldmod == myNut.yieldmod && mutmod == myNut.mutmod) + user << "You add the nutriment solution to [src]." + else + nutrilevel = 0 + yieldmod = myNut.yieldmod + mutmod = myNut.mutmod + user << "You replace the nutrient solution in [src]." adjustNutri(10) - yieldmod = myNut.yieldmod - mutmod = myNut.mutmod - user << "You replace the nutrient solution in [src]." del(O) update_icon() @@ -610,16 +648,16 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) user << "-Weed level: [weedlevel]/10" user << "-Pest level: [pestlevel]/10" user << "-Toxicity level: [toxic]/100" - user << "-Water level: [waterlevel]/100" - user << "-Nutrition level: [nutrilevel]/10" + user << "-Water level: [waterlevel]/[maxwater]" + user << "-Nutrition level: [nutrilevel]/[maxnutri]" user << "" else user << "No plant found." user << "-Weed level: [weedlevel]/10" user << "-Pest level: [pestlevel]/10" user << "-Toxicity level: [toxic]/100" - user << "-Water level: [waterlevel]/100" - user << "-Nutrition level: [nutrilevel]/10" + user << "-Water level: [waterlevel]/[maxwater]" + user << "-Nutrition level: [nutrilevel]/[maxnutri]" user << "" else if(istype(O, /obj/item/weapon/minihoe)) @@ -675,7 +713,6 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) else if(istype(O, /obj/item/weapon/screwdriver)) if(anchored) - if(anchored==2) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) anchored = 1 @@ -695,6 +732,16 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) user << "You clear up [src]!" del(src) + else if(istype(O, /obj/item/weapon/crowbar)) + if(anchored==2) + user << "Unscrew the hoses first!" + return + + if(istype(src, /obj/machinery/hydroponics/soil)) + return + panel_open = 1 + default_deconstruction_crowbar(O) + panel_open = 0 return @@ -719,8 +766,8 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) user << "The plant looks unhealthy." else user << "[src] is empty." - user << "Water: [waterlevel]/100" - user << "Nutrient: [nutrilevel]/10" + user << "Water: [waterlevel]/[maxwater]" + user << "Nutrient: [nutrilevel]/[maxnutri]" if(weedlevel >= 5) // Visual aid for those blind user << "[src] is filled with weeds!" if(pestlevel >= 5) // Visual aid for those blind @@ -931,12 +978,12 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) /obj/machinery/hydroponics/proc/adjustNutri(var/adjustamt) nutrilevel += adjustamt nutrilevel = max(nutrilevel, 0) - nutrilevel = min(nutrilevel, 10) + nutrilevel = min(nutrilevel, maxnutri) /obj/machinery/hydroponics/proc/adjustWater(var/adjustamt) waterlevel += adjustamt waterlevel = max(waterlevel, 0) - waterlevel = min(waterlevel, 100) + waterlevel = min(waterlevel, maxwater) if(adjustamt>0) adjustToxic(-round(adjustamt/4))//Toxicity dilutation code. The more water you put in, the lesser the toxin concentration. @@ -1002,6 +1049,9 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) update_icon() // Same as normal but with the overlays removed - Cheridan. overlays.Cut() + + UpdateDescription() + if(planted) if(dead) overlays += image('icons/obj/hydroponics.dmi', icon_state="[myseed.species]-dead") diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index d86770c9031..caf6764fd29 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -1292,7 +1292,7 @@ datum/design/biogenerator build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/biogenerator -/* + datum/design/hydroponics name = "Hydroponics Tray Board" desc = "The circuit board for a hydroponics tray." @@ -1301,7 +1301,7 @@ datum/design/hydroponics build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/hydroponics -*/ + datum/design/microwave name = "Microwave Board" desc = "The circuit board for a microwave."