diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 5d1dd5c74fb..292ad651235 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -34,6 +34,9 @@ //Detective Work, used for the duplicate data points kept in the scanners var/list/original_atom + //Detective Work, used for allowing a given atom to leave its fibers on stuff. Allowed by default + var/can_leave_fibers = TRUE + var/allow_spin = 1 //Set this to 1 for a _target_ that is being thrown at; if an atom has this set to 1 then atoms thrown AT it will not spin; currently used for the singularity. -Fox var/admin_spawned = 0 //was this spawned by an admin? used for stat tracking stuff. @@ -469,4 +472,4 @@ /atom/on_varedit(modified_var) if(!Debug2) admin_spawned = TRUE - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 76b69edc28c..ed2599e91dd 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -327,7 +327,7 @@ new /obj/item/clothing/suit/storage/det_suit(src) new /obj/item/clothing/suit/storage/det_suit/forensics/blue(src) new /obj/item/clothing/suit/storage/det_suit/forensics/red(src) - new /obj/item/clothing/gloves/color/black(src) + new /obj/item/clothing/gloves/color/black/forensics(src) new /obj/item/clothing/head/det_hat(src) new /obj/item/clothing/shoes/brown(src) new /obj/item/weapon/storage/box/evidence(src) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index ee5022a1793..5b0ec203c1d 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -17,6 +17,13 @@ icon_state = "black" item_state = "r_hands" + +/obj/item/clothing/gloves/color/black/forensics + name = "forensics gloves" + desc = "These high-tech gloves don't leave any material traces on objects they touch. Perfect for leaving crime scenes undisturbed...both before and after the crime." + icon_state = "forensics" + can_leave_fibers = FALSE + /obj/item/clothing/gloves/combat desc = "These tactical gloves are somewhat fire and impact resistant." name = "combat gloves" @@ -124,4 +131,4 @@ to_chat(user, "You cut [cell] away from [src].") cell.forceMove(get_turf(loc)) cell = null - update_icon() \ No newline at end of file + update_icon() diff --git a/code/modules/detective_work/detective_work.dm b/code/modules/detective_work/detective_work.dm index 01267f2fb08..dd22a439c19 100644 --- a/code/modules/detective_work/detective_work.dm +++ b/code/modules/detective_work/detective_work.dm @@ -16,33 +16,33 @@ atom/proc/add_fibers(mob/living/carbon/human/M) var/item_multiplier = istype(src,/obj/item)?1.2:1 if(M.wear_suit) fibertext = "Material from \a [M.wear_suit]." - if(prob(10*item_multiplier) && !(fibertext in suit_fibers)) + if(prob(10*item_multiplier) && !(fibertext in suit_fibers) && M.wear_suit.can_leave_fibers) //log_to_dd("Added fibertext: [fibertext]") suit_fibers += fibertext if(!(M.wear_suit.body_parts_covered & UPPER_TORSO)) if(M.w_uniform) fibertext = "Fibers from \a [M.w_uniform]." - if(prob(12*item_multiplier) && !(fibertext in suit_fibers)) //Wearing a suit means less of the uniform exposed. + if(prob(12*item_multiplier) && !(fibertext in suit_fibers) && M.w_uniform.can_leave_fibers) //Wearing a suit means less of the uniform exposed. //log_to_dd("Added fibertext: [fibertext]") suit_fibers += fibertext if(!(M.wear_suit.body_parts_covered & HANDS)) if(M.gloves) fibertext = "Material from a pair of [M.gloves.name]." - if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + if(prob(20*item_multiplier) && !(fibertext in suit_fibers) && M.gloves.can_leave_fibers) //log_to_dd("Added fibertext: [fibertext]") suit_fibers += fibertext else if(M.w_uniform) fibertext = "Fibers from \a [M.w_uniform]." - if(prob(15*item_multiplier) && !(fibertext in suit_fibers)) + if(prob(15*item_multiplier) && !(fibertext in suit_fibers) && M.w_uniform.can_leave_fibers) // "Added fibertext: [fibertext]" suit_fibers += fibertext if(M.gloves) fibertext = "Material from a pair of [M.gloves.name]." - if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + if(prob(20*item_multiplier) && !(fibertext in suit_fibers) && M.gloves.can_leave_fibers) //log_to_dd("Added fibertext: [fibertext]") suit_fibers += "Material from a pair of [M.gloves.name]." else if(M.gloves) fibertext = "Material from a pair of [M.gloves.name]." - if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + if(prob(20*item_multiplier) && !(fibertext in suit_fibers) && M.gloves.can_leave_fibers) //log_to_dd("Added fibertext: [fibertext]") - suit_fibers += "Material from a pair of [M.gloves.name]." \ No newline at end of file + suit_fibers += "Material from a pair of [M.gloves.name]." diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 82ce8437b28..42f1eda0e74 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ