Files
Bubberstation/code/modules/research/techweb/nodes/service_nodes.dm
Ghom 14ed7f5abb Automated announcement systems now announce researched nodes. (#86093)
## About The Pull Request
The idea was born from a small conversation about bepis nodes having low
visibility, which somehow degressed into the idea of announcing
researched nodes to the channels of the interested departments thru the
announcement system machine, which is what I'm doing here, while also
adding documentation, defines and purging some, not all, instances of
camel cases from announcement_system.dm.

Oh, by the by, like the arrival and new head arrival messages, it can be
customized or disabled by interacting with the announcement system.

## Why It's Good For The Game
I think it's helpful to let players know when the research of their dept
is researched, and I think it's kinda interesting to announce bepis tech
on common like it's some hot stuff while it actually isn't just because
it's often missed out and miscellaneous.

## Changelog

🆑
add: Automated announcement systems now announce researched nodes to
their respective departments. You can stop this by either disabling the
announcement systems or by using a multitool on the circuitboard of the
console you're researching nodes from.
/🆑
2024-09-15 11:57:00 -07:00

192 lines
5.2 KiB
Plaintext

/datum/techweb_node/office_equip
id = TECHWEB_NODE_OFFICE_EQUIP
starting_node = TRUE
display_name = "Office Equipment"
description = "Nanotrasen's finest in ergonomic office tech, ensuring station admin stays productive and compliant with corporate policies — because even in space, paperwork never stops."
design_ids = list(
"fax",
"sec_pen",
"handlabel",
"roll",
"universal_scanner",
"desttagger",
"packagewrap",
"sticky_tape",
"toner_large",
"toner",
"boxcutter",
"bounced_radio",
"radio_headset",
"earmuffs",
"recorder",
"tape",
"toy_balloon",
"pet_carrier",
"chisel",
"spraycan",
"camera_film",
"camera",
"razor",
"bucket",
"mop",
"pushbroom",
"normtrash",
"wirebrush",
"flashlight",
)
/datum/techweb_node/sanitation
id = TECHWEB_NODE_SANITATION
display_name = "Advanced Sanitation Technology"
description = "Nanotrasen's latest in janitorial tech, making sure the station stays spotless and bear-free."
prereq_ids = list(TECHWEB_NODE_OFFICE_EQUIP)
design_ids = list(
"advmop",
"light_replacer",
"spraybottle",
"paint_remover",
"beartrap",
"buffer",
"vacuum",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
discount_experiments = list(/datum/experiment/scanning/random/janitor_trash = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SERVICE)
/datum/techweb_node/consoles
id = TECHWEB_NODE_CONSOLES
display_name = "Civilian Consoles"
description = "User-friendly consoles for non-technical crew members, enhancing communication and access to essential station information."
prereq_ids = list(TECHWEB_NODE_OFFICE_EQUIP)
design_ids = list(
"comconsole",
"automated_announcement",
"cargo",
"cargorequest",
"med_data",
"crewconsole",
"bankmachine",
"account_console",
"idcard",
"c-reader",
"libraryconsole",
"libraryscanner",
"bookbinder",
"barcode_scanner",
"vendor",
"custom_vendor_refill",
"bounty_pad_control",
"bounty_pad",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(RADIO_CHANNEL_SERVICE)
/datum/techweb_node/gaming
id = TECHWEB_NODE_GAMING
display_name = "Gaming"
description = "For the slackers on the station."
prereq_ids = list(TECHWEB_NODE_CONSOLES)
design_ids = list(
"arcade_battle",
"arcade_orion",
"slotmachine",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
discount_experiments = list(/datum/experiment/physical/arcade_winner = TECHWEB_TIER_2_POINTS)
// Kitchen root node
/datum/techweb_node/cafeteria_equip
id = TECHWEB_NODE_CAFETERIA_EQUIP
starting_node = TRUE
display_name = "Cafeteria Equipment"
description = "When standard-issue tubed food no longer satisfies the station crew's appetite..."
design_ids = list(
"griddle",
"microwave",
"bowl",
"plate",
"oven_tray",
"servingtray",
"tongs",
"spoon",
"fork",
"kitchen_knife",
"plastic_spoon",
"plastic_fork",
"plastic_knife",
"shaker",
"drinking_glass",
"shot_glass",
"coffee_cartridge",
"coffeemaker",
"coffeepot",
"syrup_bottle",
)
/datum/techweb_node/food_proc
id = TECHWEB_NODE_FOOD_PROC
display_name = "Food Processing"
description = "Top-tier kitchen appliances from Nanotrasen, designed to keep the crew well-fed and happy."
prereq_ids = list(TECHWEB_NODE_CAFETERIA_EQUIP)
design_ids = list(
"deepfryer",
"oven",
"stove",
"range",
"souppot",
"processor",
"gibber",
"monkey_recycler",
"reagentgrinder",
"microwave_engineering",
"smartfridge",
"dehydrator",
"sheetifier",
"fat_sucker",
"dish_drive",
"roastingstick",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SERVICE)
// Fishing root node
/datum/techweb_node/fishing_equip
id = TECHWEB_NODE_FISHING_EQUIP
starting_node = TRUE
display_name = "Fishing Equipment"
description = "Basic fishing gear tailored for space station environments, perfect for extraterrestrial aquatic pursuits."
design_ids = list(
"fishing_portal_generator",
"fishing_rod",
"fish_case",
)
/datum/techweb_node/fishing_equip_adv
id = TECHWEB_NODE_FISHING_EQUIP_ADV
display_name = "Advanced Fishing Tools"
description = "Continuing advancements in fishing technology, incorporating cutting-edge features in space fishing operations. Just don't try this on space carps..."
prereq_ids = list(TECHWEB_NODE_FISHING_EQUIP)
design_ids = list(
"fishing_rod_tech",
"fishing_gloves",
"mod_fishing",
"stabilized_hook",
"auto_reel",
"fish_analyzer",
"bluespace_fish_case",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
required_experiments = list(/datum/experiment/scanning/fish)
/datum/techweb_node/marine_util
id = TECHWEB_NODE_MARINE_UTIL
display_name = "Marine Utility"
description = "Fish are nice to look at and all, but they can be put to use."
prereq_ids = list(TECHWEB_NODE_FISHING_EQUIP_ADV)
design_ids = list(
"bioelec_gen",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
// only available if you've done the first fishing experiment (thus unlocking fishing tech), but not a strict requirement to get the tech
discount_experiments = list(/datum/experiment/scanning/fish/second = TECHWEB_TIER_3_POINTS)