diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index f0c4aed85b..53e716b0d4 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -1,11 +1,11 @@ + /obj/effect/decal/cleanable gender = PLURAL layer = ABOVE_NORMAL_TURF_LAYER - var/list/random_icon_states = null + var/list/random_icon_states = list() var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints var/mergeable_decal = TRUE //when two of these are on a same tile or do we need to merge them into just one? - var/blood_color /obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases) . = ..() @@ -26,9 +26,9 @@ if(LAZYLEN(diseases_to_add)) AddComponent(/datum/component/infective, diseases_to_add) -/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal +/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) if(mergeable_decal) - return TRUE + qdel(C) /obj/effect/decal/cleanable/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/reagent_containers/glass) || istype(W, /obj/item/reagent_containers/food/drinks)) @@ -70,7 +70,6 @@ //Add "bloodiness" of this blood's type, to the human's shoes //This is on /cleanable because fuck this ancient mess /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")) @@ -84,27 +83,10 @@ S.bloody_shoes[blood_state] = min(MAX_SHOE_BLOODINESS,S.bloody_shoes[blood_state]+add_blood) if(blood_DNA && blood_DNA.len) S.add_blood(blood_DNA) - if(S.last_blood_DNA != blood_DNA) - S.last_blood_DNA += blood_DNA S.blood_state = blood_state update_icon() H.update_inv_shoes() - else if(!H.shoes && blood_state && bloodiness && (!H.has_trait(TRAIT_LIGHT_STEP) || !H.mind.assigned_role == "Detective")) - var/add_blood = 0 - if(bloodiness >= BLOOD_GAIN_PER_STEP) - add_blood = BLOOD_GAIN_PER_STEP - else - add_blood = bloodiness - bloodiness -= add_blood - H.blood_smear[blood_state] = min(MAX_SHOE_BLOODINESS,H.blood_smear[blood_state]+add_blood) - if(blood_DNA && blood_DNA.len) - if(H.last_blood_DNA != blood_DNA) - H.last_blood_DNA += blood_DNA - H.blood_state = blood_state - update_icon() - //H.update_inv_shoes() - /obj/effect/decal/cleanable/proc/can_bloodcrawl_in() if((blood_state != BLOOD_STATE_OIL) && (blood_state != BLOOD_STATE_NOT_BLOODY)) return bloodiness diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index 900f392796..6d6b1731d5 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -1,4 +1,3 @@ -// Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code. /obj/effect/decal/cleanable/blood/xeno name = "xeno blood" @@ -10,15 +9,22 @@ color = BLOOD_COLOR_XENO /obj/effect/decal/cleanable/blood/gibs/xeno - name = "xeno gibs" - desc = "Gnarly..." - icon_state = "xgib1" - random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6") color = BLOOD_COLOR_XENO + unique_body = "x" /obj/effect/decal/cleanable/blood/gibs/xeno/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidxenogibs", 5) + guts() + +/obj/effect/decal/cleanable/blood/gibs/xeno/guts() + if(gib_overlay) + var/icon/blood = new(icon,"[icon_state]",dir) + var/image/gibz = new(icon, icon_state + "[unique_body]-overlay") + blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY) + icon = blood + cut_overlays() + add_overlay(gibz) /obj/effect/decal/cleanable/blood/gibs/xeno/streak(list/directions) set waitfor = 0 @@ -35,29 +41,37 @@ if(!step_to(src, get_step(src, direction), 0)) break -/obj/effect/decal/cleanable/blood/gibs/xeno/up/xeno - random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibup1","xgibup1","xgibup1") +/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/xeno - random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibdown1","xgibdown1","xgibdown1") +/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/xeno - random_icon_states = list("xgibhead", "xgibtorso") +/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/xeno - random_icon_states = list("xgibtorso") +/obj/effect/decal/cleanable/blood/gibs/xeno/torso + random_icon_states = list("gibtorso") + gib_overlay = TRUE -/obj/effect/decal/cleanable/blood/gibs/xeno/limb/xeno - random_icon_states = list("xgibleg", "xgibarm") +/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/xeno - random_icon_states = list("xgibmid1", "xgibmid2", "xgibmid3") +/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 48670957cd..fdb1cec174 100644 --- a/code/game/objects/effects/decals/cleanable/gibs.dm +++ b/code/game/objects/effects/decals/cleanable/gibs.dm @@ -6,20 +6,24 @@ random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") mergeable_decal = FALSE var/gib_overlay = FALSE - var/slimy_gibs = FALSE - var/body_colors + var/body_colors = "e3ba84" //a default color just in case. + var/unique_body = "c" + +/obj/effect/decal/cleanable/blood/gibs/update_icon() + . = ..() + guts() /obj/effect/decal/cleanable/blood/gibs/proc/guts() if(gib_overlay) - var/mutable_appearance/gibz = mutable_appearance(icon, icon_state + "-overlay", color = blood_color, layer = (LOW_OBJ_LAYER + 0.1)) - var/mutable_appearance/gibz2 = mutable_appearance(icon, icon_state + "c-overlay", color = body_colors, layer = (LOW_OBJ_LAYER + 0.1)) - if(!slimy_gibs) - gibz.appearance_flags = RESET_COLOR - add_overlay(gibz) - else - gibz.appearance_flags = RESET_COLOR - add_overlay(gibz) - add_overlay(gibz2) + var/icon/blood = new(icon,"[icon_state]",dir) + var/icon/gibz = new(icon, icon_state + "-overlay") + var/image/gibz2 = new(icon, icon_state + "[unique_body]-overlay") + blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY) + gibz2.color = body_colors + icon = blood + cut_overlays() + add_overlay(gibz) + add_overlay(gibz2) /obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target) return @@ -103,42 +107,96 @@ /obj/effect/decal/cleanable/blood/gibs/human/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidgibs", 5) - guts() update_icon() +/obj/effect/decal/cleanable/blood/gibs/human/guts() + if(gib_overlay) + var/icon/blood = new(icon,"[icon_state]",dir) + var/icon/gibz = new(icon, icon_state + "-overlay") + var/image/gibz2 = new(icon, icon_state + "[unique_body]-overlay") + blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY) + gibz2.color = body_colors + icon = blood + cut_overlays() + add_overlay(gibz) + add_overlay(gibz2) + + /obj/effect/decal/cleanable/blood/gibs/human/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") gib_overlay = TRUE - slimy_gibs = 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 - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/human/body random_icon_states = list("gibhead", "gibtorso") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/human/torso random_icon_states = list("gibtorso") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/human/limb random_icon_states = list("gibleg", "gibarm") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/human/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") gib_overlay = TRUE - slimy_gibs = 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) + update_icon() + +/obj/effect/decal/cleanable/blood/gibs/human/lizard/guts() + if(gib_overlay) + var/icon/blood = new(icon,"[icon_state]",dir) + var/icon/gibz = new(icon, icon_state + "-overlay") + var/image/gibz2 = new(icon, icon_state + "[unique_body]-overlay") + blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY) + gibz2.color = body_colors + icon = blood + cut_overlays() + add_overlay(gibz) + add_overlay(gibz2) + + +/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 desc = "They look gooey and gruesome." + unique_body = "c" + body_colors = "00fff" /obj/effect/decal/cleanable/blood/gibs/slime/Initialize(mapload, list/datum/disease/diseases) . = ..() @@ -146,38 +204,43 @@ update_icon() guts() +/obj/effect/decal/cleanable/blood/gibs/slime/guts() + if(gib_overlay) + var/icon/blood = new(icon,"[icon_state]",dir) + var/image/gibz = new(icon, icon_state + "[unique_body]-overlay") + blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY) + gibz.color = body_colors + icon = blood + cut_overlays() + add_overlay(gibz) + /obj/effect/decal/cleanable/blood/gibs/slime/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") gib_overlay = TRUE - slimy_gibs = 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 - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/body random_icon_states = list("gibhead", "gibtorso") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/torso random_icon_states = list("gibtorso") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/limb random_icon_states = list("gibleg", "gibarm") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/slime/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/synth desc = "They look sludgy and disgusting." + unique_body = "r" /obj/effect/decal/cleanable/blood/gibs/synth/Initialize(mapload, list/datum/disease/diseases) . = ..() @@ -188,6 +251,8 @@ //IPCs /obj/effect/decal/cleanable/blood/gibs/ipc desc = "They look sharp yet oozing." + unique_body = "r" + body_colors = "00ff00" /obj/effect/decal/cleanable/blood/gibs/ipc/Initialize(mapload, list/datum/disease/diseases) . = ..() @@ -197,45 +262,37 @@ /obj/effect/decal/cleanable/blood/gibs/ipc/guts() if(gib_overlay) - var/mutable_appearance/gibz = mutable_appearance(icon, icon_state + "-ipcoverlay", color = blood_color, layer = -LOW_OBJ_LAYER) - var/mutable_appearance/gibz2 = mutable_appearance(icon, icon_state + "c-ipcoverlay", color = body_colors, layer = -LOW_OBJ_LAYER) - if(!slimy_gibs) - gibz.appearance_flags = RESET_COLOR - add_overlay(gibz) - else - gibz.appearance_flags = RESET_COLOR - add_overlay(gibz) - add_overlay(gibz2) + var/icon/blood = new(icon,"[icon_state]",dir) + var/image/gibz = new(icon, icon_state + "[unique_body]-overlay") + blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY) + gibz.color = body_colors + icon = blood + cut_overlays() + add_overlay(gibz) /obj/effect/decal/cleanable/blood/gibs/ipc/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") gib_overlay = TRUE - slimy_gibs = 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 - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/body random_icon_states = list("gibhead", "gibtorso") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/torso random_icon_states = list("gibtorso") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/limb random_icon_states = list("gibleg", "gibarm") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/ipc/core random_icon_states = list("gibmid1", "gibmid2", "gibmid3") gib_overlay = TRUE - slimy_gibs = TRUE /obj/effect/decal/cleanable/blood/gibs/synth desc = "They look sludgy and disgusting." diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 82bbc1d753..8b582587fe 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -26,10 +26,6 @@ /obj/effect/decal/cleanable/blood/update_icon() color = blood_DNA_to_color() -//obj/effect/decal/cleanable/blood/update_color() - // if(SEND_SIGNAL(COMSIG_BLOOD_COLOR) & COMPONENT_BLOCK_UPDATE_COLOR) - // return - /obj/effect/decal/cleanable/blood/old name = "dried blood" desc = "Looks like it's been here a while. Eew." @@ -43,6 +39,11 @@ /obj/effect/decal/cleanable/blood/splatter random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5") +/obj/effect/decal/cleanable/blood/tracks + icon_state = "tracks" + desc = "They look like tracks left by wheels." + random_icon_states = null + /obj/effect/decal/cleanable/trail_holder //not a child of blood on purpose name = "blood" icon_state = "ltrails_1" @@ -50,7 +51,6 @@ random_icon_states = null var/list/existing_dirs = list() blood_DNA = list() - color = BLOOD_COLOR_HUMAN /obj/effect/decal/cleanable/trail_holder/update_icon() color = blood_DNA_to_color() @@ -71,19 +71,18 @@ update_icon() //BLOODY FOOTPRINTS -/obj/effect/decal/cleanable/blood/footprints/tracks - name = "tracks" - icon = 'icons/effects/fluidtracks.dmi' +/obj/effect/decal/cleanable/blood/footprints + name = "footprints" + icon = 'icons/effects/footprints.dmi' icon_state = "nothingwhatsoever" desc = "WHOSE FOOTPRINTS ARE THESE?" random_icon_states = null var/entered_dirs = 0 var/exited_dirs = 0 blood_state = BLOOD_STATE_BLOOD //the icon state to load images from - var/print_state = FOOTPRINT_SHOE //the print state for different feet var/list/shoe_types = list() -/obj/effect/decal/cleanable/blood/footprints/tracks/Crossed(atom/movable/O) +/obj/effect/decal/cleanable/blood/footprints/Crossed(atom/movable/O) if(ishuman(O)) var/mob/living/carbon/human/H = O var/obj/item/clothing/shoes/S = H.shoes @@ -96,15 +95,7 @@ entered_dirs |= H.dir update_icon() - else if(H && H.blood_smear[blood_state]) - if(color != bloodtype_to_color(H.last_bloodtype)) - return - H.blood_smear[blood_state] = max(H.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0) - if (!(entered_dirs & H.dir)) - entered_dirs |= H.dir - update_icon() - -/obj/effect/decal/cleanable/blood/footprints/tracks/Uncrossed(atom/movable/O) +/obj/effect/decal/cleanable/blood/footprints/Uncrossed(atom/movable/O) if(ishuman(O)) var/mob/living/carbon/human/H = O var/obj/item/clothing/shoes/S = H.shoes @@ -117,36 +108,28 @@ exited_dirs |= H.dir update_icon() - else if(H && H.blood_smear[blood_state]) - if(color != bloodtype_to_color(H.last_bloodtype))//last entry - we check its color - return - H.blood_smear[blood_state] = max(H.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0) - if (!(exited_dirs & H.dir)) - exited_dirs |= H.dir - update_icon() - -/obj/effect/decal/cleanable/blood/footprints/tracks/update_icon() +/obj/effect/decal/cleanable/blood/footprints/update_icon() ..() cut_overlays() for(var/Ddir in GLOB.cardinals) if(entered_dirs & Ddir) - var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]"] + var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"] if(!bloodstep_overlay) - GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[print_state]1", dir = Ddir) + GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]1", dir = Ddir) add_overlay(bloodstep_overlay) if(exited_dirs & Ddir) - var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]"] + var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"] if(!bloodstep_overlay) - GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[print_state]2", dir = Ddir) + GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]2", dir = Ddir) add_overlay(bloodstep_overlay) alpha = BLOODY_FOOTPRINT_BASE_ALPHA + bloodiness -/obj/effect/decal/cleanable/blood/footprints/tracks/examine(mob/user) +/obj/effect/decal/cleanable/blood/footprints/examine(mob/user) . = ..() - if(shoe_types.len && ishuman(user) && user.mind.assigned_role == "Detective") //gumshoe does the detective thing, not every fucking assistant + if(shoe_types.len) . += "You recognise the footprints as belonging to:\n" for(var/shoe in shoe_types) var/obj/item/clothing/shoes/S = shoe @@ -154,20 +137,19 @@ to_chat(user, .) -/obj/effect/decal/cleanable/blood/footprints/tracks/replace_decal(obj/effect/decal/cleanable/blood/footprints/tracks/C) - if(print_state != C.print_state) //We only replace footprints of the same type as us - return - if(blood_state != C.blood_state) +/obj/effect/decal/cleanable/blood/footprints/replace_decal(obj/effect/decal/cleanable/C) + if(blood_state != C.blood_state) //We only replace footprints of the same type as us return if(color != C.color) return ..() -/obj/effect/decal/cleanable/blood/footprints/tracks/can_bloodcrawl_in() +/obj/effect/decal/cleanable/blood/footprints/can_bloodcrawl_in() if((blood_state != BLOOD_STATE_OIL) && (blood_state != BLOOD_STATE_NOT_BLOODY)) return TRUE return FALSE +/* Eventually TODO: make snowflake trails like baycode's /obj/effect/decal/cleanable/blood/footprints/tracks/shoe name = "footprints" desc = "They look like tracks left by footwear." @@ -209,4 +191,4 @@ name = "trails" desc = "A trail left by something being dragged." icon_state = FOOTPRINT_DRAG - print_state = FOOTPRINT_DRAG + print_state = FOOTPRINT_DRAG */ diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index 02bf51bdd9..bd88afbdfb 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -50,6 +50,7 @@ random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") blood_state = BLOOD_STATE_OIL bloodiness = BLOOD_AMOUNT_PER_DECAL + c /obj/effect/decal/cleanable/oil/Initialize() . = ..() diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index 324436092d..fee579f00b 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -29,9 +29,8 @@ s.set_up(2, 1, loc) s.start() - var/list/dna_to_add //find the dna to pass to the spawned gibs. do note this can be null if the mob doesn't have blood. add_blood_DNA() has built in null handling. - var/body_coloring + var/body_coloring = "" if(source_mob) dna_to_add = source_mob.get_blood_dna_list() //ez pz if(ishuman(source_mob)) @@ -74,11 +73,9 @@ var/mob/living/carbon/digester = loc digester.stomach_contents += gib - if(dna_to_add) - gib.blood_DNA += dna_to_add - // color them properly, please. - if(gib.gib_overlay) - gib.body_colors = body_coloring + if(dna_to_add.len) + gib.add_blood(dna_to_add) + gib.body_colors = body_coloring gib.update_icon() var/list/directions = gibdirections[i] @@ -125,9 +122,13 @@ return ..() /obj/effect/gibspawner/human/lizard + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/lizard/torso) + gibamounts = list(1, 1, 1, 1, 1, 1) gib_mob_species = /datum/species/lizard /obj/effect/gibspawner/human/lizard/bodypartless + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/torso) + gibamounts = list(2, 0, 1, 1, 2, 0) /obj/effect/gibspawner/human/slimeperson gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/slime/up, /obj/effect/decal/cleanable/blood/gibs/slime/down, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/body, /obj/effect/decal/cleanable/blood/gibs/slime/limb, /obj/effect/decal/cleanable/blood/gibs/slime/core) @@ -140,14 +141,16 @@ /obj/effect/gibspawner/human/ipc sparks = TRUE gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/ipc/up, /obj/effect/decal/cleanable/blood/gibs/ipc/down, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/body, /obj/effect/decal/cleanable/blood/gibs/ipc/limb, /obj/effect/decal/cleanable/blood/gibs/ipc/core) - gibamounts = list(1, 1, 1, 1, 1, 1) + gibamounts = list(1, 1, 1, 1, 1, 1, 1) gib_mob_type = /mob/living/carbon/human gib_mob_species = /datum/species/ipc /obj/effect/gibspawner/human/ipc/bodypartless + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/ipc/up, /obj/effect/decal/cleanable/blood/gibs/ipc/down, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/body, /obj/effect/decal/cleanable/blood/gibs/ipc/limb, /obj/effect/decal/cleanable/blood/gibs/ipc/core) + gibamounts = list(1, 1, 2, 2, 0, 0, 1) /obj/effect/gibspawner/xeno - gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno/up/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/down/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/body/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/limb/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/core/xeno) + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno/up, /obj/effect/decal/cleanable/blood/gibs/xeno/down, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/body, /obj/effect/decal/cleanable/blood/gibs/xeno/limb, /obj/effect/decal/cleanable/blood/gibs/xeno/core) gibamounts = list(1, 1, 1, 1, 1, 1, 1) gib_mob_type = /mob/living/carbon/alien @@ -157,7 +160,7 @@ return ..() /obj/effect/gibspawner/xeno/bodypartless //only the gibs that don't look like actual full bodyparts (except torso). - gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/core/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/core/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/torso/xeno) + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/core, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/core, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/torso) gibamounts = list(1, 1, 1, 1, 1, 1) /obj/effect/gibspawner/xeno/bodypartless/Initialize() diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index c815bc6323..d6927f9953 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -22,8 +22,6 @@ var/adjusted = NORMAL_STYLE mutantrace_variation = MUTANTRACE_VARIATION - var/move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/shoe - /obj/item/clothing/shoes/suicide_act(mob/living/carbon/user) if(rand(2)>1) user.visible_message("[user] begins tying \the [src] up waaay too tightly! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index ef44a7d1d1..319cb72f1c 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -52,55 +52,26 @@ if(!has_gravity(loc)) return var/obj/item/clothing/shoes/S = shoes - var/step_print = dna.species.get_move_trail(src) + //Bloody footprints var/turf/T = get_turf(src) - var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(step_print) in T if(S.bloody_shoes && S.bloody_shoes[S.blood_state]) - for(oldFP) - if(oldFP && (oldFP.blood_state == S.blood_state && oldFP.color == bloodtype_to_color(last_bloodtype))) - return - //No oldFP or they're all a different kind of blood - S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state] - BLOOD_LOSS_PER_STEP) - if (S.bloody_shoes[S.blood_state] > BLOOD_LOSS_IN_SPREAD) - var/obj/effect/decal/cleanable/blood/footprints/tracks/FP = new step_print(T) - FP.blood_state = S.blood_state - FP.entered_dirs |= dir - FP.bloodiness = S.bloody_shoes[S.blood_state] - BLOOD_LOSS_IN_SPREAD - if(S.last_blood_DNA && S.last_bloodtype) - FP.blood_DNA += list(last_blood_DNA = last_bloodtype) - //hacky as heck; we need to move the LAST entry to there, otherwise we mix all the blood - FP.update_icon() + var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(/obj/effect/decal/cleanable/blood/footprints) in T + if(oldFP && (oldFP.blood_state == S.blood_state && oldFP.color == bloodtype_to_color(S.last_bloodtype))) + return + S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state]-BLOOD_LOSS_PER_STEP) + var/obj/effect/decal/cleanable/blood/footprints/FP = new /obj/effect/decal/cleanable/blood/footprints(T) + FP.blood_state = S.blood_state + FP.entered_dirs |= dir + FP.bloodiness = S.bloody_shoes[S.blood_state] + if(S.last_blood_DNA && S.last_bloodtype) + FP.blood_DNA += list(S.last_blood_DNA = S.last_bloodtype) + //hacky as heck; we need to move the LAST entry to there, otherwise we mix all the blood + FP.update_icon() update_inv_shoes() //End bloody footprints - S.step_action() - else if(!shoes) - if(!buckled) - if(loc == NewLoc) - if(!has_gravity(loc)) - return - var/step_print = dna.species.get_move_trail(src) - var/mob/living/carbon/human/H = src - //Bloody footprints without shoes - var/turf/T = get_turf(src) - var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(step_print) in T - if(H.blood_smear && H.blood_smear[H.blood_state]) - for(oldFP) - if(oldFP && (oldFP.blood_state == H.blood_state && oldFP.color == bloodtype_to_color(last_bloodtype))) - return - //No oldFP or they're all a different kind of blood - H.blood_smear[H.blood_state] = max(0, H.blood_smear[H.blood_state] - BLOOD_LOSS_PER_STEP) - if (H.blood_smear[H.blood_state] > BLOOD_LOSS_IN_SPREAD) - var/obj/effect/decal/cleanable/blood/footprints/tracks/FP = new step_print(T) - FP.blood_state = H.blood_state - FP.entered_dirs |= dir - FP.bloodiness = H.blood_smear[H.blood_state] - BLOOD_LOSS_IN_SPREAD - if(H.last_blood_DNA && H.last_bloodtype) - FP.blood_DNA += list(H.last_blood_DNA = H.last_bloodtype) - //hacky as heck; we need to move the LAST entry to there, otherwise we mix all the blood - FP.update_icon() - H.update_inv_shoes() + S.step_action() /mob/living/carbon/human/Process_Spacemove(movement_dir = 0) //Temporary laziness thing. Will change to handles by species reee. if(dna.species.space_move(src)) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index af03bf3f2f..2f3e542923 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -77,7 +77,6 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/fixed_mut_color3 = "" var/whitelisted = 0 //Is this species restricted to certain players? var/whitelist = list() //List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666", "SeeALiggerPullTheTrigger") Spaces & capitalization can be included or ignored entirely for each key as it checks for both. - var/obj/effect/decal/cleanable/blood/footprints/tracks/move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/shoe // What marks are left when walking /////////// // PROCS // @@ -641,12 +640,6 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(!H.dna.features["taur"] || H.dna.features["taur"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR))) bodyparts_to_add -= "taur" - if(H.dna.features["taur"] != "None") - if(H.dna.features["taur"] in GLOB.noodle_taurs) - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/snake - else if(H.dna.features["taur"] in GLOB.paw_taurs) - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/paw - //END EDIT //Digitigrade legs are stuck in the phantom zone between true limbs and mutant bodyparts. Mainly it just needs more agressive updating than most limbs. @@ -938,6 +931,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) return "TAUR" //END EDIT +/* TODO: Snowflake trail marks // Impliments different trails for species depending on if they're wearing shoes. /datum/species/proc/get_move_trail(var/mob/living/carbon/human/H) if(H.lying) @@ -946,7 +940,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/obj/item/clothing/shoes/shoes = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) ? H.wear_suit : H.shoes // suits take priority over shoes return shoes.move_trail else - return move_trail + return move_trail */ /datum/species/proc/spec_life(mob/living/carbon/human/H) if(H.has_trait(TRAIT_NOBREATH)) diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index 92798c8bc7..5122294956 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -10,7 +10,6 @@ blacklisted = 1 limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot var/datum/action/innate/flight/fly diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index d3288e1cd1..96b43795a2 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -9,7 +9,6 @@ skinned_type = /obj/item/stack/sheet/animalhide/human disliked_food = GROSS | RAW liked_food = JUNKFOOD | FRIED - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot /datum/species/human/qualifies_for_rank(rank, list/features) return TRUE //Pure humans are always allowed in all roles. diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index ea7a20163a..c6e7608a44 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -18,7 +18,6 @@ coldmod = 6 // = 3x cold damage heatmod = 0.5 // = 1/4x heat damage burnmod = 0.5 // = 1/2x generic burn damage - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot /datum/species/jelly/on_species_loss(mob/living/carbon/C) if(regenerate_limbs) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index ba4d8b8781..f2525ce2fb 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -3,7 +3,7 @@ name = "Lizardperson" id = "lizard" say_mod = "hisses" - default_color = "00FF00" + default_color = "117720" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,LIPS) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_REPTILE) mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur") @@ -73,7 +73,6 @@ /datum/species/lizard/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs") species_traits += DIGITIGRADE - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/claw if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) return ..() @@ -81,7 +80,6 @@ /datum/species/lizard/on_species_loss(mob/living/carbon/human/C, datum/species/new_species) if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Normal Legs") species_traits -= DIGITIGRADE - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(TRUE) @@ -97,9 +95,8 @@ mutantlungs = /obj/item/organ/lungs/ashwalker burnmod = 0.9 brutemod = 0.9 - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/claw /datum/species/lizard/ashwalker/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) - if((C.dna.features["spines"] != "None" ) && (C.dna.features["tail"] == "None")) //tbh, it's kinda ugly for them not to have a tail yet have floating spines - C.dna.features["tail"] = "Smooth" + if((C.dna.features["spines"] != "None" ) && (C.dna.features["tail_lizard"] == "None")) //tbh, it's kinda ugly for them not to have a tail yet have floating spines + C.dna.features["tail_lizard"] = "Smooth" return ..() diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index 4c2c360c68..d15d989384 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -15,7 +15,6 @@ disliked_food = FRUIT | GROSS toxic_food = MEAT | RAW mutanteyes = /obj/item/organ/eyes/moth - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/claw /datum/species/moth/on_species_gain(mob/living/carbon/C) . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index c556390533..3095ca48ae 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -21,7 +21,6 @@ var/internal_fire = FALSE //If the bones themselves are burning clothes won't help you much disliked_food = FRUIT liked_food = VEGETABLES - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot /datum/species/plasmaman/spec_life(mob/living/carbon/human/H) var/datum/gas_mixture/environment = H.loc.return_air() diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 05c52ede86..c3d1e1aedb 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -17,7 +17,6 @@ var/light_oxyheal = 1 var/light_burnheal = 1 var/light_bruteheal = 1 - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot /datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index 606e72839b..5c2b01a179 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -13,7 +13,6 @@ damage_overlay_type = ""//let's not show bloody wounds or burns over bones. disliked_food = NONE liked_food = GROSS | MEAT | RAW - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot /datum/species/skeleton/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index e2c8ffb9c3..e1457386e7 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -15,7 +15,6 @@ var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg') disliked_food = NONE liked_food = GROSS | MEAT | RAW - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot /datum/species/zombie/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 212b96e6d9..397b4efa16 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -97,8 +97,12 @@ /mob/living/carbon/update_damage_overlays() remove_overlay(DAMAGE_LAYER) + var/dam_colors = "#E62525" + if(ishuman(src)) + var/mob/living/carbon/human/H = src + dam_colors = bloodtype_to_color(H.dna.blood_type) - var/mutable_appearance/damage_overlay = mutable_appearance('icons/mob/dam_mob.dmi', "blank", -DAMAGE_LAYER) + var/mutable_appearance/damage_overlay = mutable_appearance('icons/mob/dam_mob.dmi', "blank", -DAMAGE_LAYER, color = dam_colors) overlays_standing[DAMAGE_LAYER] = damage_overlay for(var/X in bodyparts) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 10a0bc9e5c..67b265ecd6 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -473,7 +473,7 @@ return if(isturf(next)) if(bloodiness) - var/obj/effect/decal/cleanable/blood/footprints/tracks/wheels/B = new(loc) + var/obj/effect/decal/cleanable/blood/tracks/B = new(loc) if(blood_DNA && blood_DNA.len) B.blood_DNA |= blood_DNA.Copy() var/newdir = get_dir(next, loc) diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index 87da719441..78c9acc937 100644 Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ diff --git a/icons/effects/footprints.dmi b/icons/effects/footprints.dmi new file mode 100644 index 0000000000..69207097c0 Binary files /dev/null and b/icons/effects/footprints.dmi differ diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 3301345fcf..d786bd6e48 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -13,7 +13,6 @@ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/mammal liked_food = MEAT | FRIED disliked_food = TOXIC - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/paw //Curiosity killed the cat's wagging tail. /datum/species/mammal/spec_death(gibbed, mob/living/carbon/human/H) @@ -46,7 +45,6 @@ /datum/species/mammal/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs") species_traits += DIGITIGRADE - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/paw if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) return ..() @@ -54,7 +52,6 @@ /datum/species/mammal/on_species_loss(mob/living/carbon/human/C, datum/species/new_species) if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Normal Legs") species_traits -= DIGITIGRADE - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(TRUE) @@ -78,7 +75,6 @@ miss_sound = 'sound/weapons/slashmiss.ogg' liked_food = MEAT | FRUIT disliked_food = TOXIC - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/claw /datum/species/avian/spec_death(gibbed, mob/living/carbon/human/H) if(H) @@ -126,7 +122,6 @@ liked_food = MEAT disliked_food = TOXIC meat = /obj/item/reagent_containers/food/snacks/carpmeat/aquatic - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot /datum/species/aquatic/spec_death(gibbed, mob/living/carbon/human/H) if(H) @@ -173,7 +168,6 @@ miss_sound = 'sound/weapons/slashmiss.ogg' liked_food = MEAT | FRUIT disliked_food = TOXIC - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/claw /datum/species/insect/spec_death(gibbed, mob/living/carbon/human/H) if(H) @@ -230,7 +224,6 @@ /datum/species/xeno/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs") species_traits += DIGITIGRADE - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/claw if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) return ..() @@ -238,7 +231,6 @@ /datum/species/xeno/on_species_loss(mob/living/carbon/human/C, datum/species/new_species) if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Normal Legs") species_traits -= DIGITIGRADE - move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(TRUE)