diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 8fb14ebf4a4..ed405447c1b 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -3,43 +3,45 @@ var/global/list/image/splatter_cache=list() /obj/effect/decal/cleanable/blood - name = "blood" - desc = "It's thick and gooey. Perhaps it's the chef's cooking?" - gender = PLURAL - density = 0 - anchored = 1 - layer = 2 - icon_state = "floor1" - random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7") - var/list/viruses = list() - blood_DNA = list() - var/basecolor="#A10808" // Color when wet. - var/list/datum/disease2/disease/virus2 = list() - var/amount = 5 + name = "blood" + desc = "It's thick and gooey. Perhaps it's the chef's cooking?" + gender = PLURAL + density = 0 + anchored = 1 + layer = 2 + icon_state = "floor1" + random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7") + var/list/viruses = list() + blood_DNA = list() + var/basecolor="#A10808" // Color when wet. + var/list/datum/disease2/disease/virus2 = list() + var/amount = 5 /obj/effect/decal/cleanable/blood/Del() - for(var/datum/disease/D in viruses) - D.cure(0) - ..() + for(var/datum/disease/D in viruses) + D.cure(0) + ..() /obj/effect/decal/cleanable/blood/New() - ..() - if(istype(src, /obj/effect/decal/cleanable/blood/gibs)) - return - if(istype(src, /obj/effect/decal/cleanable/blood/tracks)) - return // We handle our own drying. - 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() - del(B) - spawn(DRYING_TIME * (amount+1)) - dry() + ..() + if(istype(src, /obj/effect/decal/cleanable/blood/gibs)) + return + if(istype(src, /obj/effect/decal/cleanable/blood/tracks)) + return // We handle our own drying. + 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() + del(B) + spawn(DRYING_TIME * (amount+1)) + dry() /obj/effect/decal/cleanable/blood/update_icon() + if(basecolor == "rainbow") basecolor = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]" + var/cache_key="[basecolor]|[icon_state]" var/icon/I=null if(cache_key in splatter_cache) @@ -91,11 +93,12 @@ var/global/list/image/splatter_cache=list() return var/taken = rand(1,amount) amount -= taken - user << "You get some blood on your hands." + user << "You get some of \the [src] on your hands." if (!user.blood_DNA) user.blood_DNA = list() user.blood_DNA |= blood_DNA.Copy() user.bloody_hands += taken + user.hand_blood_color = basecolor user.update_inv_gloves(1) user.verbs += /mob/living/carbon/human/proc/bloody_doodle @@ -127,33 +130,33 @@ var/global/list/image/splatter_cache=list() /obj/effect/decal/cleanable/blood/writing/examine() ..() - usr << "It reads: \"[message]\"" + usr << "It reads: \"[message]\"" /obj/effect/decal/cleanable/blood/gibs - name = "gibs" - desc = "They look bloody and gruesome." - gender = PLURAL - density = 0 - anchored = 1 - layer = 2 - icon = 'icons/effects/blood.dmi' - icon_state = "gibbl5" - random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") + name = "gibs" + desc = "They look bloody and gruesome." + gender = PLURAL + density = 0 + anchored = 1 + layer = 2 + icon = 'icons/effects/blood.dmi' + icon_state = "gibbl5" + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") /obj/effect/decal/cleanable/blood/gibs/up - random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") /obj/effect/decal/cleanable/blood/gibs/down - random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") /obj/effect/decal/cleanable/blood/gibs/body - random_icon_states = list("gibhead", "gibtorso") + random_icon_states = list("gibhead", "gibtorso") /obj/effect/decal/cleanable/blood/gibs/limb - random_icon_states = list("gibleg", "gibarm") + random_icon_states = list("gibleg", "gibarm") /obj/effect/decal/cleanable/blood/gibs/core - random_icon_states = list("gibmid1", "gibmid2", "gibmid3") + random_icon_states = list("gibmid1", "gibmid2", "gibmid3") /obj/effect/decal/cleanable/blood/gibs/proc/streak(var/list/directions) @@ -174,18 +177,19 @@ var/global/list/image/splatter_cache=list() /obj/effect/decal/cleanable/mucus - name = "mucus" - desc = "Disgusting mucus." - gender = PLURAL - density = 0 - anchored = 1 - layer = 2 - icon = 'icons/effects/blood.dmi' - icon_state = "mucus" - random_icon_states = list("mucus") - var/list/datum/disease2/disease/virus2 = list() - var/dry=0 // Keeps the lag down + name = "mucus" + desc = "Disgusting mucus." + gender = PLURAL + density = 0 + anchored = 1 + layer = 2 + icon = 'icons/effects/blood.dmi' + icon_state = "mucus" + random_icon_states = list("mucus") + + var/list/datum/disease2/disease/virus2 = list() + var/dry=0 // Keeps the lag down /obj/effect/decal/cleanable/mucus/New() - spawn(DRYING_TIME * 2) - dry=1 + spawn(DRYING_TIME * 2) + dry=1 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1454b360b58..60014a89e2a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1326,5 +1326,7 @@ mob/living/carbon/human/yank_out_object() src << "You ran out of blood to write with!" var/obj/effect/decal/cleanable/blood/writing/W = new(T) + W.basecolor = (hand_blood_color) ? hand_blood_color : "#A10808" + W.update_icon() W.message = message - W.add_fingerprint(src) + W.add_fingerprint(src) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 104e60fff89..4611dda0d82 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -56,3 +56,4 @@ var/xylophone = 0 //For the spoooooooky xylophone cooldown var/mob/remoteview_target = null + var/hand_blood_color \ No newline at end of file diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index fa7928a36cf..25531def839 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -130,6 +130,7 @@ punch_damage = 5 primitive = /mob/living/carbon/monkey/diona + blood_color = "rainbow" warning_low_pressure = 50 hazard_low_pressure = -1 diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index 960f4c1e19e..ae5383b690e 100644 Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ