Revert "fuckit, I'm just gunna wholesale port from baycode I guess"

This reverts commit 11d10d3805.
This commit is contained in:
Poojawa
2019-06-06 19:39:22 -05:00
parent 2606dd0cdd
commit 6b82c985ae
21 changed files with 361 additions and 102 deletions
-14
View File
@@ -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)
+42 -4
View File
@@ -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
@@ -3,24 +3,24 @@
/obj/effect/decal/cleanable/blood/xeno
name = "xeno blood"
desc = "It's green and acidic. It looks like... <i>blood?</i>"
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*"))
@@ -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()
@@ -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... <i>or is it?</i>"
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))
-1
View File
@@ -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()
+3 -3
View File
@@ -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)
+2 -1
View File
@@ -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))
@@ -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
@@ -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
@@ -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.
@@ -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)
@@ -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
@@ -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)
. = ..()
@@ -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()
@@ -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)
. = ..()
@@ -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])
@@ -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])
@@ -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)
@@ -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
@@ -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)