diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 0026f4e8f5d..9edd5072438 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -19,15 +19,10 @@ viruses = null return ..() -/obj/effect/decal/cleanable/blood/New() +/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) + if (C.blood_DNA) + blood_DNA |= C.blood_DNA.Copy() ..() - if(src.type == /obj/effect/decal/cleanable/blood) - if(src.loc && isturf(src.loc)) - for(var/obj/effect/decal/cleanable/blood/B in src.loc) - if(B != src) - if (B.blood_DNA) - blood_DNA |= B.blood_DNA.Copy() - qdel(B) /obj/effect/decal/cleanable/blood/splatter random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5") diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 3a867084a0b..1dfd4add2f0 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -7,8 +7,17 @@ if (random_icon_states && length(src.random_icon_states) > 0) src.icon_state = pick(src.random_icon_states) create_reagents(300) + if(src.loc && isturf(src.loc)) + for(var/obj/effect/decal/cleanable/C in src.loc) + if(C != src && C.type == src.type) + replace_decal(C) ..() + + +/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) + qdel(C) + /obj/effect/decal/cleanable/attackby(obj/item/weapon/W, mob/user,) if(istype(W, /obj/item/weapon/reagent_containers/glass) || istype(W, /obj/item/weapon/reagent_containers/food/drinks)) if(src.reagents && W.reagents)