diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 48b022a65f3..1ac341db260 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1272,7 +1272,7 @@ ads_list = list("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/reagent_containers/glass/bottle/nutrient/ez = 30,/obj/item/reagent_containers/glass/bottle/nutrient/l4z = 20,/obj/item/reagent_containers/glass/bottle/nutrient/rh = 10,/obj/item/reagent_containers/spray/pestspray = 20, + products = list(/obj/item/reagent_containers/glass/bottle/nutrient/ez = 20,/obj/item/reagent_containers/glass/bottle/nutrient/l4z = 13,/obj/item/reagent_containers/glass/bottle/nutrient/rh = 6,/obj/item/reagent_containers/spray/pestspray = 20, /obj/item/reagent_containers/syringe = 5,/obj/item/storage/bag/plants = 5,/obj/item/cultivator = 3,/obj/item/shovel/spade = 3,/obj/item/plant_analyzer = 4) contraband = list(/obj/item/reagent_containers/glass/bottle/ammonia = 10,/obj/item/reagent_containers/glass/bottle/diethylamine = 5) refill_canister = /obj/item/vending_refill/hydronutrients diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 7d59bd3360b..d5c7744eb4a 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -27,10 +27,7 @@ w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 10 - -/obj/item/reagent_containers/spray/weedspray/New() - ..() - reagents.add_reagent("atrazine", 100) + list_reagents = list("atrazine" = 100) /obj/item/reagent_containers/spray/weedspray/suicide_act(mob/user) user.visible_message("[user] is huffing the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.") @@ -49,10 +46,7 @@ w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 10 - -/obj/item/reagent_containers/spray/pestspray/New() - ..() - reagents.add_reagent("pestkiller", 100) + list_reagents = list("pestkiller" = 100) /obj/item/reagent_containers/spray/pestspray/suicide_act(mob/user) user.visible_message("[user] is huffing the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.") @@ -222,79 +216,112 @@ /obj/item/reagent_containers/glass/bottle/nutrient - name = "bottle of nutrient" + name = "jug of nutrient" + desc = "A decent sized plastic jug." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - volume = 50 + icon_state = "plastic_jug" + item_state = "plastic_jug" w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(1,2,5,10,15,25,50) + possible_transfer_amounts = list(1,2,5,10,20,40,80) + container_type = OPENCONTAINER + volume = 80 + hitsound = 'sound/weapons/jug_empty_impact.ogg' + throwhitsound = 'sound/weapons/jug_empty_impact.ogg' + force = 0.2 + throwforce = 0.2 /obj/item/reagent_containers/glass/bottle/nutrient/New() + ..() + add_lid() + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + +/obj/item/reagent_containers/glass/bottle/nutrient/on_reagent_change() + . = ..() + update_icon() + if(reagents.total_volume) + hitsound = 'sound/weapons/jug_filled_impact.ogg' + throwhitsound = 'sound/weapons/jug_filled_impact.ogg' + else + hitsound = 'sound/weapons/jug_empty_impact.ogg' + throwhitsound = 'sound/weapons/jug_empty_impact.ogg' + +/obj/item/reagent_containers/glass/bottle/nutrient/update_icon() + cut_overlays() + + if(reagents.total_volume) + var/image/filling = image('icons/obj/reagentfillings.dmi', src, "plastic_jug10") + + var/percent = round((reagents.total_volume / volume) * 100) + switch(percent) + if(0 to 10) + filling.icon_state = "plastic_jug-10" + if(11 to 29) + filling.icon_state = "plastic_jug25" + if(30 to 45) + filling.icon_state = "plastic_jug40" + if(46 to 61) + filling.icon_state = "plastic_jug55" + if(62 to 77) + filling.icon_state = "plastic_jug70" + if(78 to 92) + filling.icon_state = "plastic_jug85" + if(93 to INFINITY) + filling.icon_state = "plastic_jug100" + + filling.icon += mix_color_from_reagents(reagents.reagent_list) + add_overlay(filling) + + if(!is_open_container()) + add_overlay("lid_jug") + + +/obj/item/reagent_containers/glass/bottle/nutrient/ez + name = "jug of E-Z-Nutrient" + desc = "Contains a fertilizer that causes mild mutations with each harvest." + icon = 'icons/obj/chemical.dmi' + icon_state = "plastic_jug_ez" + list_reagents = list("eznutriment" = 80) + +/obj/item/reagent_containers/glass/bottle/nutrient/l4z + name = "jug of Left 4 Zed" + desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants." + icon = 'icons/obj/chemical.dmi' + icon_state = "plastic_jug_l4z" + list_reagents = list("left4zednutriment" = 80) + +/obj/item/reagent_containers/glass/bottle/nutrient/rh + name = "jug of Robust Harvest" + desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations." + icon = 'icons/obj/chemical.dmi' + icon_state = "plastic_jug_rh" + list_reagents = list("robustharvestnutriment" = 80) + +/obj/item/reagent_containers/glass/bottle/nutrient/empty + icon = 'icons/obj/chemical.dmi' + icon_state = "plastic_jug" + +/obj/item/reagent_containers/glass/bottle/nutrient/killer + icon = 'icons/obj/chemical.dmi' + icon_state = "plastic_jug_k" + w_class = WEIGHT_CLASS_TINY + +/obj/item/reagent_containers/glass/bottle/nutrient/killer/New() ..() pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) -/obj/item/reagent_containers/glass/bottle/nutrient/ez - name = "bottle of E-Z-Nutrient" - desc = "Contains a fertilizer that causes mild mutations with each harvest." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - -/obj/item/reagent_containers/glass/bottle/nutrient/ez/New() - ..() - reagents.add_reagent("eznutriment", 50) - -/obj/item/reagent_containers/glass/bottle/nutrient/l4z - name = "bottle of Left 4 Zed" - desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle18" - -/obj/item/reagent_containers/glass/bottle/nutrient/l4z/New() - ..() - reagents.add_reagent("left4zednutriment", 50) - -/obj/item/reagent_containers/glass/bottle/nutrient/rh - name = "bottle of Robust Harvest" - desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle15" - -/obj/item/reagent_containers/glass/bottle/nutrient/rh/New() - ..() - reagents.add_reagent("robustharvestnutriment", 50) - -/obj/item/reagent_containers/glass/bottle/nutrient/empty - name = "bottle" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - -/obj/item/reagent_containers/glass/bottle/killer - name = "bottle" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - volume = 50 - w_class = WEIGHT_CLASS_TINY - amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(1,2,5,10,15,25,50) - -/obj/item/reagent_containers/glass/bottle/killer/weedkiller - name = "bottle of weed killer" +/obj/item/reagent_containers/glass/bottle/nutrient/killer/weedkiller + name = "jug of weed killer" desc = "Contains a herbicide." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle19" + icon_state = "plastic_jug_wk" + list_reagents = list("atrazine" = 80) -/obj/item/reagent_containers/glass/bottle/killer/weedkiller/New() - ..() - reagents.add_reagent("atrazine", 50) - -/obj/item/reagent_containers/glass/bottle/killer/pestkiller - name = "bottle of pest spray" +/obj/item/reagent_containers/glass/bottle/nutrient/killer/pestkiller + name = "jug of pest spray" desc = "Contains a pesticide." icon = 'icons/obj/chemical.dmi' - icon_state = "bottle20" - -/obj/item/reagent_containers/glass/bottle/killer/pestkiller/New() - ..() - reagents.add_reagent("pestkiller", 50) + icon_state = "plastic_jug_pk" + list_reagents = list("pestkiller" = 80) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 1be8f11527d..d79a8030a59 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -744,6 +744,10 @@ to_chat(user, "[reagent_source] is empty.") return 1 + if(reagent_source.has_lid && !reagent_source.is_drainable()) //if theres a LID then cannot transfer reagents. + to_chat(user, "You need to open [O] first!") + return TRUE + var/list/trays = list(src)//makes the list just this in cases of syringes and compost etc var/target = myseed ? myseed.plantname : src var/visi_msg = "" diff --git a/code/modules/reagents/chemistry/reagents/misc.dm b/code/modules/reagents/chemistry/reagents/misc.dm index f9a6f974dcf..2b65054f21f 100644 --- a/code/modules/reagents/chemistry/reagents/misc.dm +++ b/code/modules/reagents/chemistry/reagents/misc.dm @@ -603,7 +603,7 @@ name = "Left 4 Zed" id = "left4zednutriment" description = "Unstable nutriment that makes plants mutate more often than usual." - color = "#1A1E4D" // RBG: 26, 30, 77 + color = "#2A1680" // RBG: 42, 128, 22 tox_prob = 25 taste_description = "evolution" diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index b015b75be2a..914fabbc752 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -1054,7 +1054,7 @@ id = "atrazine" description = "A herbicidal compound used for destroying unwanted plants." reagent_state = LIQUID - color = "#17002D" + color = "#773E73" //RGB: 47 24 45 lethality = 2 //Atrazine, however, is definitely toxic diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 24a3e3b9e99..f5bc4a3274a 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -50,16 +50,25 @@ if(!QDELETED(src)) ..() + +/obj/item/reagent_containers/proc/add_lid() + if(has_lid) + container_type ^= REFILLABLE | DRAINABLE + update_icon() + +/obj/item/reagent_containers/proc/remove_lid() + if(has_lid) + container_type |= REFILLABLE | DRAINABLE + update_icon() + /obj/item/reagent_containers/attack_self(mob/user) if(has_lid) if(is_open_container()) to_chat(usr, "You put the lid on [src].") - container_type ^= REFILLABLE | DRAINABLE + add_lid() else to_chat(usr, "You take the lid off [src].") - container_type |= REFILLABLE | DRAINABLE - update_icon() - return + remove_lid() /obj/item/reagent_containers/attack(mob/M, mob/user, def_zone) if(user.a_intent == INTENT_HARM) diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index b70771cb8d3..f01fc5303a9 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -88,7 +88,7 @@ id = "weed_killer" build_type = BIOGENERATOR materials = list(MAT_BIOMASS = 50) - build_path = /obj/item/reagent_containers/glass/bottle/killer/weedkiller + build_path = /obj/item/reagent_containers/glass/bottle/nutrient/killer/weedkiller category = list("initial","Botany Chemicals") /datum/design/pest_spray @@ -96,12 +96,12 @@ id = "pest_spray" build_type = BIOGENERATOR materials = list(MAT_BIOMASS = 50) - build_path = /obj/item/reagent_containers/glass/bottle/killer/pestkiller + build_path = /obj/item/reagent_containers/glass/bottle/nutrient/killer/pestkiller category = list("initial","Botany Chemicals") /datum/design/botany_bottle - name = "Empty Bottle" - id = "botany_bottle" + name = "Empty Jug" + id = "botany_jug" build_type = BIOGENERATOR materials = list(MAT_BIOMASS = 5) build_path = /obj/item/reagent_containers/glass/bottle/nutrient/empty diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index f007687d568..05d04330c38 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index 51e9b66ee30..c36fbf01876 100644 Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ diff --git a/sound/weapons/jug_empty_impact.ogg b/sound/weapons/jug_empty_impact.ogg new file mode 100644 index 00000000000..d78c1c5e554 Binary files /dev/null and b/sound/weapons/jug_empty_impact.ogg differ diff --git a/sound/weapons/jug_filled_impact.ogg b/sound/weapons/jug_filled_impact.ogg new file mode 100644 index 00000000000..05e2d364373 Binary files /dev/null and b/sound/weapons/jug_filled_impact.ogg differ