From 9be822f8fae323f0a68fb7a1ff045569bd38cb85 Mon Sep 17 00:00:00 2001 From: nesquik <24830358+lbnesquik@users.noreply.github.com> Date: Mon, 15 Sep 2025 02:18:19 +0200 Subject: [PATCH] Add an implantable health scanner (#18465) * Add an health scanner implant. Corrects slight naming mistakes of nearby implants. * Makes it craftable + advanced --------- Co-authored-by: Cameron Lennox --- code/datums/uplink/implants.dm | 7 ++++++- .../items/weapons/implants/implantaugment.dm | 10 +++++++--- .../items/weapons/implants/implantcase.dm | 11 +++++++++- .../items/weapons/storage/uplink_kits.dm | 3 +++ code/modules/organs/internal/augment/bio.dm | 20 +++++++++++++++++++ .../research/tg/designs/implant_designs.dm | 12 +++++++++++ 6 files changed, 58 insertions(+), 5 deletions(-) diff --git a/code/datums/uplink/implants.dm b/code/datums/uplink/implants.dm index b596c1f2fd..a7a27e7b34 100644 --- a/code/datums/uplink/implants.dm +++ b/code/datums/uplink/implants.dm @@ -69,7 +69,12 @@ item_cost = 40 path = /obj/item/storage/box/syndie_kit/imp_aug/sprinter -/datum/uplink_item/item/implants/imp_sprinter +/datum/uplink_item/item/implants/imp_scanner + name = "Integrated Scanner Implant" + item_cost = 15 + path = /obj/item/storage/box/syndie_kit/imp_aug/med_scanner + +/datum/uplink_item/item/implants/imp_surge name = "Integrated Surge Implant" item_cost = 40 path = /obj/item/storage/box/syndie_kit/imp_aug/surge diff --git a/code/game/objects/items/weapons/implants/implantaugment.dm b/code/game/objects/items/weapons/implants/implantaugment.dm index 58e12d9821..db46897533 100644 --- a/code/game/objects/items/weapons/implants/implantaugment.dm +++ b/code/game/objects/items/weapons/implants/implantaugment.dm @@ -197,8 +197,12 @@ * Others */ -/obj/item/implant/organ/pelvic - name = "nanite fabrication implant" - +/obj/item/implant/organ/pelvic/sprint + name = "locomotive optimization implant" organ_to_implant = /obj/item/organ/internal/augment/bioaugment/sprint_enhance organ_display_name = "pelvic augment" + +/obj/item/implant/organ/pelvic/scanner + name = "medican scanner implant" + organ_to_implant = /obj/item/organ/internal/augment/bioaugment/health_scan + organ_display_name = "pelvic augment" diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm index c75d60ef6b..f65134c26f 100644 --- a/code/game/objects/items/weapons/implants/implantcase.dm +++ b/code/game/objects/items/weapons/implants/implantcase.dm @@ -257,7 +257,16 @@ /obj/item/implantcase/sprinter/Initialize(mapload) . = ..() - imp = new /obj/item/implant/organ/pelvic(src) + imp = new /obj/item/implant/organ/pelvic/sprint(src) + +/obj/item/implantcase/med_scanner + name = "glass case - 'Scanner'" + desc = "A case containing a nanite fabricator implant." + icon_state = "implantcase-b" + +/obj/item/implantcase/med_scanner/Initialize(mapload) + . = ..() + imp = new /obj/item/implant/organ/pelvic/scanner(src) /obj/item/implantcase/armblade name = "glass case - 'Armblade'" diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index f5e476d12e..3ebdf5c382 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -129,6 +129,9 @@ /obj/item/storage/box/syndie_kit/imp_aug/sprinter case_type = /obj/item/implantcase/sprinter +/obj/item/storage/box/syndie_kit/imp_aug/med_scanner + case_type = /obj/item/implantcase/med_scanner + /obj/item/storage/box/syndie_kit/imp_aug/armblade case_type = /obj/item/implantcase/armblade diff --git a/code/modules/organs/internal/augment/bio.dm b/code/modules/organs/internal/augment/bio.dm index 5cfef60dc4..5024fada29 100644 --- a/code/modules/organs/internal/augment/bio.dm +++ b/code/modules/organs/internal/augment/bio.dm @@ -101,3 +101,23 @@ if(ishuman(owner)) var/mob/living/carbon/human/H = owner H.add_modifier(/datum/modifier/sprinting, 1 MINUTES) + +/obj/item/organ/internal/augment/bioaugment/health_scan + name = "health scanner implant" + desc = "A small, rounded metallic implant with a passive spectrometer, meant to scan blood passing it by." + + organ_tag = O_AUG_PELVIC + + parent_organ = BP_GROIN + + target_parent_classes = list(ORGAN_FLESH, ORGAN_ROBOT) + var/obj/item/healthanalyzer/med_analyzer = null + +/obj/item/organ/internal/augment/bioaugment/health_scan/Initialize(mapload) + . = ..() + med_analyzer = new /obj/item/healthanalyzer/advanced + +/obj/item/organ/internal/augment/bioaugment/health_scan/augment_action() + if(!owner) + return + med_analyzer.scan_mob(owner,owner) diff --git a/code/modules/research/tg/designs/implant_designs.dm b/code/modules/research/tg/designs/implant_designs.dm index e7a7d08c6f..d85ccb4e85 100644 --- a/code/modules/research/tg/designs/implant_designs.dm +++ b/code/modules/research/tg/designs/implant_designs.dm @@ -125,6 +125,18 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE +/datum/design_techweb/organ/internal/augment/bioaugment/health_scan + name = "Medical Scaner Implant" + desc = "A small implant that fits into a subject's pelvix. It deploys allows the user to analyze their vitals on demand." + id = "health_scan_implant" + build_type = PROTOLATHE + materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000, MAT_SILVER = 1000) + build_path = /obj/item/organ/internal/augment/bioaugment/health_scan + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_COMBAT + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + /datum/design_techweb/organ/internal/augment/armmounted/dartbow name = "Crossbow Implant" desc = "A large implant that fits into a subject's arm. It creates a dartbow when activated."