diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 5d6caee5e21..b743b97b567 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -362,8 +362,8 @@ user << "\red Someone's already washing here." return - if (istype(O, /obj/item/weapon/reagent_containers)) - var/obj/item/weapon/reagent_containers/RG = O + var/obj/item/weapon/reagent_containers/RG = O + if (istype(RG) && RG.is_open_container()) RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) user.visible_message("\blue [user] fills \the [RG] using \the [src].","\blue You fill \the [RG] using \the [src].") return diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 822d4e65fa6..3fa82adfcfa 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -72,9 +72,9 @@ say("Nom") /mob/living/simple_animal/hostile/retaliate/goat/attackby(var/obj/item/O as obj, var/mob/user as mob) - if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass)) + var/obj/item/weapon/reagent_containers/glass/G = O + if(stat == CONSCIOUS && istype(G) && G.is_open_container()) user.visible_message("[user] milks [src] using \the [O].") - var/obj/item/weapon/reagent_containers/glass/G = O var/transfered = udder.trans_id_to(G, "milk", rand(5,10)) if(G.reagents.total_volume >= G.volume) user << "\red The [O] is full." @@ -112,9 +112,9 @@ ..() /mob/living/simple_animal/cow/attackby(var/obj/item/O as obj, var/mob/user as mob) - if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass)) + var/obj/item/weapon/reagent_containers/glass/G = O + if(stat == CONSCIOUS && istype(G) && G.is_open_container()) user.visible_message("[user] milks [src] using \the [O].") - var/obj/item/weapon/reagent_containers/glass/G = O var/transfered = udder.trans_id_to(G, "milk", rand(5,10)) if(G.reagents.total_volume >= G.volume) user << "\red The [O] is full." diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 5d1571a1996..3f91f205e0f 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -15,7 +15,7 @@ var/max_energy = 100 var/amount = 30 var/accept_glass = 0 //At 0 ONLY accepts glass containers. Kinda misleading varname. - var/beaker = null + var/atom/beaker = null var/recharged = 0 var/hackedcheck = 0 var/list/dispensable_reagents = list("hydrogen","lithium","carbon","nitrogen","oxygen","fluorine", @@ -132,7 +132,7 @@ amount = 100 if(href_list["dispense"]) - if (dispensable_reagents.Find(href_list["dispense"]) && beaker != null) + if (dispensable_reagents.Find(href_list["dispense"]) && beaker != null && beaker.is_open_container()) var/obj/item/weapon/reagent_containers/B = src.beaker var/datum/reagents/R = B.reagents var/space = R.maximum_volume - R.total_volume