diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 93af847691..cb3be24598 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -404,7 +404,7 @@ /obj/item/clothing/shoes/add_blood(mob/living/carbon/M) . = ..() - transfer_blood = rand(2, 4) +// transfer_blood = rand(2, 4) return TRUE /turf/add_blood(list/blood_dna) @@ -431,9 +431,9 @@ if(shoes) var/obj/item/clothing/shoes/S = shoes S.add_blood(blood_dna) - else - transfer_blood_dna(blood_dna) - bloody_feet = rand(2, 4) +// else +// transfer_blood_dna(blood_dna) +// bloody_feet = rand(2, 4) update_inv_shoes() // get them feet messy for prints! return TRUE diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 53e716b0d4..6746c41f0b 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -72,7 +72,7 @@ /obj/effect/decal/cleanable/Crossed(atom/movable/O) if(ishuman(O)) var/mob/living/carbon/human/H = O - if(H.shoes && blood_state && bloodiness && (!H.has_trait(TRAIT_LIGHT_STEP) || !H.mind.assigned_role == "Detective")) + if(H.shoes && blood_state && bloodiness && (!HAS_TRAIT(H,TRAIT_LIGHT_STEP) || !H.mind.assigned_role == "Detective")) var/obj/item/clothing/shoes/S = H.shoes var/add_blood = 0 if(bloodiness >= BLOOD_GAIN_PER_STEP) diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index 43b2765a51..e6edc7661a 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -10,12 +10,19 @@ /obj/effect/decal/cleanable/blood/gibs/xeno color = BLOOD_COLOR_XENO - guts_colors = BLOOD_COLOR_XENO - racial = "alien" /obj/effect/decal/cleanable/blood/gibs/xeno/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidxenogibs", 5) + update_icon() + +/obj/effect/decal/cleanable/blood/gibs/xeno/update_icon() + add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY) + cut_overlays() + var/mutable_appearance/flesh = mutable_appearance(icon, "[icon_state]x_flesh") + flesh.appearance_flags = RESET_COLOR + flesh.color = body_colors + add_overlay(flesh) /obj/effect/decal/cleanable/blood/gibs/xeno/streak(list/directions) set waitfor = 0 @@ -34,35 +41,27 @@ /obj/effect/decal/cleanable/blood/gibs/xeno/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/xeno/down random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/xeno/body random_icon_states = list("gibhead", "gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/xeno/torso random_icon_states = list("gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/xeno/limb random_icon_states = list("gibleg", "gibarm") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/xeno/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/xeno/larva random_icon_states = list("xgiblarva1", "xgiblarva2") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/xeno/larva/body random_icon_states = list("xgiblarvahead", "xgiblarvatorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/xtracks icon_state = "tracks" diff --git a/code/game/objects/effects/decals/cleanable/gibs.dm b/code/game/objects/effects/decals/cleanable/gibs.dm index f5b87de9b9..c7df4e4ecf 100644 --- a/code/game/objects/effects/decals/cleanable/gibs.dm +++ b/code/game/objects/effects/decals/cleanable/gibs.dm @@ -5,28 +5,25 @@ layer = LOW_OBJ_LAYER random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") mergeable_decal = FALSE - var/gib_overlay = FALSE var/body_colors = "#e3ba84" //a default color just in case. - var/guts_colors = "#4c276d" - var/racial = "carbon" /obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases) . = ..() + if(random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0) + icon_state = pick(random_icon_states) + update_icon() + /obj/effect/decal/cleanable/blood/gibs/update_icon() - var/list/colorlist = list() - colorlist.Cut() - colorlist += ReadRGB("[blood_DNA_to_color()]0") - colorlist += ReadRGB("[guts_colors]0") - colorlist += ReadRGB("[body_colors]0") - colorlist += list(0,0,0, 255) - for(var/index=1, index<=colorlist.len, index++) - colorlist[index] = colorlist[index]/255 + add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY) cut_overlays() - if(gib_overlay) - var/image/gibs = image(icon, "[icon_state]_[racial]_[gib_overlay]") - gibs.color = colorlist - icon_state = gibs + var/mutable_appearance/guts = mutable_appearance(icon, "[icon_state]_guts") + guts.appearance_flags = RESET_COLOR + add_overlay(guts) + var/mutable_appearance/flesh = mutable_appearance(icon, "[icon_state]_flesh") + flesh.appearance_flags = RESET_COLOR + flesh.color = body_colors + add_overlay(flesh) /obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target) return @@ -38,9 +35,9 @@ if(H.mind.assigned_role == "Detective") //Gumshoe perks yo playsound(loc, 'sound/effects/gib_step.ogg', 10, 1) else - playsound(loc, 'sound/effects/gib_step.ogg', H.has_trait(TRAIT_LIGHT_STEP) ? 20 : 50, 1) + playsound(loc, 'sound/effects/gib_step.ogg', !HAS_TRAIT(H,TRAIT_LIGHT_STEP) ? 20 : 50, 1) else - playsound(loc, 'sound/effects/gib_step.ogg', L.has_trait(TRAIT_LIGHT_STEP) ? 20 : 50, 1) + playsound(loc, 'sound/effects/gib_step.ogg', !HAS_TRAIT(L,TRAIT_LIGHT_STEP) ? 20 : 50, 1) . = ..() /obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions) @@ -61,27 +58,21 @@ /obj/effect/decal/cleanable/blood/gibs/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/down random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/body random_icon_states = list("gibhead", "gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/torso random_icon_states = list("gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/limb random_icon_states = list("gibleg", "gibarm") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/old name = "old rotting gibs" @@ -93,6 +84,7 @@ setDir(pick(1,2,4,8)) icon_state += "-old" add_blood(list("Non-human DNA" = "A+")) + update_icon() /obj/effect/decal/cleanable/blood/drip name = "drips of blood" @@ -110,58 +102,57 @@ /obj/effect/decal/cleanable/blood/gibs/human/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidgibs", 5) + if(!blood_DNA.len) + add_blood(list("Non-human DNA" = "A+")) + update_icon() /obj/effect/decal/cleanable/blood/gibs/human/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/down random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/body random_icon_states = list("gibhead", "gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/torso random_icon_states = list("gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/limb random_icon_states = list("gibleg", "gibarm") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") - gib_overlay = TRUE + //Lizards /obj/effect/decal/cleanable/blood/gibs/human/lizard body_colors = "117720" +/obj/effect/decal/cleanable/blood/gibs/human/lizard/Initialize(mapload, list/datum/disease/diseases) + . = ..() + reagents.add_reagent("liquidgibs", 5) + if(!blood_DNA.len) + add_blood(list("Non-human DNA" = "L")) + update_icon() + /obj/effect/decal/cleanable/blood/gibs/human/lizard/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/lizard/down random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/lizard/body random_icon_states = list("gibhead", "gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/lizard/torso random_icon_states = list("gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/lizard/limb random_icon_states = list("gibleg", "gibarm") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/human/lizard/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") - gib_overlay = TRUE // Slime Gibs /obj/effect/decal/cleanable/blood/gibs/slime @@ -170,36 +161,39 @@ /obj/effect/decal/cleanable/blood/gibs/slime/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidslimegibs", 5) -/* + if(!blood_DNA.len) + add_blood(list("Non-human DNA" = "GEL")) + update_icon() + /obj/effect/decal/cleanable/blood/gibs/slime/update_icon() - if(gib_overlay) - var/image/gibz = new(icon, icon_state + "c-overlay") - gibz.color = body_colors - add_overlay(gibz) */ + add_atom_colour(body_colors, FIXED_COLOUR_PRIORITY) + cut_overlays() + var/mutable_appearance/guts = mutable_appearance(icon, "[icon_state]s_guts") + guts.appearance_flags = RESET_COLOR + guts.color = body_colors + add_overlay(guts) + var/mutable_appearance/flesh = mutable_appearance(icon, "[icon_state]_flesh") + flesh.appearance_flags = RESET_COLOR + flesh.color = body_colors + add_overlay(flesh) /obj/effect/decal/cleanable/blood/gibs/slime/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/down random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/body random_icon_states = list("gibhead", "gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/torso random_icon_states = list("gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/limb random_icon_states = list("gibleg", "gibarm") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/synth desc = "They look sludgy and disgusting." @@ -216,35 +210,31 @@ /obj/effect/decal/cleanable/blood/gibs/ipc/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidoilgibs", 5) + if(!blood_DNA.len) + add_blood(list("Non-human DNA" = "HF")) + update_icon() /obj/effect/decal/cleanable/blood/gibs/ipc/update_icon() - if(gib_overlay) - var/icon/blood = new(icon,"[icon_state]",dir) - var/image/gibz = new(icon, icon_state + "r-overlay") - blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY) - gibz.appearance_flags = RESET_COLOR - add_overlay(gibz) + add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY) + cut_overlays() + var/mutable_appearance/guts = mutable_appearance(icon, "[icon_state]r-overlay") + guts.appearance_flags = RESET_COLOR + add_overlay(guts) /obj/effect/decal/cleanable/blood/gibs/ipc/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/down random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/body random_icon_states = list("gibhead", "gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/torso random_icon_states = list("gibtorso") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/limb random_icon_states = list("gibleg", "gibarm") - gib_overlay = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") - gib_overlay = TRUE diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 00a30ca1b2..4b298faf56 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -696,9 +696,9 @@ if(H.bloody_hands) H.bloody_hands = 0 H.update_inv_gloves() - if(H.bloody_feet) +/* if(H.bloody_feet) H.bloody_feet = 0 - H.update_inv_shoes() + H.update_inv_shoes()*/ update_icons() //apply the now updated overlays to the mob diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index f6eebf381d..8bc8866380 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -127,9 +127,9 @@ return FALSE return . - +/* /mob/living/carbon/human/transfer_blood_dna(list/blood_dna) ..() if(blood_dna.len) last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works - last_blood_DNA = blood_dna[blood_dna.len] + last_blood_DNA = blood_dna[blood_dna.len]*/ diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index 82ddaf80f0..ff7012daa9 100644 Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ diff --git a/icons/effects/blood_to_convert.dmi b/icons/effects/blood_to_convert.dmi deleted file mode 100644 index f1bd580880..0000000000 Binary files a/icons/effects/blood_to_convert.dmi and /dev/null differ