eh, was going somewhere with this
IPC gibspawner, looking into infinite footprints
This commit is contained in:
@@ -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,28 +83,26 @@
|
||||
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_state = blood_state
|
||||
S.blood_color = blood_color
|
||||
S.blood_smear = blood_state
|
||||
update_icon()
|
||||
H.update_inv_shoes()
|
||||
|
||||
else if(H.bloodiness && blood_state && bloodiness && (!H.has_trait(TRAIT_LIGHT_STEP) || !H.mind.assigned_role == "Detective"))
|
||||
else if(!H.shoes && blood_state && bloodiness && (!H.has_trait(TRAIT_LIGHT_STEP) || !H.mind.assigned_role == "Detective"))
|
||||
var/add_blood = 0
|
||||
if(H.bloodiness >= 1)
|
||||
add_blood = 5
|
||||
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)
|
||||
H.bloodiness = add_blood
|
||||
if(blood_DNA && blood_DNA.len)
|
||||
H.add_blood(blood_DNA)
|
||||
H.blood_state = blood_state
|
||||
H.blood_color = blood_color
|
||||
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 0
|
||||
return FALSE
|
||||
|
||||
@@ -30,10 +30,8 @@
|
||||
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.color = gibbers.blood_color
|
||||
splat.blood_color = gibbers.blood_color
|
||||
splat.transfer_blood_dna(blood_DNA)
|
||||
if(!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
|
||||
@@ -183,4 +183,65 @@
|
||||
. = ..()
|
||||
reagents.add_reagent("liquidsyntheticgibs", 5)
|
||||
update_icon()
|
||||
guts()
|
||||
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()
|
||||
|
||||
@@ -81,31 +81,32 @@
|
||||
random_icon_states = null
|
||||
var/entered_dirs = 0
|
||||
var/exited_dirs = 0
|
||||
var/print_state = FOOTPRINT_SHOE //the icon state to load images from
|
||||
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)
|
||||
..()
|
||||
if(ishuman(O))
|
||||
var/mob/living/carbon/human/H = O
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
if(S && S.blood_smear[blood_state])
|
||||
if(color != bloodtype_to_color(S.last_bloodtype))
|
||||
return
|
||||
S.blood_smear[blood_state] = max(S.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
shoe_types |= S.type
|
||||
if (!(entered_dirs & H.dir))
|
||||
entered_dirs |= H.dir
|
||||
update_icon()
|
||||
|
||||
else if(H.bloodiness && H.blood_smear[blood_state])
|
||||
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)
|
||||
H.bloodiness = H.bloodinessmax
|
||||
if (!(entered_dirs & H.dir))
|
||||
entered_dirs |= H.dir
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/Uncrossed(atom/movable/O)
|
||||
..()
|
||||
if(ishuman(O))
|
||||
var/mob/living/carbon/human/H = O
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
@@ -118,9 +119,10 @@
|
||||
exited_dirs |= H.dir
|
||||
update_icon()
|
||||
|
||||
else if(H.bloodiness && H.blood_smear[blood_state])
|
||||
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)
|
||||
H.bloodiness = H.bloodinessmax
|
||||
if (!(exited_dirs & H.dir))
|
||||
exited_dirs |= H.dir
|
||||
update_icon()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
/obj/effect/gibspawner
|
||||
var/sparks = 0 //whether sparks spread
|
||||
var/sparks = FALSE //whether sparks spread
|
||||
var/virusProb = 20 //the chance for viruses to spread on the gibs
|
||||
var/gib_mob_type //generate a fake mob to transfer DNA from if we weren't passed a mob.
|
||||
var/gib_mob_species //We'll want to nip-pick their species for blood type stuff
|
||||
@@ -37,7 +37,7 @@
|
||||
if(ishuman(source_mob))
|
||||
var/mob/living/carbon/human/H = source_mob
|
||||
if(H.dna.species.use_skintones)
|
||||
body_coloring = skintone2hex(H.skin_tone)
|
||||
body_coloring = "#[skintone2hex(H.skin_tone)]"
|
||||
else
|
||||
body_coloring = "#[H.dna.features["mcolor"]]"
|
||||
|
||||
@@ -49,16 +49,18 @@
|
||||
H.set_species(gib_mob_species)
|
||||
dna_to_add = temp_mob.get_blood_dna_list()
|
||||
if(H.dna.species.use_skintones)
|
||||
body_coloring = skintone2hex(H.skin_tone)
|
||||
body_coloring = "#[skintone2hex(H.skin_tone)]"
|
||||
else
|
||||
body_coloring = "#[H.dna.features["mcolor"]]"
|
||||
qdel(H)
|
||||
else
|
||||
dna_to_add = temp_mob.get_blood_dna_list()
|
||||
qdel(temp_mob)
|
||||
else
|
||||
else if(!issilicon(temp_mob))
|
||||
dna_to_add = temp_mob.get_blood_dna_list()
|
||||
qdel(temp_mob)
|
||||
else
|
||||
qdel(temp_mob)
|
||||
else
|
||||
dna_to_add = list("Non-human DNA" = random_blood_type()) //else, generate a random bloodtype for it.
|
||||
|
||||
@@ -72,11 +74,12 @@
|
||||
var/mob/living/carbon/digester = loc
|
||||
digester.stomach_contents += gib
|
||||
|
||||
gib.blood_DNA += dna_to_add
|
||||
// color them properly, please.
|
||||
if(gib.gib_overlay)
|
||||
gib.body_colors = body_coloring
|
||||
gib.update_icon()
|
||||
if(dna_to_add)
|
||||
gib.blood_DNA += dna_to_add
|
||||
// color them properly, please.
|
||||
if(gib.gib_overlay)
|
||||
gib.body_colors = body_coloring
|
||||
gib.update_icon()
|
||||
|
||||
var/list/directions = gibdirections[i]
|
||||
if(isturf(loc))
|
||||
@@ -128,13 +131,21 @@
|
||||
|
||||
/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)
|
||||
|
||||
gib_mob_species = /datum/species/jelly
|
||||
|
||||
/obj/effect/gibspawner/human/slimeperson/bodypartless
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/core, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/core, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/torso)
|
||||
gibamounts = list(2, 0, 1, 1, 2, 0)
|
||||
|
||||
/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)
|
||||
gib_mob_type = /mob/living/carbon/human
|
||||
gib_mob_species = /datum/species/ipc
|
||||
|
||||
/obj/effect/gibspawner/human/ipc/bodypartless
|
||||
|
||||
/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)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
|
||||
@@ -180,7 +191,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/robot
|
||||
sparks = 1
|
||||
sparks = TRUE
|
||||
gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up, /obj/effect/decal/cleanable/robot_debris/down, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris/limb)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
gib_mob_type = /mob/living/silicon
|
||||
@@ -191,6 +202,3 @@
|
||||
gibamounts[6] = pick(0, 1, 2)
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/robot/ipc
|
||||
gib_mob_type = /mob/living/carbon/human
|
||||
gib_mob_species = /datum/species/ipc
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
//Gets filled up in create_bodyparts()
|
||||
|
||||
var/list/hand_bodyparts = list() //a collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems)
|
||||
var/list/leg_bodyparts = list()
|
||||
|
||||
var/icon_render_key = ""
|
||||
var/static/list/limb_icon_cache = list()
|
||||
|
||||
@@ -12,7 +12,10 @@
|
||||
new /obj/effect/gibspawner/human/slimeperson/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
|
||||
if(isipcperson(src))
|
||||
new /obj/effect/gibspawner/robot/ipc(drop_location(), dna, get_static_viruses())
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/human/ipc(drop_location(), dna, get_static_viruses())
|
||||
else
|
||||
new /obj/effect/gibspawner/human/ipc/bodypartless(drop_location(), dna, get_static_viruses())
|
||||
|
||||
if(isxenoperson(src))
|
||||
if(with_bodyparts)
|
||||
|
||||
@@ -698,7 +698,6 @@
|
||||
if(H.bloody_feet)
|
||||
H.bloody_feet = 0
|
||||
H.update_inv_shoes()
|
||||
bloodiness = 0
|
||||
|
||||
update_icons() //apply the now updated overlays to the mob
|
||||
|
||||
|
||||
@@ -43,13 +43,10 @@
|
||||
var/bleed_rate = 0 //how much are we bleeding
|
||||
var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding
|
||||
|
||||
var/bloodiness = 0
|
||||
var/bloodinessmax = 5
|
||||
var/last_bloodtype = ""//used to track the last bloodtype to have graced this filthy spaceman; makes for better performing footprint shenanigans
|
||||
var/last_blood_DNA = ""//same as last one
|
||||
var/blood_state = BLOOD_STATE_NOT_BLOODY
|
||||
var/list/blood_smear = list(BLOOD_STATE_BLOOD = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0)
|
||||
var/blood_color //For blood smearing stuff
|
||||
|
||||
var/name_override //For temporary visible name changes
|
||||
|
||||
|
||||
@@ -46,23 +46,21 @@
|
||||
for(var/datum/mutation/human/HM in dna.mutations)
|
||||
HM.on_move(src, NewLoc)
|
||||
|
||||
if(!buckled)
|
||||
if(shoes)
|
||||
if(!lying)
|
||||
if(loc == NewLoc)
|
||||
if(!has_gravity(loc))
|
||||
if(shoes)
|
||||
if(!lying && !buckled)
|
||||
if(loc == NewLoc)
|
||||
if(!has_gravity(loc))
|
||||
return
|
||||
var/obj/item/clothing/shoes/S = shoes
|
||||
//Bloody footprints
|
||||
var/turf/T = get_turf(src)
|
||||
var/step_print = dna.species.get_move_trail(src)
|
||||
if(S.blood_smear && S.blood_smear[S.blood_state])
|
||||
var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(step_print) in T
|
||||
if(oldFP && (oldFP.blood_state == S.blood_state && oldFP.color == bloodtype_to_color(S.last_bloodtype)))
|
||||
return
|
||||
var/obj/item/clothing/shoes/S = shoes
|
||||
//Bloody footprints
|
||||
var/turf/T = get_turf(src)
|
||||
if(S.blood_smear && S.blood_smear[S.blood_state])
|
||||
var/obj/effect/decal/cleanable/blood/footprints/tracks/shoe/oldFP = locate(/obj/effect/decal/cleanable/blood/footprints/tracks/shoe) in T
|
||||
if(oldFP && (oldFP.blood_state == S.blood_state && oldFP.color == bloodtype_to_color(S.last_bloodtype)))
|
||||
return
|
||||
S.blood_smear[S.blood_state] = max(0, S.blood_smear[S.blood_state]-BLOOD_LOSS_PER_STEP)
|
||||
var/obj/effect/decal/cleanable/blood/footprints/tracks/shoe/FP = new /obj/effect/decal/cleanable/blood/footprints/tracks/shoe(T)
|
||||
FP.icon_state = FOOTPRINT_SHOE
|
||||
FP.print_state = FOOTPRINT_SHOE
|
||||
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.blood_smear[S.blood_state]
|
||||
@@ -71,31 +69,24 @@
|
||||
//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
|
||||
//End bloody footprints
|
||||
|
||||
S.step_action()
|
||||
else
|
||||
S.step_action()
|
||||
|
||||
else if(!shoes)
|
||||
if(!buckled)
|
||||
if(loc == NewLoc)
|
||||
if(!has_gravity(loc))
|
||||
return
|
||||
//Bloody footprints without shoes
|
||||
var/turf/T = get_turf(src)
|
||||
var/step_print = dna.species.get_move_trail(src)
|
||||
if(bloodiness && blood_smear[blood_state])
|
||||
var/obj/effect/decal/cleanable/blood/footprints/tracks/oldFP = locate(step_print) in T
|
||||
if(blood_smear && blood_smear[blood_state])
|
||||
var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(step_print) in T
|
||||
if(oldFP && (oldFP.blood_state == blood_state && oldFP.color == bloodtype_to_color(last_bloodtype)))
|
||||
return
|
||||
blood_smear[blood_state] = max(0, blood_smear[blood_state]-BLOOD_LOSS_PER_STEP)
|
||||
var/obj/effect/decal/cleanable/blood/footprints/tracks/FP = new step_print(T)
|
||||
if(("taur" in dna.species.mutant_bodyparts) && (dna.features["taur"] != "None") && !lying)
|
||||
if(dna.features["taur"] in GLOB.noodle_taurs)
|
||||
FP.icon_state = FOOTPRINT_SNAKE
|
||||
FP.print_state = FOOTPRINT_SNAKE
|
||||
else if(dna.features["taur"] in GLOB.paw_taurs)
|
||||
FP.icon_state = FOOTPRINT_PAW
|
||||
FP.print_state = FOOTPRINT_PAW
|
||||
if(!dna.species.move_trail && !lying) //we're assuming people have their chosen snowflake on, so.
|
||||
FP.icon_state = FOOTPRINT_SHOE
|
||||
FP.print_state = FOOTPRINT_SHOE
|
||||
|
||||
FP.blood_state = blood_state
|
||||
FP.entered_dirs |= dir
|
||||
FP.bloodiness = blood_smear[blood_state]
|
||||
@@ -103,7 +94,9 @@
|
||||
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()
|
||||
bloodiness--
|
||||
update_inv_shoes()
|
||||
//End bloody footprints
|
||||
|
||||
|
||||
/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))
|
||||
|
||||
@@ -636,6 +636,12 @@ 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.
|
||||
|
||||
@@ -185,7 +185,7 @@ There are several things that need to be remembered:
|
||||
inv.update_icon()
|
||||
|
||||
if(!gloves && bloody_hands)
|
||||
var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyhands", -GLOVES_LAYER, color = blood_color)
|
||||
var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyhands", -GLOVES_LAYER, color = blood_DNA_to_color())
|
||||
if(get_num_arms() < 2)
|
||||
if(has_left_hand())
|
||||
bloody_overlay.icon_state = "bloodyhands_left"
|
||||
@@ -276,6 +276,32 @@ 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 && 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)
|
||||
bloody_overlay = mutable_appearance('modular_citadel/icons/mob/64x32_effects.dmi', "snekbloodyfeet", -SHOES_LAYER, color = blood_DNA_to_color())
|
||||
if(get_num_legs() < 2)
|
||||
if(has_left_leg())
|
||||
bloody_overlay.icon_state = "snekbloodyfeet_left"
|
||||
else if(has_right_leg())
|
||||
bloody_overlay.icon_state = "snekbloodyfeet_right"
|
||||
else if(dna.features["taur"] in GLOB.paw_taurs)
|
||||
bloody_overlay = mutable_appearance('modular_citadel/icons/mob/64x32_effects.dmi', "pawbloodyfeet", -SHOES_LAYER, color = blood_DNA_to_color())
|
||||
if(get_num_legs() < 2)
|
||||
if(has_left_leg())
|
||||
bloody_overlay.icon_state = "pawbloodyfeet_left"
|
||||
else if(has_right_leg())
|
||||
bloody_overlay.icon_state = "pawbloodyfeet_right"
|
||||
else
|
||||
if(get_num_legs() < 2)
|
||||
if(has_left_leg())
|
||||
bloody_overlay.icon_state = "bloodyfeet_left"
|
||||
else if(has_right_leg())
|
||||
bloody_overlay.icon_state = "bloodyfeet_right"
|
||||
|
||||
overlays_standing[GLOVES_LAYER] = bloody_overlay
|
||||
|
||||
if(shoes)
|
||||
var/obj/item/clothing/shoes/S = shoes
|
||||
shoes.screen_loc = ui_shoes //move the item to the appropriate screen loc
|
||||
|
||||
@@ -49,6 +49,27 @@
|
||||
|
||||
|
||||
|
||||
/mob/proc/has_left_leg()
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/has_left_leg()
|
||||
var/obj/item/bodypart/l_leg = get_bodypart(BODY_ZONE_L_LEG)
|
||||
if(l_leg)
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
|
||||
/mob/proc/has_right_leg()
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/has_right_leg()
|
||||
var/obj/item/bodypart/r_leg = get_bodypart(BODY_ZONE_R_LEG)
|
||||
if(r_leg)
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
|
||||
|
||||
//Limb numbers
|
||||
/mob/proc/get_num_arms(check_disabled = TRUE)
|
||||
return 2
|
||||
|
||||
Reference in New Issue
Block a user