diff --git a/code/game/objects/effects/decals/Cleanable/aliens.dm b/code/game/objects/effects/decals/Cleanable/aliens.dm index f2e3cfc3a3c..9e33b680cb5 100644 --- a/code/game/objects/effects/decals/Cleanable/aliens.dm +++ b/code/game/objects/effects/decals/Cleanable/aliens.dm @@ -5,6 +5,8 @@ desc = "It's green and acidic. It looks like... blood?" icon = 'icons/effects/blood.dmi' icon_state = "xfloor1" + basecolor = "#05CC05" + random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") /obj/effect/decal/cleanable/blood/xeno/proc/streak(var/list/directions) spawn (0) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 684bf76878f..d8a13a2ef3a 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -116,6 +116,7 @@ sleep(3) if (i > 0) var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc) + b.basecolor = src.basecolor for(var/datum/disease/D in src.viruses) var/datum/disease/ND = D.Copy(1) b.viruses += ND diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 6be37516d33..c8293f98b5f 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -139,16 +139,32 @@ //if there isn't a blood decal already, make one. var/obj/effect/decal/cleanable/blood/newblood = new /obj/effect/decal/cleanable/blood(src) + + //Species-specific blood. + if(M.species) + newblood.basecolor = M.species.blood_color + newblood.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type return 1 //we bloodied the floor // Only adds blood on the floor -- Skie /turf/simulated/proc/add_blood_floor(mob/living/carbon/M as mob) - if( istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/human)) + if(istype(M, /mob/living/carbon/monkey)) + var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(src) this.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type + else if(istype(M,/mob/living/carbon/human)) + + var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(src) + var/mob/living/carbon/human/H = M + //Species-specific blood. + if(H.species) + this.basecolor = H.species.blood_color + + this.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type + else if( istype(M, /mob/living/carbon/alien )) var/obj/effect/decal/cleanable/blood/xeno/this = new /obj/effect/decal/cleanable/blood/xeno(src) this.blood_DNA["UNKNOWN BLOOD"] = "X*" diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index c5d5351e3ff..ec2fbe705b7 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -39,6 +39,8 @@ var/list/abilities = list() // For species-derived or admin-given powers + var/blood_color = "#A10808" //Red. + /datum/species/human name = "Human" language = "Sol Common" @@ -70,6 +72,8 @@ flags = WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_TAIL + blood_color = "#FFFF00" + /datum/species/tajaran name = "Tajaran" icobase = 'icons/mob/human_races/r_tajaran.dmi' @@ -92,6 +96,8 @@ flags = WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_TAIL + blood_color = "#0000FF" + /datum/species/skrell name = "Skrell" icobase = 'icons/mob/human_races/r_skrell.dmi' @@ -101,6 +107,8 @@ flags = WHITELISTED | HAS_LIPS | HAS_UNDERWEAR + blood_color = "#FF00FF" + /datum/species/vox name = "Vox" icobase = 'icons/mob/human_races/r_vox.dmi' @@ -119,6 +127,8 @@ flags = NO_SCAN + blood_color = "#00FFFF" + /datum/species/diona name = "Diona" icobase = 'icons/mob/human_races/r_plant.dmi'