Files
Bubberstation/code/modules/research/techweb/nodes/service_nodes.dm
a737659899 feat: A Plastic World (plastic floral decorations) (#96350)
## About The Pull Request

Adds the Rapid Decoration Device and plastic plants and stones!

<div style="display:flex; gap:8px; align-items:center;">
<img width="92" height="93" alt="image"
src="https://github.com/user-attachments/assets/1c53d55f-6dd0-4841-8fb8-f46e5392421c"
/>
<img width="104" height="93" alt="image"
src="https://github.com/user-attachments/assets/0c86eac0-cc43-4587-a1c4-e73c894ab674"
/>
<img
src="https://github.com/user-attachments/assets/d99fef71-31de-4059-940a-73f64ed8660e"
width="415" height="93" alt="image" />
</div>

<img width="830" height="597" alt="image"
src="https://github.com/user-attachments/assets/e51330a3-58fb-428b-b002-323192f52f2e"
/>
<img width="713" height="293" alt="image"
src="https://github.com/user-attachments/assets/45a4f037-4153-461b-84d1-d1c923dcf1a9"
/>

<br>
<br>
Plastic plants are very cheap to make but at the same time are very
fragile (20 integrity points). They cannot be deconstructed by wrenching
(only by destroying them or using a RDD to suck them in) and yield no
resources.
<br>

<br>
The RDD is available in the service protolathe roundstart.
<br>
<br>
<img width="293" height="120" alt="image"
src="https://github.com/user-attachments/assets/69506d34-c309-4c6e-8658-8e0d22816f91"
/>

## Why It's Good For The Game

RDD is a great way to decorate the station or your passion projects
without having to hunt down and dig out decorative flora piece by piece.
I think this will also pair greatly with
https://github.com/tgstation/tgstation/pull/96345

## Changelog
🆑
add: Added fake plastic plants to be used for decoration
add: RDD: Rapid Decoration Device is now available for the service
department
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2026-06-07 23:36:43 -06:00

218 lines
5.8 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",
"wet_floor_sign",
"pushbroom",
"normtrash",
"wirebrush",
"flashlight",
"flare",
"water_balloon",
"ticket_machine",
"radio_entertainment",
"rdd",
"photocopier",
)
/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",
"washing_machine",
)
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",
"digital_clock_frame",
"telescreen_research",
"telescreen_ordnance",
"telescreen_interrogation",
"telescreen_prison",
"telescreen_bar",
"telescreen_entertainment",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(RADIO_CHANNEL_SERVICE)
/datum/techweb_node/consoles/New()
var/has_monastery = CHECK_MAP_JOB_CHANGE(JOB_CHAPLAIN, "has_monastery")
if(has_monastery)
design_ids += "telescreen_monastery"
return ..()
/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",
"foodtray",
"restaurant_portal",
)
/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",
"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",
"aquarium_kit",
)
/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",
"bluespace_fish_tank_kit",
)
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",
"bluespace_reel",
"fish_genegun",
)
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)