diff --git a/code/__DEFINES/research/research_categories.dm b/code/__DEFINES/research/research_categories.dm index 65de3edca53..3f6428eb731 100644 --- a/code/__DEFINES/research/research_categories.dm +++ b/code/__DEFINES/research/research_categories.dm @@ -187,6 +187,7 @@ #define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_TOOLS "/Cybernetic Implanting Tools" #define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_UTILITY "/Cybernetic Utility Implants" #define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_MISC "/Cybernetic Miscellaneous Implants" +#define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_SECURITY "/Cybernetic Security Implants" #define RND_SUBCATEGORY_CYBERNETICS_ADVANCED_LIMBS "/Cybernetic Advanced Limbs" // Limb Categories diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index eacd24fdbd0..0b007325829 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -342,17 +342,3 @@ access_view = ACCESS_SECURITY contains = list(/obj/item/clothing/glasses/sunglasses = 1) crate_name = "sunglasses crate" - -/datum/supply_pack/security/armory/beacon_imp - name = "Beacon Implants Crate" - desc = "Contains five Beacon implants." - cost = CARGO_CRATE_VALUE * 5.5 - contains = list(/obj/item/storage/box/beaconimp) - crate_name = "beacon implant crate" - -/datum/supply_pack/security/armory/teleport_blocker_imp - name = "Bluespace Grounding Implants Crate" - desc = "Contains five Bluespace Grounding implants." - cost = CARGO_CRATE_VALUE * 7 - contains = list(/obj/item/storage/box/teleport_blocker) - crate_name = "bluespace grounding implant crate" diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 0b09edf44ac..46e43b0ac66 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -679,28 +679,64 @@ /datum/design/implant_chem name = "Chemical Implant Case" - desc = "A glass case containing an implant." + desc = "A glass case containing a chemical implant." id = "implant_chem" build_type = PROTOLATHE | AWAY_LATHE - materials = list(/datum/material/glass = SMALL_MATERIAL_AMOUNT*7) + materials = list(/datum/material/glass = SMALL_MATERIAL_AMOUNT * 7) build_path = /obj/item/implantcase/chem category = list( - RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_MISC + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_SECURITY ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL /datum/design/implant_tracking name = "Tracking Implant Case" - desc = "A glass case containing an implant." + desc = "A glass case containing a tracking implant." id = "implant_tracking" build_type = PROTOLATHE | AWAY_LATHE - materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*5) + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 5) build_path = /obj/item/implantcase/tracking category = list( - RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_MISC + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_SECURITY ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL +/datum/design/implant_beacon + name = "Beacon Implant Case" + desc = "A glass case containing a beacon implant." + id = "implant_beacon" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 5, /datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 3) + build_path = /obj/item/implantcase/beacon + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/implant_bluespace + name = "Bluespace Grounding Implant Case" + desc = "A glass case containing a teleport blocker implant." + id = "implant_bluespace" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 5, /datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 3) + build_path = /obj/item/implantcase/teleport_blocker + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/implant_exile + name = "Exile Implant Case" + desc = "A glass case containing an exile implant." + id = "implant_exile" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 5, /datum/material/titanium = SMALL_MATERIAL_AMOUNT * 3) + build_path = /obj/item/implantcase/exile + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + //Cybernetic organs /datum/design/cybernetic_liver diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 6cd0688eae6..32d834a19ba 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -1340,12 +1340,24 @@ "c38_trac", "implant_chem", "implant_tracking", + "implant_exile", "implantcase", "implanter", "locator", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) +/datum/techweb_node/advanced_implants + id = "adv_subdermal_implants" + display_name = "Advanced Subdermal Implants" + description = "Subdermal implants that leverage bluespace research to control their bluespace signature." + prereq_ids = list("subdermal_implants", "micro_bluespace") + design_ids = list( + "implant_beacon", + "implant_bluespace", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + /datum/techweb_node/cyber_organs id = "cyber_organs" display_name = "Cybernetic Organs"