diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index b8ddadf09e4..f39d416b9df 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -87,19 +87,19 @@
dat += "Activate Biogenerator!
"
dat += "Detach Container
"
dat += "Food
"
- dat += "10 milk (20)
"
- dat += "Slab of meat (50)
"
+ dat += "10 milk (20)
"
+ dat += "Slab of meat (50)
"
dat += "Nutrient
"
- dat += "E-Z-Nutrient (10) | x5
"
- dat += "Left 4 Zed (20) | x5
"
- dat += "Robust Harvest (25) | x5
"
+ dat += "E-Z-Nutrient (10) | x5
"
+ dat += "Left 4 Zed (20) | x5
"
+ dat += "Robust Harvest (25) | x5
"
dat += "Leather
"
- dat += "Wallet (100)
"
- dat += "Botanical gloves (250)
"
- dat += "Utility belt (300)
"
- dat += "Leather Satchel (400)
"
+ dat += "Wallet (100)
"
+ dat += "Botanical gloves (250)
"
+ dat += "Utility belt (300)
"
+ dat += "Leather Satchel (400)
"
//dat += "Other
"
- //dat += "Monkey (500)
"
+ //dat += "Monkey (500)
"
else
dat += "
No beaker inside. Please insert a beaker.
"
if("nopoints")
@@ -146,54 +146,74 @@
menustat = "void"
return
-/obj/machinery/biogenerator/proc/create_product(var/item,var/cost)
- if(cost > points)
+/obj/machinery/biogenerator/proc/check_cost(var/cost)
+ if (cost > points)
menustat = "nopoints"
+ return 1
+ else
+ points -= cost
+ processing = 1
+ update_icon()
+ updateUsrDialog()
+ sleep(30)
return 0
- processing = 1
- update_icon()
- updateUsrDialog()
- points -= cost
- sleep(30)
+
+/obj/machinery/biogenerator/proc/create_product(var/item)
switch(item)
if("milk")
- beaker.reagents.add_reagent("milk",10)
+ if (check_cost(20)) return 0
+ else beaker.reagents.add_reagent("milk",10)
if("meat")
- new/obj/item/weapon/reagent_containers/food/snacks/meat(src.loc)
+ if (check_cost(50)) return 0
+ else new/obj/item/weapon/reagent_containers/food/snacks/meat(src.loc)
if("ez")
- new/obj/item/nutrient/ez(src.loc)
+ if (check_cost(10)) return 0
+ else new/obj/item/nutrient/ez(src.loc)
if("l4z")
- new/obj/item/nutrient/l4z(src.loc)
+ if (check_cost(20)) return 0
+ else new/obj/item/nutrient/l4z(src.loc)
if("rh")
- new/obj/item/nutrient/rh(src.loc)
+ if (check_cost(25)) return 0
+ else new/obj/item/nutrient/rh(src.loc)
if("ez5") //It's not an elegant method, but it's safe and easy. -Cheridan
- new/obj/item/nutrient/ez(src.loc)
- new/obj/item/nutrient/ez(src.loc)
- new/obj/item/nutrient/ez(src.loc)
- new/obj/item/nutrient/ez(src.loc)
- new/obj/item/nutrient/ez(src.loc)
+ if (check_cost(50)) return 0
+ else
+ new/obj/item/nutrient/ez(src.loc)
+ new/obj/item/nutrient/ez(src.loc)
+ new/obj/item/nutrient/ez(src.loc)
+ new/obj/item/nutrient/ez(src.loc)
+ new/obj/item/nutrient/ez(src.loc)
if("l4z5")
- new/obj/item/nutrient/l4z(src.loc)
- new/obj/item/nutrient/l4z(src.loc)
- new/obj/item/nutrient/l4z(src.loc)
- new/obj/item/nutrient/l4z(src.loc)
- new/obj/item/nutrient/l4z(src.loc)
+ if (check_cost(100)) return 0
+ else
+ new/obj/item/nutrient/l4z(src.loc)
+ new/obj/item/nutrient/l4z(src.loc)
+ new/obj/item/nutrient/l4z(src.loc)
+ new/obj/item/nutrient/l4z(src.loc)
+ new/obj/item/nutrient/l4z(src.loc)
if("rh5")
- new/obj/item/nutrient/rh(src.loc)
- new/obj/item/nutrient/rh(src.loc)
- new/obj/item/nutrient/rh(src.loc)
- new/obj/item/nutrient/rh(src.loc)
- new/obj/item/nutrient/rh(src.loc)
+ if (check_cost(125)) return 0
+ else
+ new/obj/item/nutrient/rh(src.loc)
+ new/obj/item/nutrient/rh(src.loc)
+ new/obj/item/nutrient/rh(src.loc)
+ new/obj/item/nutrient/rh(src.loc)
+ new/obj/item/nutrient/rh(src.loc)
if("wallet")
- new/obj/item/weapon/storage/wallet(src.loc)
+ if (check_cost(100)) return 0
+ else new/obj/item/weapon/storage/wallet(src.loc)
if("gloves")
- new/obj/item/clothing/gloves/botanic_leather(src.loc)
+ if (check_cost(250)) return 0
+ else new/obj/item/clothing/gloves/botanic_leather(src.loc)
if("tbelt")
- new/obj/item/weapon/storage/belt/utility(src.loc)
+ if (check_cost(300)) return 0
+ else new/obj/item/weapon/storage/belt/utility(src.loc)
if("satchel")
- new/obj/item/weapon/storage/backpack/satchel(src.loc)
- if("monkey")
- new/mob/living/carbon/monkey(src.loc)
+ if (check_cost(400)) return 0
+ else new/obj/item/weapon/storage/backpack/satchel(src.loc)
+ //if("monkey")
+ // if (check_cost(500)) return 0
+ // else new/mob/living/carbon/monkey(src.loc)
processing = 0
menustat = "complete"
update_icon()
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 639ff1c485b..964ff592f45 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -276,6 +276,7 @@
if(href_list["amount"])
var/id = href_list["add"]
var/amount = text2num(href_list["amount"])
+ if (amount < 0) return
R.trans_id_to(src, id, amount)
else if (href_list["addcustom"])
@@ -290,6 +291,7 @@
if(href_list["amount"])
var/id = href_list["remove"]
var/amount = text2num(href_list["amount"])
+ if (amount < 0) return
if(mode)
reagents.trans_id_to(beaker, id, amount)
else