Files
Alexis 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00

265 lines
8.8 KiB
Plaintext

/datum/techweb_node/augmentation
id = TECHWEB_NODE_AUGMENTATION
starting_node = TRUE
display_name = "Augmentation"
description = "For those who prefer shiny metal over squishy flesh."
prereq_ids = list(TECHWEB_NODE_ROBOTICS)
design_ids = list(
"borg_chest",
"borg_head",
"borg_l_arm",
"borg_l_leg",
"borg_r_arm",
"borg_r_leg",
"borg_suit",
"cybernetic_eyes",
"cybernetic_eyes_moth",
"cybernetic_ears",
"cybernetic_ears_cat",
"cybernetic_lungs",
"cybernetic_stomach",
"cybernetic_liver",
"cybernetic_heart",
)
experiments_to_unlock = list(
/datum/experiment/scanning/people/android,
)
/datum/techweb_node/cybernetics
id = TECHWEB_NODE_CYBERNETICS
display_name = "Cybernetics"
description = "Sapient robots with preloaded tool modules and programmable laws."
prereq_ids = list(TECHWEB_NODE_AUGMENTATION)
design_ids = list(
"robocontrol",
"borgupload",
"cyborgrecharger",
"mmi_posi",
"mmi",
"mmi_m",
"advanced_l_arm",
"advanced_r_arm",
"advanced_l_leg",
"advanced_r_leg",
"borg_upgrade_rename",
"borg_upgrade_restart",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE)
/datum/techweb_node/borg_service
id = TECHWEB_NODE_BORG_SERVICES
display_name = "Service Cyborg Upgrades"
description = "Let them do the cookin' by the book."
prereq_ids = list(TECHWEB_NODE_CYBERNETICS)
design_ids = list(
"borg_upgrade_rolling_table",
"borg_upgrade_condiment_synthesizer",
"borg_upgrade_silicon_knife",
"borg_upgrade_service_apparatus",
"borg_upgrade_drink_apparatus",
"borg_upgrade_service_cookbook",
"borg_upgrade_botany",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE)
/datum/techweb_node/borg_mining
id = TECHWEB_NODE_BORG_MINING
display_name = "Mining Cyborg Upgrades"
description = "To mine places too dangerous for humans."
prereq_ids = list(TECHWEB_NODE_CYBERNETICS)
design_ids = list(
"borg_upgrade_lavaproof",
"borg_upgrade_holding",
"borg_upgrade_diamonddrill",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE)
/datum/techweb_node/borg_medical
id = TECHWEB_NODE_BORG_MEDICAL
display_name = "Medical Cyborg Upgrades"
description = "Let them follow Asimov's First Law."
prereq_ids = list(TECHWEB_NODE_BORG_SERVICES, TECHWEB_NODE_SURGERY_ADV)
design_ids = list(
"borg_upgrade_pinpointer",
"borg_upgrade_beakerapp",
"borg_upgrade_defibrillator",
"borg_upgrade_expandedsynthesiser",
"borg_upgrade_piercinghypospray",
"borg_upgrade_surgicalprocessor",
"borg_upgrade_surgicalomnitool",
"borg_upgrade_syringe",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE)
/datum/techweb_node/borg_utility
id = TECHWEB_NODE_BORG_UTILITY
display_name = "Utility Cyborg Upgrades"
description = "Let them wipe our floors for us."
prereq_ids = list(TECHWEB_NODE_BORG_SERVICES, TECHWEB_NODE_SANITATION)
design_ids = list(
"borg_upgrade_advancedmop",
// "borg_upgrade_broomer", BUBBERS EDIT, ROUNDSTART MODULE
"borg_upgrade_expand",
"borg_upgrade_prt",
"borg_upgrade_plunger",
"borg_upgrade_high_capacity_replacer",
"borg_upgrade_selfrepair",
"borg_upgrade_thrusters",
"borg_upgrade_trashofholding",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE)
/datum/techweb_node/borg_utility/New()
. = ..()
if(!CONFIG_GET(flag/disable_secborg))
design_ids += "borg_upgrade_disablercooler"
/datum/techweb_node/borg_engi
id = TECHWEB_NODE_BORG_ENGI
display_name = "Engineering Cyborg Upgrades"
description = "To slack even more."
prereq_ids = list(TECHWEB_NODE_BORG_MINING, TECHWEB_NODE_PARTS_UPG)
design_ids = list(
"borg_upgrade_rped",
"borg_upgrade_engineeringomnitool",
"borg_upgrade_engineeringapp",
"borg_upgrade_inducer",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE)
// Implants root node
/datum/techweb_node/passive_implants
id = TECHWEB_NODE_PASSIVE_IMPLANTS
display_name = "Passive Implants"
description = "Implants designed to operate seamlessly without active user input, enhancing various physiological functions or providing continuous benefits."
prereq_ids = list(TECHWEB_NODE_AUGMENTATION)
design_ids = list(
"skill_station",
"implant_trombone",
"implant_chem",
"implant_tracking",
"implant_exile",
"implant_beacon",
"implant_bluespace",
"implantcase",
"implanter",
"locator",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(RADIO_CHANNEL_SECURITY, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/cyber/cyber_implants
id = TECHWEB_NODE_CYBER_IMPLANTS
display_name = "Cybernetic Implants"
description = "Advanced technological enhancements integrated into the body, offering improved physical capabilities."
prereq_ids = list(TECHWEB_NODE_PASSIVE_IMPLANTS, TECHWEB_NODE_CYBERNETICS)
design_ids = list(
"ci-reviver", // BUBBER EDIT - MOVED
"ci-breather",
"ci-nutriment",
"ci-nutrimentplus", // BUBBER EDIT - ADDITION
"ci-thrusters",
//"ci-herculean", // BUBBER EDIT - REMOVAL
"ci-connector",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/cyber/New()
..()
if(HAS_TRAIT(SSstation, STATION_TRAIT_CYBERNETIC_REVOLUTION))
research_costs[TECHWEB_POINT_TYPE_GENERIC] /= 2
/datum/techweb_node/cyber/combat_implants
id = TECHWEB_NODE_COMBAT_IMPLANTS
display_name = "Combat Implants"
description = "To make sure that you can wake the f*** up, samurai."
prereq_ids = list(TECHWEB_NODE_CYBER_IMPLANTS)
design_ids = list(
//"ci-reviver", // BUBBER EDIT - MOVED
"ci-antidrop",
"ci-antistun",
"ci-tacvisor",
"ci-herculean", // BUBBER EDIT - ADDITION
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/cyber/integrated_toolsets
id = TECHWEB_NODE_INTERGRATED_TOOLSETS
display_name = "Integrated Toolsets"
description = "Decades of contraband smuggling by assistants have led to the development of a full toolbox that fits seamlessly into your arm."
prereq_ids = list(TECHWEB_NODE_COMBAT_IMPLANTS, TECHWEB_NODE_EXP_TOOLS)
design_ids = list(
//"ci-nutrimentplus", // BUBBER EDIT - REMOVAL
"ci-surgery",
"ci-surgery-brain",
"ci-toolset",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/cyber/cyber_organs
id = TECHWEB_NODE_CYBER_ORGANS
display_name = "Cybernetic Organs"
description = "We have the technology to rebuild him."
prereq_ids = list(TECHWEB_NODE_CYBERNETICS)
design_ids = list(
"cybernetic_eyes_improved",
"cybernetic_eyes_improved_moth",
"cybernetic_ears_u",
"cybernetic_ears_u_cat",
"cybernetic_lungs_tier2",
"cybernetic_stomach_tier2",
"cybernetic_liver_tier2",
"cybernetic_heart_tier2",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/cyber/cyber_organs_upgraded
id = TECHWEB_NODE_CYBER_ORGANS_UPGRADED
display_name = "Upgraded Cybernetic Organs"
description = "We have the technology to upgrade him."
prereq_ids = list(TECHWEB_NODE_CYBER_ORGANS)
design_ids = list(
"ci-gloweyes",
"ci-welding",
"ci-gloweyes-moth",
"ci-welding-moth",
"cybernetic_ears_whisper",
"cybernetic_ears_whisper_cat",
"cybernetic_ears_volume",
"cybernetic_ears_volume_cat",
"cybernetic_lungs_tier3",
"cybernetic_stomach_tier3",
"cybernetic_liver_tier3",
"cybernetic_heart_tier3",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
required_experiments = list(/datum/experiment/scanning/people/augmented_organs)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/cyber/cyber_organs_adv
id = TECHWEB_NODE_CYBER_ORGANS_ADV
display_name = "Advanced Cybernetic Organs"
description = "Cutting-edge cybernetic organs offering enhanced sensory capabilities, making it easier than ever to detect ERP."
prereq_ids = list(TECHWEB_NODE_CYBER_ORGANS_UPGRADED, TECHWEB_NODE_NIGHT_VISION)
design_ids = list(
"cybernetic_ears_xray",
"cybernetic_ears_xray_cat",
"ci-thermals",
"ci-xray",
"ci-thermals-moth",
"ci-xray-moth",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
discount_experiments = list(/datum/experiment/scanning/people/android = TECHWEB_TIER_5_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)