just need the stupid component to work properly now

This commit is contained in:
Poojawa
2019-05-14 02:36:23 -05:00
parent 49a2f3cc63
commit 77abf6a179
6 changed files with 47 additions and 22 deletions
@@ -84,6 +84,7 @@
S.blood_smear[blood_state] = min(MAX_SHOE_BLOODINESS,S.blood_smear[blood_state]+add_blood)
S.add_blood_DNA(return_blood_DNA())
S.blood_state = blood_state
S.blood_color = blood_color
update_icon()
H.update_inv_shoes()
@@ -97,6 +98,7 @@
H.blood_smear[blood_state] = min(MAX_SHOE_BLOODINESS,H.blood_smear[blood_state]+add_blood)
H.add_blood_DNA(return_blood_DNA())
H.blood_state = blood_state
H.blood_color = blood_color
update_icon()
/obj/effect/decal/cleanable/proc/can_bloodcrawl_in()
@@ -11,12 +11,16 @@
/obj/effect/decal/cleanable/blood/gibs/proc/guts()
if(gib_overlay)
var/mutable_appearance/gibz = mutable_appearance(icon, icon_state + "-overlay", 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.2))
var/mutable_appearance/gibz = mutable_appearance(icon, icon_state + "-overlay", color = blood_color)
gibz.layer = (LOW_OBJ_LAYER - 0.1)
var/mutable_appearance/gibz2 = mutable_appearance(icon, icon_state + "c-overlay", color = body_colors)
gibz2.layer = (LOW_OBJ_LAYER - 0.2)
if(!slimy_gibs)
gibz.appearance_flags = RESET_COLOR
add_overlay(gibz)
add_overlay(gibz2)
add_overlay(gibz)
else
add_overlay(gibz)
add_overlay(gibz2)
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
return
@@ -41,8 +45,10 @@
GET_COMPONENT(infective, /datum/component/infective)
if(infective)
diseases = infective.diseases
var/obj/effect/decal/cleanable/blood/gibs/gibbers = src
var/obj/effect/decal/cleanable/blood/splatter/splat = new /obj/effect/decal/cleanable/blood/splatter(loc, diseases)
splat.update_icon()
splat.color = gibbers.blood_color
if(!step_to(src, get_step(src, direction), 0))
break
@@ -97,8 +103,8 @@
/obj/effect/decal/cleanable/blood/gibs/human/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidgibs", 5)
update_icon()
guts()
update_icon()
/obj/effect/decal/cleanable/blood/gibs/human/up
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
@@ -8,9 +8,9 @@
color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere.
bloodiness = BLOOD_AMOUNT_PER_DECAL
/obj/effect/decal/cleanable/blood/Initialize(mapload, list/datum/disease/diseases)
AddComponent(/datum/component/forensics, null,null,blood_DNA,null,blood_mix_types,blood_mix_color)
/obj/effect/decal/cleanable/blood/ComponentInitialize()
. = ..()
AddComponent(/datum/component/forensics)
update_icon()
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
@@ -20,7 +20,7 @@
update_icon()
return ..()
obj/effect/decal/cleanable/blood/add_blood_DNA(list/blood_dna)
/obj/effect/decal/cleanable/blood/add_blood_DNA(list/blood_dna)
return TRUE
/obj/effect/decal/cleanable/blood/transfer_mob_blood_dna()
@@ -29,10 +29,21 @@ obj/effect/decal/cleanable/blood/add_blood_DNA(list/blood_dna)
/obj/effect/decal/cleanable/blood/update_icon()
GET_COMPONENT(F, /datum/component/forensics)
if(istype(F))
F.blood_mix_color = blood_color
if(F && istype(F))
blood_color = F.blood_mix_color
else
for(var/datum/reagent/R in reagents.reagent_list)
// Get blood data from the blood reagent.
if(istype(R, /datum/reagent/blood))
if(R.data["blood_type"])
blood_color = bloodtype_to_color(R.data["blood_type"])
else if(istype(R, /datum/reagent/liquidgibs))
if(R.data["blood_type"])
blood_color = bloodtype_to_color(R.data["blood_type"])
color = blood_color
/obj/effect/decal/cleanable/blood/old
name = "dried blood"
desc = "Looks like it's been here a while. Eew."
@@ -91,6 +102,7 @@ obj/effect/decal/cleanable/blood/add_blood_DNA(list/blood_dna)
var/obj/item/clothing/shoes/S = H.shoes
if(S && S.blood_smear[blood_state])
S.blood_smear[blood_state] = max(S.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0)
S.blood_color = blood_color
shoe_types |= S.type
if (!(entered_dirs & H.dir))
entered_dirs |= H.dir
@@ -99,6 +111,7 @@ obj/effect/decal/cleanable/blood/add_blood_DNA(list/blood_dna)
else if(!H.bloodiness)
H.blood_smear[blood_state] = max(S.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0)
H.bloodiness = max(H.bloodiness - BLOOD_LOSS_IN_SPREAD, 0)
H.blood_color = blood_color
if (!(entered_dirs & H.dir))
entered_dirs |= H.dir
update_icon()
@@ -111,6 +124,7 @@ obj/effect/decal/cleanable/blood/add_blood_DNA(list/blood_dna)
var/obj/item/clothing/shoes/S = H.shoes
if(S && S.blood_smear[blood_state])
S.blood_smear[blood_state] = max(S.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0)
S.blood_color = blood_color
shoe_types |= S.type
if (!(exited_dirs & H.dir))
exited_dirs |= H.dir
@@ -119,31 +133,29 @@ obj/effect/decal/cleanable/blood/add_blood_DNA(list/blood_dna)
else if(!H.bloodiness)
H.blood_smear[blood_state] = max(H.blood_smear[blood_state] - BLOOD_LOSS_PER_STEP, 0)
H.bloodiness = max(H.bloodiness - BLOOD_LOSS_IN_SPREAD, 0)
H.blood_color = blood_color
if (!(exited_dirs & H.dir))
exited_dirs |= H.dir
update_icon()
/obj/effect/decal/cleanable/blood/footprints/tracks/update_icon()
..()
cut_overlays()
for(var/Ddir in GLOB.cardinals)
GET_COMPONENT(B, /datum/component/forensics)
if(entered_dirs & Ddir)
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]-[color]"]
if(!bloodstep_overlay)
GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]-[color]"] = bloodstep_overlay = image(icon, "[print_state]1", dir = Ddir, color = blood_color)
bloodstep_overlay.Blend(blood_color, ICON_MULTIPLY)
GLOB.bloody_footprints_cache["entered-[print_state]-[Ddir]-[color]"] = bloodstep_overlay = image(icon, "[print_state]1", dir = Ddir)
add_overlay(bloodstep_overlay)
if(exited_dirs & Ddir)
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]-[color]"]
if(!bloodstep_overlay)
GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]-[color]"] = bloodstep_overlay = image(icon, "[print_state]2", dir = Ddir, color = blood_color)
bloodstep_overlay.Blend(blood_color, ICON_MULTIPLY)
GLOB.bloody_footprints_cache["exited-[print_state]-[Ddir]-[color]"] = bloodstep_overlay = image(icon, "[print_state]2", dir = Ddir)
add_overlay(bloodstep_overlay)
alpha = BLOODY_FOOTPRINT_BASE_ALPHA + bloodiness
/obj/effect/decal/cleanable/blood/footprints/tracks/examine(mob/user)
. = ..()
if(shoe_types.len && ishuman(user) && user.mind.assigned_role == "Detective") //gumshoe does the detective thing, not every fucking assistant