just need to fine tweak gibs and we're gucci
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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()
|
||||
. = ..()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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("<span class='suicide'>[user] begins tying \the [src] up waaay too tightly! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 88 KiB |
BIN
icons/effects/footprints.dmi
Normal file
BIN
icons/effects/footprints.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user