Files
Bubberstation/code/modules/research/techweb/nodes/circuit_nodes.dm
SmArtKar 44c968f75e Adds a unit test for techweb design presence, puts some missing designs into protolathes (#90219)
## About The Pull Request

Adds a unit test that checks that all designs are accessible through
some source, be it techweb, disks, or innate designs. Certain designs,
like pocket extinguishers, entertainment screens, etc, that have been
present in autolathes but not in the techweb despite having PROTOLATHE
flag assigned have been put into protolathes (where it made sense,
otherwise the flag was removed).
An important change is that restaurant portals are now printable, and
thus can be constructed and deconstructed. Indestructible portals have
been a major gripe of mine for a while, and I don't see a solid reason
for keeping them indestructible if they can easily be printed from the
service protolathe.

Closes #90212

## Why It's Good For The Game

Initial argument for keeping portals unbreakable was to prevent people
from griefing the chef/bartender, but by that logic we can make most
machinery unbreakable too. I don't think that having an unbreakable
portal is good if its locking us out from allowing chefs/bartenders to
reorder or even outright reposition their lunchroom/bar.

## Changelog

🆑
balance: Restaurant portals can now be printed, constructed and
deconstructed. They're also no longer completely invulnerable.
/🆑
2025-04-03 08:05:08 +02:00

159 lines
4.0 KiB
Plaintext

/datum/techweb_node/programming
id = TECHWEB_NODE_PROGRAMMING
starting_node = TRUE
display_name = "Programming"
description = "Dedicate an entire shift to program a fridge to greet you when opened."
prereq_ids = list(TECHWEB_NODE_ROBOTICS)
design_ids = list(
"component_printer",
"module_duplicator",
"circuit_multitool",
"compact_remote_shell",
"usb_cable",
"integrated_circuit",
"comp_access_checker",
"comp_arctan2",
"comp_arithmetic",
"comp_assoc_list_pick",
"comp_assoc_list_remove",
"comp_assoc_list_set",
"comp_binary_convert",
"comp_clock",
"comp_comparison",
"comp_concat",
"comp_concat_list",
"comp_decimal_convert",
"comp_delay",
"comp_direction",
"comp_element_find",
"comp_filter_list",
"comp_foreach",
"comp_format",
"comp_format_assoc",
"comp_get_column",
"comp_gps",
"comp_health",
"comp_health_state",
"comp_hear",
"comp_id_access_reader",
"comp_id_getter",
"comp_id_info_reader",
"comp_index",
"comp_index_assoc",
"comp_index_table",
"comp_laserpointer",
"comp_length",
"comp_light",
"comp_list_add",
"comp_list_assoc_literal",
"comp_list_clear",
"comp_list_literal",
"comp_list_pick",
"comp_list_remove",
"comp_logic",
"comp_matscanner",
"comp_mmi",
"comp_module",
"comp_multiplexer",
"comp_not",
"comp_ntnet_receive",
"comp_ntnet_send",
"comp_ntnet_send_list_literal",
"comp_nfc_send",
"comp_nfc_receive",
"comp_pinpointer",
"comp_pressuresensor",
"comp_radio",
"comp_random",
"comp_reagents",
"comp_router",
"comp_select_query",
"comp_self",
"comp_set_variable_trigger",
"comp_soundemitter",
"comp_species",
"comp_speech",
"comp_split",
"comp_string_contains",
"comp_tempsensor",
"comp_textcase",
"comp_timepiece",
"comp_toggle",
"comp_tonumber",
"comp_tostring",
"comp_trigonometry",
"comp_typecast",
"comp_typecheck",
"comp_view_sensor",
"comp_wire_bundle",
"comp_wirenet_receive",
"comp_wirenet_send",
"comp_wirenet_send_literal",
)
/datum/techweb_node/circuit_shells
id = TECHWEB_NODE_CIRCUIT_SHELLS
display_name = "Advanced Circuit Shells"
description = "Adding brains to more things."
prereq_ids = list(TECHWEB_NODE_PROGRAMMING)
design_ids = list(
"assembly_shell",
"bot_shell",
"controller_shell",
"dispenser_shell",
"door_shell",
"gun_shell",
"keyboard_shell",
"module_shell",
"money_bot_shell",
"scanner_gate_shell",
"scanner_shell",
"undertile_shell",
"wallmount_shell",
"comp_equip_action",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
/datum/techweb_node/bci
id = TECHWEB_NODE_BCI
display_name = "Brain-Computer Interface"
description = "Embedded brain circuits. May occasionally stream Nanotrasen ads in dreams."
prereq_ids = list(TECHWEB_NODE_CIRCUIT_SHELLS, TECHWEB_NODE_PASSIVE_IMPLANTS)
design_ids = list(
"bci_implanter",
"bci_shell",
"comp_bar_overlay",
"comp_camera_bci",
"comp_counter_overlay",
"comp_install_detector",
"comp_object_overlay",
"comp_reagent_injector",
"comp_target_intercept",
"comp_thought_listener",
"comp_vox",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
discount_experiments = list(/datum/experiment/scanning/people/skillchip = TECHWEB_TIER_2_POINTS)
/datum/techweb_node/programmed_robot
id = TECHWEB_NODE_PROGRAMMED_ROBOT
display_name = "Programmed Robot"
description = "Grants access to movable shells, allowing for remote operations and pranks."
prereq_ids = list(TECHWEB_NODE_CIRCUIT_SHELLS)
design_ids = list(
"drone_shell",
"comp_pathfind",
"comp_pull",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
/datum/techweb_node/programmed_server
id = TECHWEB_NODE_PROGRAMMED_SERVER
display_name = "Programmed Server"
description = "Grants access to a server shell that has a very high capacity for components."
prereq_ids = list(TECHWEB_NODE_BCI)
design_ids = list(
"server_shell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)