diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 3311a3365e7..75fb2d0b87f 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -535,5 +535,9 @@ /mob/living/carbon/getTrail() if(getBruteLoss() < 300) - return "ltrails" - return "trails" + if(prob(50)) + return "ltrails_1" + return "ltrails_2" + else if(prob(50)) + return "trails_1" + return "trails_2" diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index d1bc68c69a8..58b86bff7bc 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -365,7 +365,7 @@ var/trail_type = M.getTrail() for(var/obj/effect/decal/cleanable/trail_holder/C in M.loc) //checks for blood splatter already on the floor blood_exists = 1 - if (istype(M.loc, /turf/simulated)) + if (istype(M.loc, /turf/simulated) && trail_type != null) var/newdir = get_dir(T, M.loc) if(newdir != M.dir) newdir = newdir | M.dir @@ -373,10 +373,12 @@ newdir = NORTH else if(newdir == 12) //E + W newdir = EAST + if((newdir in list(1, 2, 4, 8)) && (prob(50))) + newdir = turn(get_dir(T, M.loc), 180) if(!blood_exists) new /obj/effect/decal/cleanable/trail_holder(M.loc) for(var/obj/effect/decal/cleanable/trail_holder/H in M.loc) - if((!(newdir in H.existing_dirs) || trail_type == "trails") && H.existing_dirs.len <= 16) //maximum amount of overlays is 16 (all light & heavy directions filled) + if((!(newdir in H.existing_dirs) || trail_type == "trails_1" || trail_type == "trails_2") && H.existing_dirs.len <= 16) //maximum amount of overlays is 16 (all light & heavy directions filled) H.existing_dirs += newdir H.overlays.Add(image('icons/effects/blood.dmi',trail_type,dir = newdir)) if(istype(M, /mob/living/carbon/human)) //blood DNA diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index f3153a955ae..b81a0e94104 100644 Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ