diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index f0105efad5ae..bcfdfb97bfc0 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -259,6 +259,7 @@ #define TRAIT_ANOREXIC "anorexic" #define TRAIT_SHIFTY_EYES "shifty_eyes" #define TRAIT_ANXIOUS "anxious" +#define TRAIT_SEE_REAGENTS "see_reagents" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index b329ff9fcfcd..4dbb0d58a909 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -178,6 +178,8 @@ return TRUE if(isclothing(wear_mask) && (wear_mask.clothing_flags & SCAN_REAGENTS)) return TRUE + if(HAS_TRAIT(src, TRAIT_SEE_REAGENTS)) + return TRUE /// When we're joining the game in [/mob/dead/new_player/proc/create_character], we increment our scar slot then store the slot in our mind datum. /mob/living/carbon/human/proc/increment_scar_slot() diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 349eacbf9eb1..f1f338b611ce 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -343,6 +343,17 @@ category = list("Implants", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/cyberimp_science_analyzer + name = "Chemical Analyzer Implant" + desc = "These cybernetic eye implants will allow rapid identification of reagents. Wiggle eyes to control." + id = "ci-scihud" + build_type = PROTOLATHE | MECHFAB + construction_time = 50 + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plastic = 150) + build_path = /obj/item/organ/cyberimp/eyes/hud/science + category = list("Implants", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + /datum/design/cyberimp_xray name = "X-ray Eyes" desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 5b2e00bd62af..00887016893e 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -547,7 +547,7 @@ display_name = "Cybernetic Implants" description = "Electronic implants that improve humans." prereq_ids = list("adv_biotech", "datatheory") - design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-diaghud") + design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-scihud", "ci-diaghud") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 1289ddc587e1..7115f32f923c 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -45,3 +45,15 @@ name = "Contraband Security HUD Implant" desc = "A Cybersun Industries brand Security HUD Implant. These illicit cybernetic eye implants will display a security HUD over everything you see." syndicate_implant = TRUE + +/obj/item/organ/cyberimp/eyes/hud/science + name = "Chemical Analyzer implant" + desc = "These cybernetic eye implants will allow rapid identification of reagents." + +/obj/item/organ/cyberimp/eyes/hud/science/Insert(var/mob/living/carbon/M, var/special = 0, drop_if_replaced = FALSE) + ..() + ADD_TRAIT(owner, TRAIT_SEE_REAGENTS, src) + +/obj/item/organ/cyberimp/eyes/hud/science/Remove(var/mob/living/carbon/M, var/special = 0) + REMOVE_TRAIT(owner, TRAIT_SEE_REAGENTS, src) + ..()