Blood colors happens to footprints now.
Different prints not working. splatter effect not working, I'm just sick of looking at this right now.
This commit is contained in:
@@ -90,12 +90,13 @@
|
||||
|
||||
else if(H.bloodiness && blood_state && bloodiness && (!H.has_trait(TRAIT_LIGHT_STEP) || !H.mind.assigned_role == "Detective"))
|
||||
var/add_blood = 0
|
||||
if(H.bloodiness >= BLOOD_GAIN_PER_STEP)
|
||||
add_blood = BLOOD_GAIN_PER_STEP
|
||||
if(H.bloodiness >= 1)
|
||||
add_blood = 5
|
||||
else
|
||||
add_blood = bloodiness
|
||||
bloodiness -= add_blood
|
||||
H.blood_smear[blood_state] = min(MAX_SHOE_BLOODINESS,H.blood_smear[blood_state]+add_blood)
|
||||
H.bloodiness = add_blood
|
||||
H.add_blood_DNA(return_blood_DNA())
|
||||
H.blood_state = blood_state
|
||||
H.blood_color = blood_color
|
||||
|
||||
@@ -33,8 +33,10 @@
|
||||
GET_COMPONENT(infective, /datum/component/infective)
|
||||
if(infective)
|
||||
diseases = infective.diseases
|
||||
var/obj/effect/decal/cleanable/blood/gibs/gibbers = src
|
||||
var/obj/effect/decal/cleanable/blood/splatter/xeno/splat = new /obj/effect/decal/cleanable/blood/splatter/xeno(loc, diseases)
|
||||
splat.update_icon()
|
||||
splat.color = gibbers.blood_color
|
||||
splat.blood_color = gibbers.blood_color
|
||||
if(!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
|
||||
@@ -11,14 +11,13 @@
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/proc/guts()
|
||||
if(gib_overlay)
|
||||
var/mutable_appearance/gibz = mutable_appearance(icon, icon_state + "-overlay", color = blood_color)
|
||||
gibz.layer = (LOW_OBJ_LAYER - 0.1)
|
||||
var/mutable_appearance/gibz2 = mutable_appearance(icon, icon_state + "c-overlay", color = body_colors)
|
||||
gibz2.layer = (LOW_OBJ_LAYER - 0.2)
|
||||
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)
|
||||
|
||||
@@ -31,6 +30,8 @@
|
||||
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)
|
||||
. = ..()
|
||||
@@ -48,6 +49,7 @@
|
||||
var/obj/effect/decal/cleanable/blood/gibs/gibbers = src
|
||||
var/obj/effect/decal/cleanable/blood/splatter/splat = new /obj/effect/decal/cleanable/blood/splatter(loc, diseases)
|
||||
splat.color = gibbers.blood_color
|
||||
splat.blood_color = gibbers.blood_color
|
||||
|
||||
if(!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
@@ -8,10 +8,6 @@
|
||||
color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere.
|
||||
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
||||
|
||||
/obj/effect/decal/cleanable/blood/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/forensics)
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
|
||||
if(bloodiness)
|
||||
@@ -28,21 +24,24 @@
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/update_icon()
|
||||
GET_COMPONENT(F, /datum/component/forensics)
|
||||
if(F && istype(F))
|
||||
blood_color = F.blood_mix_color
|
||||
if(!blood_color)
|
||||
if(reagents.reagent_list.len)
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
// Get blood data from the blood reagent.
|
||||
if(istype(R, /datum/reagent/blood))
|
||||
if(R.data["blood_type"])
|
||||
blood_color = bloodtype_to_color(R.data["blood_type"])
|
||||
else if(istype(R, /datum/reagent/liquidgibs))
|
||||
if(R.data["blood_type"])
|
||||
blood_color = bloodtype_to_color(R.data["blood_type"])
|
||||
else
|
||||
return
|
||||
else
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
// Get blood data from the blood reagent.
|
||||
if(istype(R, /datum/reagent/blood))
|
||||
if(R.data["blood_type"])
|
||||
blood_color = bloodtype_to_color(R.data["blood_type"])
|
||||
else if(istype(R, /datum/reagent/liquidgibs))
|
||||
if(R.data["blood_type"])
|
||||
blood_color = bloodtype_to_color(R.data["blood_type"])
|
||||
|
||||
color = blood_color
|
||||
color = blood_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"
|
||||
@@ -108,9 +107,9 @@
|
||||
entered_dirs |= H.dir
|
||||
update_icon()
|
||||
|
||||
else if(!H.bloodiness)
|
||||
H.blood_smear[blood_state] = max(S.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
H.bloodiness = max(H.bloodiness - BLOOD_LOSS_IN_SPREAD, 0)
|
||||
else if(H.bloodiness && H.blood_smear[blood_state])
|
||||
H.blood_smear[blood_state] = max(H.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
H.bloodiness = H.bloodinessmax
|
||||
H.blood_color = blood_color
|
||||
if (!(entered_dirs & H.dir))
|
||||
entered_dirs |= H.dir
|
||||
@@ -130,9 +129,9 @@
|
||||
exited_dirs |= H.dir
|
||||
update_icon()
|
||||
|
||||
else if(!H.bloodiness)
|
||||
else if(H.bloodiness && H.blood_smear[blood_state])
|
||||
H.blood_smear[blood_state] = max(H.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
H.bloodiness = max(H.bloodiness - BLOOD_LOSS_IN_SPREAD, 0)
|
||||
H.bloodiness = H.bloodinessmax
|
||||
H.blood_color = blood_color
|
||||
if (!(exited_dirs & H.dir))
|
||||
exited_dirs |= H.dir
|
||||
@@ -143,17 +142,18 @@
|
||||
|
||||
for(var/Ddir in GLOB.cardinals)
|
||||
if(entered_dirs & Ddir)
|
||||
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]-[color]"]
|
||||
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]"]
|
||||
if(!bloodstep_overlay)
|
||||
GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]-[color]"] = bloodstep_overlay = image(icon, "[print_state]1", dir = Ddir)
|
||||
GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[print_state]1", dir = Ddir)
|
||||
add_overlay(bloodstep_overlay)
|
||||
if(exited_dirs & Ddir)
|
||||
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]-[color]"]
|
||||
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]"]
|
||||
if(!bloodstep_overlay)
|
||||
GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]-[color]"] = bloodstep_overlay = image(icon, "[print_state]2", dir = Ddir)
|
||||
GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[print_state]2", dir = Ddir)
|
||||
add_overlay(bloodstep_overlay)
|
||||
|
||||
alpha = BLOODY_FOOTPRINT_BASE_ALPHA + bloodiness
|
||||
color = blood_color
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/examine(mob/user)
|
||||
@@ -166,8 +166,8 @@
|
||||
|
||||
to_chat(user, .)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/replace_decal(obj/effect/decal/cleanable/C)
|
||||
if(blood_state != C.blood_state) //We only replace footprints of the same type as us
|
||||
/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(color != C.color)
|
||||
return
|
||||
@@ -178,12 +178,18 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/footprints
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/shoe
|
||||
name = "footprints"
|
||||
desc = "They look like tracks left by footwear."
|
||||
icon_state = FOOTPRINT_SHOE
|
||||
print_state = FOOTPRINT_SHOE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/foot
|
||||
name = "footprints"
|
||||
desc = "They look like tracks left by a bare foot."
|
||||
icon_state = FOOTPRINT_FOOT
|
||||
print_state = FOOTPRINT_FOOT
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/snake
|
||||
name = "tracks"
|
||||
desc = "They look like tracks left by a giant snake."
|
||||
@@ -191,14 +197,14 @@
|
||||
print_state = FOOTPRINT_SNAKE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/paw
|
||||
name = "tracks"
|
||||
desc = "They look like tracks left by mammalian paws."
|
||||
name = "footprints"
|
||||
desc = "They look like tracks left by paws."
|
||||
icon_state = FOOTPRINT_PAW
|
||||
print_state = FOOTPRINT_PAW
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/claw
|
||||
name = "tracks"
|
||||
desc = "They look like tracks left by reptilian claws."
|
||||
name = "footprints"
|
||||
desc = "They look like tracks left by claws."
|
||||
icon_state = FOOTPRINT_CLAW
|
||||
print_state = FOOTPRINT_CLAW
|
||||
|
||||
|
||||
@@ -111,6 +111,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
|
||||
var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder!
|
||||
|
||||
//Blood overlay things
|
||||
var/blood_color
|
||||
|
||||
/obj/item/Initialize()
|
||||
|
||||
materials = typelist("materials", materials)
|
||||
|
||||
Reference in New Issue
Block a user