diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 2f1e4e7ac3f..789022883a8 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -210,6 +210,7 @@ var/list/blood_DNA_temp[1] blood_DNA_temp[1] = list(M.dna.unique_enzymes, M.dna.b_type) this.blood_DNA = blood_DNA_temp + this.blood_owner = M for(var/datum/disease/D in M.viruses) var/datum/disease/newDisease = new D.type this.viruses += newDisease diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index 88c51a33a44..d298d6d5054 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -725,7 +725,7 @@ obj/effect/decal/cleanable/blood/var mob/blood_owner turf/Exited(mob/living/carbon/human/M) - if(istype(M,/mob/living)) + if(istype(M,/mob/living) && !istype(M,/mob/living/carbon/metroid)) if(!istype(src, /turf/space)) // Bloody tracks code starts here if(M.track_blood > 0) M.track_blood-- @@ -737,7 +737,7 @@ turf/Exited(mob/living/carbon/human/M) src.add_bloody_footprints(M.shoes.track_blood_mob,1,M.dir,M.shoes.name) // And bloody tracks end here . = ..() turf/Entered(mob/living/carbon/human/M) - if(istype(M,/mob/living)) + if(istype(M,/mob/living) && !istype(M,/mob/living/carbon/metroid)) if(M.track_blood > 0) M.track_blood-- src.add_bloody_footprints(M.track_blood_mob,0,M.dir,get_tracks(M)) @@ -769,9 +769,14 @@ turf/proc/add_bloody_footprints(mob/living/carbon/human/M,leaving,d,info) if(T.dir == d) if((leaving && T.icon_state == "steps2") || (!leaving && T.icon_state == "steps1")) T.desc = "These bloody footprints appear to have been made by [info]." - if(istype(M,/mob/living/carbon/human)) + if(T.blood_DNA) T.blood_DNA.len++ + if(istype(M,/mob/living/carbon/human)) T.blood_DNA[T.blood_DNA.len] = list(M.dna.unique_enzymes,M.dna.b_type) + else if(istype(M,/mob/living/carbon/alien)) + T.blood_DNA[T.blood_DNA.len] = list("UNKNOWN DNA","X*") + else if(istype(M,/mob/living/carbon/monkey)) + T.blood_DNA[T.blood_DNA.len] = list("Non-human DNA","A+") return var/obj/effect/decal/cleanable/blood/tracks/this = new(src) this.icon = 'footprints.dmi' @@ -796,6 +801,8 @@ proc/get_tracks(mob/M) . = "monkey paws" else if(istype(M,/mob/living/silicon/robot)) . = "robot feet" + else if(istype(M,/mob/living/carbon/alien)) + . = "alien claws" else . = "an unknown creature" diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 9de286d2254..4f117b3ae2c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -816,7 +816,7 @@ else if (istype(src, /mob/living/carbon/alien)) xgibs(loc, viruses) else - gibs(loc, viruses) + gibs(loc, viruses, dna) /* else if(key) if(istype(src, /mob/living/simple_animals)) //Should gib all simple_animals like a monkey @@ -832,7 +832,7 @@ Currently doesn't work, but should be useful later or at least as a template else if(istype(src, /mob/living/carbon/alien)) xgibs(loc, viruses) else - gibs(loc, viruses) + gibs(loc, viruses, dna) sleep(15) del(src) diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 0cdce4e73f0..8650435b56e 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ