Wearing armor reduces the blood loss you incur, no longer are you instantly deleted on blood. Dripping blood WILL kill you if you don't solve that issue, medical gauze has been tripled as a QoL for medical staff as a result.
195 lines
6.4 KiB
Plaintext
195 lines
6.4 KiB
Plaintext
/obj/effect/decal/cleanable/blood
|
|
name = "blood"
|
|
desc = "It's gooey. Perhaps it's the chef's cooking?"
|
|
icon = 'icons/effects/blood.dmi'
|
|
icon_state = "floor1"
|
|
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
|
|
blood_state = BLOOD_STATE_BLOOD
|
|
bloodiness = MAX_SHOE_BLOODINESS
|
|
color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere.
|
|
|
|
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
|
|
if (C.blood_DNA)
|
|
blood_DNA |= C.blood_DNA.Copy()
|
|
update_icon()
|
|
..()
|
|
|
|
/obj/effect/decal/cleanable/blood/transfer_blood_dna()
|
|
..()
|
|
update_icon()
|
|
|
|
/obj/effect/decal/cleanable/blood/transfer_mob_blood_dna()
|
|
. = ..()
|
|
update_icon()
|
|
|
|
/obj/effect/decal/cleanable/blood/update_icon()
|
|
color = blood_DNA_to_color()
|
|
|
|
/obj/effect/decal/cleanable/blood/old
|
|
name = "dried blood"
|
|
desc = "Looks like it's been here a while. Eew."
|
|
bloodiness = 0
|
|
|
|
/obj/effect/decal/cleanable/blood/old/Initialize(mapload, list/datum/disease/diseases)
|
|
..()
|
|
icon_state += "-old"
|
|
add_blood_DNA(list("Non-human DNA" = "A+"))
|
|
|
|
/obj/effect/decal/cleanable/blood/splats
|
|
random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5")
|
|
|
|
/obj/effect/decal/cleanable/blood/splatter
|
|
random_icon_states = list("splatter1", "splatter2", "splatter3", "splatter4", "splatter5")
|
|
|
|
/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"
|
|
desc = "Your instincts say you shouldn't be following these."
|
|
random_icon_states = null
|
|
var/list/existing_dirs = list()
|
|
|
|
/obj/effect/decal/cleanable/trail_holder/update_icon()
|
|
color = blood_DNA_to_color()
|
|
|
|
/obj/effect/cleanable/trail_holder/Initialize()
|
|
. = ..()
|
|
update_icon()
|
|
|
|
/obj/effect/decal/cleanable/trail_holder/can_bloodcrawl_in()
|
|
return TRUE
|
|
|
|
/obj/effect/decal/cleanable/trail_holder/transfer_blood_dna()
|
|
..()
|
|
update_icon()
|
|
|
|
/obj/effect/decal/cleanable/trail_holder/transfer_mob_blood_dna()
|
|
. = ..()
|
|
update_icon()
|
|
|
|
//BLOODY FOOTPRINTS
|
|
/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/list/shoe_types = list()
|
|
|
|
/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
|
|
if(S && S.bloody_shoes[blood_state])
|
|
if(color != bloodtype_to_color(S.last_bloodtype))
|
|
return
|
|
S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
|
shoe_types |= S.type
|
|
if (!(entered_dirs & H.dir))
|
|
entered_dirs |= H.dir
|
|
update_icon()
|
|
|
|
/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
|
|
if(S && S.bloody_shoes[blood_state])
|
|
if(color != bloodtype_to_color(S.last_bloodtype))//last entry - we check its color
|
|
return
|
|
S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
|
shoe_types |= S.type
|
|
if (!(exited_dirs & H.dir))
|
|
exited_dirs |= H.dir
|
|
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-[blood_state]-[Ddir]"]
|
|
if(!bloodstep_overlay)
|
|
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-[blood_state]-[Ddir]"]
|
|
if(!bloodstep_overlay)
|
|
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/examine(mob/user)
|
|
. = ..()
|
|
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
|
|
. += "some <B>[initial(S.name)]</B> [icon2html(initial(S.icon), user)]\n"
|
|
|
|
to_chat(user, .)
|
|
|
|
/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/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."
|
|
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."
|
|
icon_state = FOOTPRINT_SNAKE
|
|
print_state = FOOTPRINT_SNAKE
|
|
|
|
/obj/effect/decal/cleanable/blood/footprints/tracks/paw
|
|
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 = "footprints"
|
|
desc = "They look like tracks left by claws."
|
|
icon_state = FOOTPRINT_CLAW
|
|
print_state = FOOTPRINT_CLAW
|
|
|
|
/obj/effect/decal/cleanable/blood/footprints/tracks/wheels
|
|
name = "tracks"
|
|
desc = "They look like tracks left by wheels."
|
|
gender = PLURAL
|
|
icon_state = FOOTPRINT_WHEEL
|
|
print_state = FOOTPRINT_WHEEL
|
|
|
|
/obj/effect/decal/cleanable/blood/footprints/tracks/body
|
|
name = "trails"
|
|
desc = "A trail left by something being dragged."
|
|
icon_state = FOOTPRINT_DRAG
|
|
print_state = FOOTPRINT_DRAG */
|