From 6b82c985ae8dd373effc18fef939bfe74cab6cd4 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Thu, 6 Jun 2019 19:39:22 -0500 Subject: [PATCH] Revert "fuckit, I'm just gunna wholesale port from baycode I guess" This reverts commit 11d10d38052d7cd2077a5b698f4c555b01780354. --- code/__HELPERS/type2type.dm | 14 - code/game/objects/effects/decals/cleanable.dm | 46 +++- .../effects/decals/cleanable/aliens.dm | 21 +- .../objects/effects/decals/cleanable/gibs.dm | 252 +++++++++++++++++- .../effects/decals/cleanable/robots.dm | 71 +++-- code/game/objects/items.dm | 1 - code/game/turfs/turf.dm | 6 +- code/modules/clothing/shoes/_shoes.dm | 3 +- .../mob/living/carbon/human/species.dm | 8 +- .../carbon/human/species_types/angel.dm | 2 +- .../carbon/human/species_types/humans.dm | 2 +- .../carbon/human/species_types/jellypeople.dm | 2 +- .../human/species_types/lizardpeople.dm | 6 +- .../carbon/human/species_types/mothmen.dm | 2 +- .../carbon/human/species_types/plasmamen.dm | 2 +- .../carbon/human/species_types/podpeople.dm | 2 +- .../carbon/human/species_types/skeletons.dm | 2 +- .../carbon/human/species_types/zombies.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 2 +- .../mob/living/simple_animal/bot/cleanbot.dm | 1 + .../carbon/human/species_types/furrypeople.dm | 16 +- 21 files changed, 361 insertions(+), 102 deletions(-) diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 03056f625f..d6942f1c40 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -75,20 +75,6 @@ return splittext(trim(file2text(filename)),seperator) return splittext(file2text(filename),seperator) -// Turns a direction into text -/proc/num2dir(direction) - switch (direction) - if (1.0) return NORTH - if (2.0) return SOUTH - if (4.0) return EAST - if (5.0) return NORTHEAST - if (6.0) return SOUTHEAST - if (8.0) return WEST - if (9.0) return NORTHWEST - if (10.0) return SOUTHWEST - else - world.log << "UNKNOWN DIRECTION: [direction]" - //Turns a direction into text /proc/dir2text(direction) switch(direction) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 4c93c3a2db..babc012719 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -66,8 +66,46 @@ reagents.expose_temperature(exposed_temperature) ..() -/obj/effect/decal/cleanable/clean_blood(var/ignore = FALSE) - if(!ignore) - qdel(src) - return + +//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")) + var/obj/item/clothing/shoes/S = H.shoes + var/add_blood = 0 + if(bloodiness >= BLOOD_GAIN_PER_STEP) + add_blood = BLOOD_GAIN_PER_STEP + else + add_blood = bloodiness + bloodiness -= add_blood + to_chat(world, "S.blood_state is [S.blood_state], & blood smear state is [S.blood_smear[S.blood_state]]") + S.blood_smear[blood_state] = min(MAX_SHOE_BLOODINESS,S.blood_smear[blood_state]+add_blood) + if(blood_DNA && blood_DNA.len) + S.add_blood(blood_DNA) + S.blood_smear = 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 + to_chat(world, "blood_state is [blood_state], & blood smear state is [H.blood_smear[blood_state]]") + H.blood_smear[blood_state] = min(MAX_SHOE_BLOODINESS,H.blood_smear[blood_state]+add_blood) + if(blood_DNA && blood_DNA.len) + H.add_blood(blood_DNA) + H.blood_smear = 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 + else + return FALSE diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index 0902eed25b..900f392796 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -3,24 +3,24 @@ /obj/effect/decal/cleanable/blood/xeno name = "xeno blood" desc = "It's green and acidic. It looks like... blood?" - basecolor = BLOOD_COLOR_XENO + color = BLOOD_COLOR_XENO blood_DNA = list("UNKNOWN DNA" = "X*") /obj/effect/decal/cleanable/blood/splatter/xeno - basecolor = BLOOD_COLOR_XENO + 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") - basecolor = BLOOD_COLOR_XENO + color = BLOOD_COLOR_XENO /obj/effect/decal/cleanable/blood/gibs/xeno/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidxenogibs", 5) -/obj/effect/decal/cleanable/blood/xeno/streak(list/directions) +/obj/effect/decal/cleanable/blood/gibs/xeno/streak(list/directions) set waitfor = 0 var/direction = pick(directions) for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) @@ -35,22 +35,22 @@ if(!step_to(src, get_step(src, direction), 0)) break -/obj/effect/decal/cleanable/blood/gibs/xeno/up +/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/down +/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/body +/obj/effect/decal/cleanable/blood/gibs/xeno/body/xeno random_icon_states = list("xgibhead", "xgibtorso") -/obj/effect/decal/cleanable/blood/gibs/xeno/torso +/obj/effect/decal/cleanable/blood/gibs/xeno/torso/xeno random_icon_states = list("xgibtorso") -/obj/effect/decal/cleanable/blood/gibs/xeno/limb +/obj/effect/decal/cleanable/blood/gibs/xeno/limb/xeno random_icon_states = list("xgibleg", "xgibarm") -/obj/effect/decal/cleanable/blood/gibs/xeno/core +/obj/effect/decal/cleanable/blood/gibs/xeno/core/xeno random_icon_states = list("xgibmid1", "xgibmid2", "xgibmid3") /obj/effect/decal/cleanable/blood/gibs/xeno/larva @@ -62,7 +62,6 @@ /obj/effect/decal/cleanable/blood/xtracks icon_state = "tracks" random_icon_states = null - basecolor = BLOOD_COLOR_XENO /obj/effect/decal/cleanable/blood/xtracks/Initialize() add_blood(list("UNKNOWN DNA" = "X*")) diff --git a/code/game/objects/effects/decals/cleanable/gibs.dm b/code/game/objects/effects/decals/cleanable/gibs.dm index 7384b73eb1..48670957cd 100644 --- a/code/game/objects/effects/decals/cleanable/gibs.dm +++ b/code/game/objects/effects/decals/cleanable/gibs.dm @@ -1,11 +1,247 @@ -#define BLOOD_SIZE_SMALL 1 -#define BLOOD_SIZE_MEDIUM 2 -#define BLOOD_SIZE_BIG 3 -#define BLOOD_SIZE_NO_MERGE -1 +/obj/effect/decal/cleanable/blood/gibs + name = "gibs" + desc = "They look bloody and gruesome." + icon_state = "gibbl5" + layer = LOW_OBJ_LAYER + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") + mergeable_decal = FALSE + var/gib_overlay = FALSE + var/slimy_gibs = FALSE + var/body_colors +/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) +/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target) + return -#undef BLOOD_SIZE_SMALL -#undef BLOOD_SIZE_MEDIUM -#undef BLOOD_SIZE_BIG -#undef BLOOD_SIZE_NO_MERGE +/obj/effect/decal/cleanable/blood/gibs/Crossed(mob/living/L) + if(istype(L) && has_gravity(loc)) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + 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) + else + playsound(loc, 'sound/effects/gib_step.ogg', L.has_trait(TRAIT_LIGHT_STEP) ? 20 : 50, 1) + . = ..() + +/obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions) + set waitfor = 0 + var/direction = pick(directions) + for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) + sleep(2) + if(i > 0) + var/list/datum/disease/diseases + GET_COMPONENT(infective, /datum/component/infective) + if(infective) + diseases = infective.diseases + var/obj/effect/decal/cleanable/blood/splatter/splat = new /obj/effect/decal/cleanable/blood/splatter(loc, diseases) + splat.transfer_blood_dna(blood_DNA) + + if(!step_to(src, get_step(src, direction), 0)) + break + +/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" + desc = "Space Jesus, why didn't anyone clean this up? It smells terrible." + bloodiness = 0 + +/obj/effect/decal/cleanable/blood/gibs/old/Initialize(mapload, list/datum/disease/diseases) + . = ..() + setDir(pick(1,2,4,8)) + icon_state += "-old" + add_blood(list("Non-human DNA" = "A+")) + +/obj/effect/decal/cleanable/blood/drip + name = "drips of blood" + desc = "It's gooey." + icon_state = "1" + random_icon_states = list("drip1","drip2","drip3","drip4","drip5") + bloodiness = 0 + var/drips = 1 + +/obj/effect/decal/cleanable/blood/drip/can_bloodcrawl_in() + return TRUE + +/obj/effect/decal/cleanable/blood/gibs/human + +/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/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 + +// Slime Gibs +/obj/effect/decal/cleanable/blood/gibs/slime + desc = "They look gooey and gruesome." + +/obj/effect/decal/cleanable/blood/gibs/slime/Initialize(mapload, list/datum/disease/diseases) + . = ..() + reagents.add_reagent("liquidslimegibs", 5) + update_icon() + guts() + +/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." + +/obj/effect/decal/cleanable/blood/gibs/synth/Initialize(mapload, list/datum/disease/diseases) + . = ..() + reagents.add_reagent("liquidsyntheticgibs", 5) + update_icon() + guts() + +//IPCs +/obj/effect/decal/cleanable/blood/gibs/ipc + desc = "They look sharp yet oozing." + +/obj/effect/decal/cleanable/blood/gibs/ipc/Initialize(mapload, list/datum/disease/diseases) + . = ..() + reagents.add_reagent("liquidoilgibs", 5) + update_icon() + guts() + +/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) + +/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." + +/obj/effect/decal/cleanable/blood/gibs/synth/Initialize(mapload, list/datum/disease/diseases) + . = ..() + reagents.add_reagent("liquidsyntheticgibs", 5) + update_icon() + guts() diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index 6e92f8e876..02bf51bdd9 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -1,66 +1,65 @@ // Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code. -/obj/effect/decal/cleanable/blood/gibs/robot +/obj/effect/decal/cleanable/robot_debris name = "robot debris" desc = "It's a useless heap of junk... or is it?" icon = 'icons/mob/robots.dmi' icon_state = "gib1" layer = LOW_OBJ_LAYER random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7") - basecolor = BLOOD_COLOR_OIL + blood_state = BLOOD_STATE_OIL + bloodiness = BLOOD_AMOUNT_PER_DECAL + mergeable_decal = FALSE -/obj/effect/decal/cleanable/blood/gibs/robot/Initialize(mapload, list/datum/disease/diseases) +/obj/effect/decal/cleanable/robot_debris/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidoilgibs", 5) -/obj/effect/decal/cleanable/blood/gibs/robot/dry() //pieces of robots do not dry up like blood +/obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions) + set waitfor = 0 + var/direction = pick(directions) + for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) + sleep(2) + if (i > 0) + if (prob(40)) + new /obj/effect/decal/cleanable/oil/streak(src.loc) + else if (prob(10)) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() + if (!step_to(src, get_step(src, direction), 0)) + break + +/obj/effect/decal/cleanable/robot_debris/ex_act() return -/obj/effect/decal/cleanable/blood/gibs/robot/streak(var/list/directions) - spawn (0) - var/direction = pick(directions) - for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++) - sleep(3) - if (i > 0) - if (prob(40)) - var/obj/effect/decal/cleanable/blood/oil/streak = new(src.loc) - streak.update_icon() - else if (prob(10)) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - if (step_to(src, get_step(src, direction), 0)) - break - -/obj/effect/decal/cleanable/blood/gibs/robot/ex_act() - return - -/obj/effect/decal/cleanable/blood/gibs/robot/limb +/obj/effect/decal/cleanable/robot_debris/limb random_icon_states = list("gibarm", "gibleg") -/obj/effect/decal/cleanable/blood/gibs/robot/up +/obj/effect/decal/cleanable/robot_debris/up random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibup1","gibup1") -/obj/effect/decal/cleanable/blood/gibs/robot/down +/obj/effect/decal/cleanable/robot_debris/down random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibdown1","gibdown1") -/obj/effect/decal/cleanable/blood/oil +/obj/effect/decal/cleanable/oil name = "motor oil" desc = "It's black and greasy. Looks like Beepsky made another mess." - basecolor = BLOOD_COLOR_OIL + icon = 'icons/mob/robots.dmi' + icon_state = "floor1" + random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") + blood_state = BLOOD_STATE_OIL + bloodiness = BLOOD_AMOUNT_PER_DECAL -/obj/effect/decal/cleanable/blood/oil/Initialize() +/obj/effect/decal/cleanable/oil/Initialize() . = ..() reagents.add_reagent("oil", 30) reagents.add_reagent("liquidoilgibs", 5) -/obj/effect/decal/cleanable/blood/oil/dry() - return +/obj/effect/decal/cleanable/oil/streak + random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5") -/obj/effect/decal/cleanable/blood/oil/streak - amount = 2 +/obj/effect/decal/cleanable/oil/slippery -/obj/effect/decal/cleanable/blood/oil/slippery - -/obj/effect/decal/cleanable/blood/oil/slippery/Initialize() +/obj/effect/decal/cleanable/oil/slippery/Initialize() AddComponent(/datum/component/slippery, 80, (NO_SLIP_WHEN_WALKING | SLIDE)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index f906045d7f..d49f311c18 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -113,7 +113,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) //Blood overlay things var/blood_color - var/image/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite /obj/item/Initialize() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 50ac3a71a2..13ea59cb52 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -194,8 +194,8 @@ if(O.obj_flags & FROZEN) O.make_unfrozen() - if(isliving(AM)) - var/mob/living/M = AM + if(isliving(A)) + var/mob/living/M = A if(ishuman(M)) var/mob/living/carbon/human/H = M // Tracking blood @@ -226,7 +226,7 @@ /turf/proc/is_plasteel_floor() return FALSE -/turf/open/proc/AddTracks(var/typepath,var/bloodDNA,var/comingdir,var/goingdir,var/bloodcolor=BLOOD_COLOR_HUMAN) +/turf/open/proc/AddTracks(var/typepath,var/bloodDNA,var/comingdir,var/goingdir,var/bloodcolor=COLOR_BLOOD_HUMAN) var/obj/effect/decal/cleanable/blood/tracks/tracks = locate(typepath) in src if(!tracks) tracks = new typepath(src) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 26459c8051..fb85d057b2 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -17,7 +17,7 @@ var/adjusted = NORMAL_STYLE mutantrace_variation = MUTANTRACE_VARIATION - var/move_trail = /obj/effect/decal/cleanable/blood/tracks/shoe + 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) @@ -91,6 +91,7 @@ /obj/item/clothing/shoes/clean_blood() ..() + blood_smear = list(BLOOD_STATE_BLOOD = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0) blood_state = BLOOD_STATE_NOT_BLOODY blood_color = null if(ismob(loc)) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 283d2db800..af03bf3f2f 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -77,7 +77,7 @@ 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/tracks/move_trail = /obj/effect/decal/cleanable/blood/tracks/shoe // What marks are left when walking + 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 // @@ -643,9 +643,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.dna.features["taur"] != "None") if(H.dna.features["taur"] in GLOB.noodle_taurs) - move_trail = /obj/effect/decal/cleanable/blood/tracks/snake + 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/tracks/paw + move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/paw //END EDIT @@ -941,7 +941,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) // 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) - return /obj/effect/decal/cleanable/blood/tracks/body + return /obj/effect/decal/cleanable/blood/footprints/tracks/body if(H.shoes || (H.wear_suit && (H.wear_suit.body_parts_covered & FEET))) 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 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 3a9ae056c9..92798c8bc7 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,7 @@ blacklisted = 1 limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human - move_trail = /obj/effect/decal/cleanable/blood/tracks/foot + 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 6ebc77f0b5..d3288e1cd1 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,7 @@ skinned_type = /obj/item/stack/sheet/animalhide/human disliked_food = GROSS | RAW liked_food = JUNKFOOD | FRIED - move_trail = /obj/effect/decal/cleanable/blood/tracks/foot + 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 63705bca90..ea7a20163a 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,7 @@ 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/tracks/foot + 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 22d7250b61..ba4d8b8781 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -73,7 +73,7 @@ /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/tracks/claw + move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/claw if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) return ..() @@ -81,7 +81,7 @@ /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/tracks/foot + move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(TRUE) @@ -97,7 +97,7 @@ mutantlungs = /obj/item/organ/lungs/ashwalker burnmod = 0.9 brutemod = 0.9 - move_trail = /obj/effect/decal/cleanable/blood/tracks/claw + 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 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 6494638f0f..4c2c360c68 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,7 @@ disliked_food = FRUIT | GROSS toxic_food = MEAT | RAW mutanteyes = /obj/item/organ/eyes/moth - move_trail = /obj/effect/decal/cleanable/blood/tracks/claw + 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 fdca7b4f27..c556390533 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,7 @@ 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/tracks/foot + 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 f43e3f1810..05c52ede86 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,7 @@ var/light_oxyheal = 1 var/light_burnheal = 1 var/light_bruteheal = 1 - move_trail = /obj/effect/decal/cleanable/blood/tracks/foot + 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 6d7e93f7c7..606e72839b 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,7 @@ 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/tracks/foot + 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 97d76e883b..e2c8ffb9c3 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,7 @@ 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/tracks/foot + 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/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 35aa0a3793..946024760d 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -276,7 +276,7 @@ There are several things that need to be remembered: var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_SHOES] inv.update_icon() - if(!shoes) + if(!shoes && bloody_feet) var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyfeet", -SHOES_LAYER, color = blood_DNA_to_color()) if(dna.features["taur"] != "None") if(dna.features["taur"] in GLOB.noodle_taurs) diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index f3dfae1889..97f14ce7bd 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -192,6 +192,7 @@ if(blood) target_types += /obj/effect/decal/cleanable/blood + target_types += /obj/effect/decal/cleanable/trail_holder if(pests) target_types += /mob/living/simple_animal/cockroach 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 188aa4d913..3301345fcf 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,7 @@ 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/tracks/paw + 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 +46,7 @@ /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/tracks/paw + move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/paw if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) return ..() @@ -54,7 +54,7 @@ /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/tracks/foot + move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(TRUE) @@ -78,7 +78,7 @@ miss_sound = 'sound/weapons/slashmiss.ogg' liked_food = MEAT | FRUIT disliked_food = TOXIC - move_trail = /obj/effect/decal/cleanable/blood/tracks/claw + 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 +126,7 @@ liked_food = MEAT disliked_food = TOXIC meat = /obj/item/reagent_containers/food/snacks/carpmeat/aquatic - move_trail = /obj/effect/decal/cleanable/blood/tracks/foot + 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 +173,7 @@ miss_sound = 'sound/weapons/slashmiss.ogg' liked_food = MEAT | FRUIT disliked_food = TOXIC - move_trail = /obj/effect/decal/cleanable/blood/tracks/claw + 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 +230,7 @@ /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/tracks/claw + move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/claw if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) return ..() @@ -238,7 +238,7 @@ /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/tracks/foot + move_trail = /obj/effect/decal/cleanable/blood/footprints/tracks/foot if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(TRUE)