diff --git a/code/game/objects/items/weapons/material/ashtray.dm b/code/game/objects/items/weapons/material/ashtray.dm index efa3911323c..00630002558 100644 --- a/code/game/objects/items/weapons/material/ashtray.dm +++ b/code/game/objects/items/weapons/material/ashtray.dm @@ -18,15 +18,17 @@ return /obj/item/material/ashtray/shatter() + ..() if(emptyout(get_turf(src))) visible_message(SPAN_DANGER("The contents of [src] spill everywhere!")) /obj/item/material/ashtray/proc/emptyout(atom/dest) - var/count = 0 - for (var/obj/item/clothing/mask/smokable/cigarette/O in contents) - count++ + if(!contents.len) + return FALSE + for (var/obj/O in contents) O.forceMove(dest) - return count > 0 + update_icon() + return TRUE /obj/item/material/ashtray/attack_self(mob/user) var/turf/dest = get_turf(src) @@ -68,7 +70,7 @@ if (istype(W,/obj/item/clothing/mask/smokable/cigarette)) var/obj/item/clothing/mask/smokable/cigarette/cig = W if (cig.lit == TRUE) - user.visible_message("[user] crushes [cig] in \the [src], putting it out.", SPAN_NOTICE("")) + user.visible_message("[user] crushes [cig] in [src], putting it out.", SPAN_NOTICE("You crush [cig] in [src], putting it out.")) playsound(src.loc, 'sound/items/cigs_lighters/cig_snuff.ogg', 50, 1) STOP_PROCESSING(SSprocessing, cig) var/obj/item/butt = new cig.type_butt(src) @@ -82,8 +84,9 @@ "[user] places [cig] in [src] without even smoking it.", SPAN_NOTICE("You place [cig] in [src] without even smoking it. Why would you do that?") ) + else + user.visible_message("[user] places [W] in [src].", SPAN_NOTICE("You place [W] in [src].")) - src.visible_message("[user] places [W] in [src].") user.update_inv_l_hand() user.update_inv_r_hand() add_fingerprint(user) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 0a66c80d5ff..6d1d7d64a4f 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -459,8 +459,6 @@ // Filling/emptying open reagent containers var/obj/item/reagent_containers/RG = O - if (istype(RG, /obj/item/reagent_containers/glass/rag)) - return if (istype(RG) && RG.is_open_container()) var/atype = alert(usr, "Do you want to fill or empty \the [RG] at \the [src]?", "Fill or Empty", "Fill", "Empty", "Cancel") @@ -534,7 +532,7 @@ // Short of a rewrite, this is necessary to stop monkeycubes being washed. else if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube)) return - else if(istype(O, /obj/item/mop) || istype(O, /obj/item/reagent_containers/glass/rag)) + else if(istype(O, /obj/item/mop)) O.reagents.add_reagent(/decl/reagent/water, 5) to_chat(user, SPAN_NOTICE("You wet \the [O] in \the [src].")) playsound(loc, 'sound/effects/slosh.ogg', 25, 1) diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm index e62977e2686..07a7deca815 100644 --- a/code/modules/detectivework/tools/rag.dm +++ b/code/modules/detectivework/tools/rag.dm @@ -182,7 +182,10 @@ if(!proximity) return - if(istype(A, /obj/structure/reagent_dispensers) || istype(A, /obj/structure/mopbucket) || istype(A, /obj/item/reagent_containers/glass) || istype(A, /obj/structure/sink)) + if(istype(A, /obj/structure/sink)) + return + + else if(istype(A, /obj/structure/reagent_dispensers) || istype(A, /obj/structure/mopbucket) || istype(A, /obj/item/reagent_containers/glass)) if(!REAGENTS_FREE_SPACE(reagents)) to_chat(user, SPAN_WARNING("\The [src] is already soaked.")) return @@ -194,7 +197,7 @@ update_icon() return - if(!on_fire && istype(A) && (src in user)) + else if(!on_fire && istype(A) && (src in user)) if(A.is_open_container() && !(A in user)) remove_contents(user, A) else if(!ismob(A)) //mobs are handled in attack() - this prevents us from wiping down people while smothering them. diff --git a/html/changelogs/johnwildkins-ashtray.yml b/html/changelogs/johnwildkins-ashtray.yml new file mode 100644 index 00000000000..b8bd27a811a --- /dev/null +++ b/html/changelogs/johnwildkins-ashtray.yml @@ -0,0 +1,5 @@ +author: JohnWildkins +delete-after: True +changes: + - bugfix: "Rags can now be filled at sinks once again." + - bugfix: "Ashtrays can now be emptied properly, and ashtray icons now update properly when emptied and filled. Ashtrays made of a brittle material will now also shatter if destroyed."