diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 183cbf4ca8..55b6938a7c 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -477,7 +477,11 @@
src.germ_level = 0
if(istype(blood_DNA, /list))
blood_DNA = null
- return 1
+ return TRUE
+
+/atom/proc/on_rag_wipe(var/obj/item/weapon/reagent_containers/glass/rag/R)
+ clean_blood()
+ R.reagents.splash(src, 1)
/atom/proc/get_global_map_pos()
if(!islist(global_map) || isemptylist(global_map)) return
diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm
index 1d32db4888..21fe275785 100644
--- a/code/game/objects/items/weapons/material/kitchen.dm
+++ b/code/game/objects/items/weapons/material/kitchen.dm
@@ -84,6 +84,13 @@
to_chat(user, SPAN_WARNING("You don't have anything on \the [src].")) //if we have help intent and no food scooped up DON'T STAB OURSELVES WITH THE FORK
return
+/obj/item/weapon/material/kitchen/utensil/on_rag_wipe()
+ . = ..()
+ if(reagents.total_volume > 0)
+ reagents.clear_reagents()
+ cut_overlays()
+ return
+
/obj/item/weapon/material/kitchen/utensil/fork
name = "fork"
desc = "It's a fork. Sure is pointy."
diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm
index 301c99b704..b8cd6def43 100644
--- a/code/modules/detectivework/tools/rag.dm
+++ b/code/modules/detectivework/tools/rag.dm
@@ -98,16 +98,20 @@
if(!reagents.total_volume)
to_chat(user, "The [initial(name)] is dry!")
else
- user.visible_message("\The [user] starts to wipe down [A] with [src]!")
- //reagents.splash(A, 1) //get a small amount of liquid on the thing we're wiping.
+ user.visible_message("[user] starts to wipe [A] with [src].")
update_name()
if(do_after(user,30))
+<<<<<<< HEAD
user.visible_message("\The [user] finishes wiping off the [A]!")
A.clean_blood()
if(istype(A, /turf) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay) || istype(A, /obj/effect/rune)) //VOREStation Edit - "Allows rags to clean dirt from turfs"
var/turf/T = get_turf(A)
if(T)
T.clean(src, user) //VOREStation Edit End
+=======
+ user.visible_message("[user] finishes wiping [A]!")
+ A.on_rag_wipe(src)
+>>>>>>> aa25456fcb8... Merge pull request #8236 from Cerebulon/wipedown
/obj/item/weapon/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag)
if(isliving(target)) //Leaving this as isliving.
@@ -121,7 +125,7 @@
var/mob/living/carbon/human/H = target
if(H.head && (H.head.body_parts_covered & FACE)) //Check human head coverage.
to_chat(user, "Remove their [H.head] first.")
- return
+ return
else if(reagents.total_volume) //Final check. If the rag is not on fire and their face is uncovered, smother target.
user.do_attack_animation(src)
user.visible_message(
diff --git a/code/modules/food/food/drinks.dm b/code/modules/food/food/drinks.dm
index 41217df94b..d6bf82f0a3 100644
--- a/code/modules/food/food/drinks.dm
+++ b/code/modules/food/food/drinks.dm
@@ -38,6 +38,9 @@
qdel(src)
return
+/obj/item/weapon/reagent_containers/food/drinks/on_rag_wipe(var/obj/item/weapon/reagent_containers/glass/rag/R)
+ clean_blood()
+
/obj/item/weapon/reagent_containers/food/drinks/attack_self(mob/user as mob)
if(!is_open_container())
open(user)