Moves teleblocker/beacon implants to the techweb, new research node. Exile implants can now be printed (#81230)

## About The Pull Request

This adjusts some of the techweb stuff related to security implants. I
meant to do this in the original PR but got LAZY because I wanted to
push it out the door, and then the feature freeze happened.

Teleport Blocker and Beacon implants have been moved from cargo to the
departmental lathe, printable at (where else?) security. **They can no
longer be purchased from cargo.** They are behind a new research node,
which requires Subdermal Implants and Miniature bluespace research. This
node costs 2500 points.

Exile implants can now be printed from the security lathe.

Security Implants now have their own lathe category.

This also slightly adjusts the descriptions for the implant case designs
to reflect their contents.

## Why It's Good For The Game

First and foremost -- I really had meant to do this in the original PR.

Throwing these implants into cargo was intended to gate access to them
until later in the round. In hindsight, cargo doesn't really accomplish
that in the way I'd hoped. It's still available roundstart, and no price
will change that. Having these be handled by science is a much more
sound idea.

(Also security already has enough to be ordering from cargo, and not
nearly enough reasons to be yelling at science!)

Exile implants should be easier to access, especially for how little
impact they actually have. The simple convenience may be the difference
between a peaceful resolution or being beaten to death in the back of
the brig.

Adjustments to the lathe categories, descriptions are for slightly
better UX.
This commit is contained in:
Rhials
2024-02-10 14:35:03 -06:00
committed by GitHub
parent 4f4b33f9ce
commit dc13f71b2f
4 changed files with 55 additions and 20 deletions
@@ -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
-14
View File
@@ -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"
@@ -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
@@ -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"