Move autolathe design datums to techweb datums (#19202)

* testing makes me feel good

* invalid lists

* get rid of those boards

* show expected mats

* oop

* error

* wip techweb porting

* more techweb entries

* ported too

* disable those for now

* okay nevermind i guess

* already exists

* assemblies

* moar

* welding helmet

* many entries

* lol tg

* fix test

* again

* fixagain

* more moved

* update techweb test

* catch that too

* screeee

* more fixes

* missing announcement

* orphaned sleevecard

* some more fixing

* test

* more

* oops

* glasses

* illegal icons

* non starting

* it's starting

* messed up

* cleanup

* more generic stuff

* morrrreee

* the plastic set

* oops

* correct value

* barbed wires

* more cleaning

* many more

* gone

* cleanup

* no longer

* do not allow duped designs

* it's own node

* proper order no dupes

* last of the broken nodes

* fix bad path

* cleanup

* more test more limits

* gone

* almost done

* these are gone

* syringe gun

* bioregenerator design

* all moved

* organized and webbed

* more fixes

* oops

* cleaning up

* organization

* clean up

* organize

* organized

* didn't save

* wrong mat

* adds many missing ammo types

* svd doesn't exist

* 10mm pistol added

* magazines not casings

* these are pistols

* this is used by like, one weapon

* m1 is ancient

* this is hunting

* extremely botched untested lathe

* disk junk

* rough foundations

* slowly converting

* slowly building this

* local materials

* almost

* big reorganization

* more cleanup

* more cleaning

* lathe stuff

* small fixes

* oops

* many fixes

* mat fix

* more fixes

* actually isolate the hacked designs

* protolathe hacking

* imprinter hacking

* missing ammos

* sheet printing for autolathe

* fixs

* again

* fixed test

* test test

* fix

* fix

* WHY

* fix it...

* here we go

* material print

* on turf

* body disk

* consistant name

* Many weapons to hacked lathe

* missing node

* wrong section

* fixes

* this list should be unified

* ammo boxes

* don't do single shells anymore

* wat

* specifics

* snowflake

* not needed

* already available

* pickaxe too

* tweak

* removed unneeded node

* missing surgery items

* Apply suggestion from @Cameron-The-Raven

* Adds RMS

* typo

* illegal needs hacked

* disabled material weapons

* circuit testing

* STRING TEST

* test

* fixing some things

* huh?

* hidden circuits

* some flakey boards

* grammar

* fixes

* more hidden

* wrong board

* security cams

* alert consoles

* spaceheater is simple enough to not have one

* pcus

* cargo vendors

* tcomms stuff

* solar tracker circuit

* artifact stuff

* SM stuff

* illegal machines

* med machines

* no longer needed

* more stuff

* these are not standard

* moreeee

* doppler and more

* organized

* finishing

* oop

* use the define

* inheret

* dopper fixes

* space heater

* doing some organization

* explain the var

* some tweaks

* wrong one

* fixed test

* material test too

* simple roto gens

* use the define

* emergency power node

* tgui fixes for icons

* not needed

* color blended material designs

* icons for large research

* oops

* unshit that

* use stack here

* center math

* .

* .

* .

* .

* .

* unifi

* fix these

* NO COPYPASTA

* ILLEEGGALLL

* mandate descriptions

* agony

* actually lets do this

* use macros

* description

* desc

* desc

* desc

* desc

* desc

* desc

* gps desc

* telecomms component desc

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
Will
2026-03-20 19:38:00 -04:00
committed by GitHub
co-authored by Cameron Lennox Kashargul
parent 4c61dc7932
commit 0c8488b0ae
126 changed files with 5731 additions and 2372 deletions
@@ -11,18 +11,20 @@
"tank_management",
"shutoff_monitor",
// "thermomachine",
// "space_heater",
"space_heater",
// "scrubber",
// "generic_tank",
// "oxygen_tank",
// "plasma_tank",
// "plasmaman_tank_belt",
// "plasmarefiller",
// "extinguisher",
"fire_extinguisher",
// "pocketfireextinguisher",
// "gas_filter",
// "plasmaman_gas_filter",
// "pipe_painter",
"atmoscontrol",
"area_atmos",
)
/datum/techweb_node/gas_compression
@@ -48,7 +50,7 @@
// "turbine_stator",
// "atmos_thermal",
// "pneumatic_seal",
// "large_welding_tool",
"large_welding_tool",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_ENGINEERING)
@@ -83,10 +85,8 @@
"gyrotron_control",
"fusion_core",
"fusion_injector",
"rapidpipedispenser",
// "adv_fire_extinguisher",
// "bolter_wrench",
// "rpd_loaded",
// "engine_goggles",
// "crystallizer",
)
@@ -8,7 +8,7 @@
// "healthanalyzer",
// "autopsyscanner",
// "genescanner",
// "medical_kiosk",
"medical_kiosk",
// "chem_master",
// "ph_meter",
// "scigoggles",
@@ -88,10 +88,10 @@
"plant_analyzer",
// "seed_extractor",
// "watering_can",
// "spade",
"spade",
// "cultivator",
// "secateurs",
// "hatchet",
"hatchet",
)
/datum/techweb_node/hydroponics
@@ -1,6 +1,5 @@
/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)
@@ -14,6 +13,9 @@
"assembly-device",
"circuit-bug",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
discount_experiments = list(/datum/experiment/scanning/destruct_circuitboard = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_SCIENCE)
/datum/techweb_node/circuit_shells
id = TECHWEB_NODE_CIRCUIT_SHELLS
@@ -23,7 +25,7 @@
design_ids = list(
"assembly-implant",
"ic_printer_upgrade_adv",
"ic_printer_upgrade_clone",
"ic_printer_upgrade_clone"
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_SCIENCE)
@@ -1,7 +1,6 @@
/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)
@@ -50,6 +49,7 @@
"platform_armour",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_SCIENCE)
/datum/techweb_node/cybernetics
id = TECHWEB_NODE_CYBERNETICS
@@ -90,7 +90,6 @@
"borg_language_module",
"borg_taser_module",
"sflash",
// "cyborgrecharger",
// "advanced_l_arm",
// "advanced_r_arm",
// "advanced_l_leg",
@@ -247,6 +246,7 @@
design_ids = list(
"prot_orch",
"prot_refact",
"protean_reconstitutor",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
announce_channels = list(CHANNEL_SCIENCE, CHANNEL_MEDICAL)
@@ -11,22 +11,24 @@
"basic_micro_laser",
"micro_manipulator",
"basic_cell",
"high_cell",
"device_cell",
"weapon_cell",
"high_mech_cell",
"potato_cell",
"smes_magnetic_coil",
// "basic_scanning",
// "condenser",
// "igniter",
// "infrared_emitter",
// "prox_sensor",
// "signaler",
// "timer",
"igniter",
"infrared_emitter",
"prox_sensor",
"signaler",
"timer",
// "voice_analyzer",
// "health_sensor",
// "sflash",
"console_screen",
"motor",
"gear",
"spring"
)
/datum/techweb_node/parts_upg
@@ -40,8 +42,8 @@
"adv_capacitor",
"adv_sensor",
"high_micro_laser",
"super_cell",
"super_mech_cell",
"high_cell",
"high_mech_cell",
"rped",
"smes_cap_basic",
"smes_trans_basic",
@@ -60,9 +62,9 @@
"super_capacitor",
"phasic_sensor",
"ultra_micro_laser",
"hyper_cell",
"super_cell",
"super_mech_cell",
"super_device",
"hyper_device",
"arped",
"smes_cap_ultra",
"smes_trans_ultra",
@@ -80,7 +82,6 @@
"pbrped",
"hyper_mani",
"hyper_matter_bin",
"hyper_mani",
"hyper_capacitor",
"hyper_sensor",
"hyper_micro_laser",
@@ -109,6 +110,8 @@
"comm_monitor",
"comm_server",
"ntnet_relay",
"pda_multicaster",
"comm_traffic",
"s-ansible",
"s-filter",
"s-amplifier",
@@ -152,19 +155,26 @@
"tscanner",
"rcon_console",
"powermonitor",
"solarcontrol",
"circuit_imprinter",
"airlock_cycling",
"partslathe",
"securedoor",
// "circuit_imprinter_offstation",
// "solarcontrol",
"solarcontrol",
"solar_tracker",
// "solar_panel",
// "solar_tracker",
// "power_control",
// "airalarm_electronics",
// "airlock_board",
// "firealarm_electronics",
"power_control",
"intercom",
"airalarm_electronics",
"airlock_board",
"geiger",
"firealarm_electronics",
"camera_assembly",
"status_display",
"ai_status_display",
"newscaster",
"timeclock",
"keycard_auth",
// "firelock_board",
// "trapdoor_electronics",
// "blast",
@@ -175,16 +185,21 @@
// "decal_painter",
// "rwd",
// "cable_coil",
// "welding_helmet",
// "welding_tool",
// "mini_welding_tool",
// "multitool",
// "wrench",
// "crowbar",
// "screwdriver",
// "wirecutters",
// "light_bulb",
// "light_tube",
"welding_helmet",
"welding_tool",
"mini_welding_tool",
"multitool",
"wrench",
"prybar",
"crowbar",
"screwdriver",
"wirecutters",
"light_bulb",
"light_tube",
"large_light_bulb",
"large_light_tube",
"floor_light",
"electrochromic",
// "crossing_signal",
// "guideway_sensor",
// "manuunloader",
@@ -195,6 +210,17 @@
// "manusorter",
// "manurouter",
// "mailsorter",
"automatic_pipe_layer",
)
/datum/techweb_node/emerge_power
id = TECHWEB_NODE_EMERGPOWER
starting_node = TRUE
display_name = "Emergency Power"
description = "Restarting the station power grid one step at a time."
design_ids = list(
"dtype_rtg",
"ctype_rtg",
)
/datum/techweb_node/energy_manipulation
@@ -218,10 +244,12 @@
// "portable_smes",
// "power_connector",
// "emitter",
// "grounding_rod",
// "cell_charger",
// "recharger",
// "welding_goggles",
"grounding_rod",
"gyrotron",
"supermatter_core_manager",
"supermatter_injector_control",
"welding_goggles",
"electric_welding_tool",
// "tray_goggles",
// "geigercounter",
)
@@ -246,7 +274,7 @@
// "holosignbar",
// "holobarrier_jani",
// "holobarrier_med",
// "holopad",
"holopad",
// "vendatray",
// "holodisk",
// "modular_shield_generator",
@@ -277,8 +305,9 @@
// "rangedanalyzer",
// "rtd_loaded",
// "mech_rcd",
// "rcd_loaded",
// "rcd_ammo",
"rcd_loaded",
"rcd_ammo",
"rms",
// "weldingmask",
// "magboots",
)
@@ -0,0 +1,72 @@
/datum/techweb_node/material_sheets
id = TECHWEB_NODE_MATERIALSHEETS
starting_node = TRUE
display_name = "Material Printing"
description = "Autolathe material printing framework."
design_ids = list(
MAT_IRON,
MAT_STEEL,
"rods",
MAT_SILVER,
MAT_GOLD,
MAT_TIN,
MAT_COPPER,
MAT_DIAMOND,
MAT_PHORON,
MAT_URANIUM,
MAT_TITANIUM,
MAT_PLASTIC,
MAT_PAINITE,
MAT_VOPAL,
MAT_QUARTZ,
MAT_VALHOLLIDE,
MAT_VERDANTIUM,
MAT_MORPHIUM,
MAT_GLAMOUR,
MAT_EAGATE,
MAT_SANDSTONE,
MAT_MARBLE,
MAT_SUPERMATTER,
MAT_PLASTEEL,
MAT_DURASTEEL,
MAT_PLASTITANIUM,
MAT_LEAD,
MAT_PLATINUM,
MAT_METALHYDROGEN,
MAT_DEUTERIUM,
MAT_TRITIUM,
MAT_OSMIUM,
MAT_GRAPHITE,
MAT_BRONZE,
MAT_ALUMINIUM,
MAT_GLASS,
MAT_PGLASS,
MAT_TITANIUMGLASS,
MAT_PLASTITANIUMGLASS,
MAT_WOOD,
MAT_SIFWOOD,
MAT_HARDWOOD,
MAT_BIRCHWOOD,
MAT_PINEWOOD,
MAT_OAKWOOD,
MAT_ACACIAWOOD,
MAT_REDWOOD,
MAT_ALGAE,
MAT_WAX,
MAT_CARDBOARD,
MAT_SNOW,
MAT_SNOWBRICK,
MAT_FLINT,
MAT_CONCRETE,
MAT_CHITIN,
MAT_FUR,
MAT_WOOL,
MAT_RESIN,
MAT_LEATHER,
MAT_COTTON,
MAT_SMOLEBRICKS,
MAT_LOG,
MAT_SIFLOG,
MAT_HARDLOG,
MAT_WOODEN_STICK
)
@@ -1,7 +1,6 @@
// Main Mecha Tree
/datum/techweb_node/mech_assembly
id = TECHWEB_NODE_MECH_ASSEMBLY
starting_node = TRUE
display_name = "Exosuit Assembly"
description = "Development of mechanical exosuits designed to contend with artificial gravity while transporting cargo."
prereq_ids = list(TECHWEB_NODE_ROBOTICS)
@@ -61,6 +60,9 @@
"weasel_right_leg",
"weasel_head",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
discount_experiments = list(/datum/experiment/scanning/random/destruct_ripley_parts = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_SCIENCE)
/datum/techweb_node/mech_equipment
id = TECHWEB_NODE_MECH_EQUIPMENT
@@ -6,7 +6,7 @@
design_ids = list(
"operating",
"scan_console",
// "medicalbed",
"medicalbed",
// "defibmountdefault",
"defibrillator",
// "surgical_drapes",
@@ -14,6 +14,8 @@
"retractor",
"hemostat",
"cautery",
"fixovein",
"bonegel",
"circular_saw",
"surgicaldrill",
"bonesetter",
@@ -36,6 +38,13 @@
// "jerrycan",
// "reflex_hammer",
// "blood_scanner",
"sleevecard",
"body_record_disk",
"scanner_console",
"body_scanner",
"sleeper_console",
"sleeper",
"bioprinter",
)
/datum/techweb_node/chem_synthesis
@@ -107,6 +116,9 @@
// "defibmount",
// "medicalbed_emergency",
// "piercesyringe",
"syringe_gun",
"syringe_cartridge",
"bioregen"
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
required_experiments = list(/datum/experiment/scanning/points/easy_cytology)
@@ -5,21 +5,15 @@
description = "Refinement and processing of alloys and ores to enhance their utility and value."
design_ids = list(
"autolathe",
// "pickaxe",
// "shovel",
"pickaxe",
"shovel",
"iceaxe",
// "conveyor_switch",
// "conveyor_belt",
// "mass_driver",
// "recycler",
// "stack_machine",
// "stack_console",
// "rglass",
// "plasmaglass",
// "plasmareinforcedglass",
// "plasteel",
// "titaniumglass",
// "plastitanium",
// "plastitaniumglass",
)
/datum/techweb_node/mining
@@ -42,7 +36,8 @@
// "b_smelter",
// "b_refinery",
// "ore_redemption",
// "mining_equipment_vendor",
"mining_equipment_vendor",
"survey_equipment_vendor",
// "mech_mscanner",
// "superresonator",
// "mech_drill",
@@ -51,7 +46,6 @@
// "beacon",
// "telesci_gps",
// "mod_visor_meson",
// "mesons",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_SUPPLY)
@@ -121,15 +115,3 @@
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_SUPPLY)
/datum/techweb_node/snow_clearing
id = TECHWEB_NODE_DEBRISREMOVAL
display_name = "Debris Removal"
description = "Development of tools for removing rocks, snow, ice, and many other forms of loose debris."
prereq_ids = list(TECHWEB_NODE_MATERIAL_PROC)
design_ids = list(
"shovel",
"iceaxe",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_SUPPLY)
@@ -1,14 +1,14 @@
/datum/techweb_node/mod_suit
id = TECHWEB_NODE_MOD_SUIT
starting_node = TRUE
display_name = "RIG Suit"
description = "Specialized back mounted power suits with various different modules."
prereq_ids = list(TECHWEB_NODE_ROBOTICS)
starting_node = TRUE
design_ids = list(
"rigmodule_belt_basic",
"zero_rig_module",
"rig_device_pen",
"rig_device_paperdispenser",
"suit_cooling_unit",
// "suit_storage_unit",
// "mod_shell",
// "mod_chestplate",
@@ -34,7 +34,6 @@
"rig_device_plasmacutter",
"rig_device_healthanalyzer",
"rig_gun_sizegun",
"rig_siphon",
"rig_component_datajack",
// "modlink_scryer",
// "mod_clamp",
@@ -9,15 +9,18 @@
"rdconsole",
"bomb_tester",
"tech_disk",
// "rdservercontrol",
// "doppler_array",
"rdservercontrol",
"doppler_array",
// "experimentor",
"destructive_analyzer",
// "destructive_scanner",
"artifact_harvester",
"artifact_scanpad",
// "laptop",
// "portadrive_basic",
// "portadrive_advanced",
// "portadrive_super",
"electropack",
)
/datum/techweb_node/protolathe_boards
@@ -62,7 +65,6 @@
"belt_holding_utility",
"bluespacebeaker",
"bsflare",
"bluespace_crystal",
"beacon",
"beacon_locator",
"chameleon",
@@ -77,7 +79,6 @@
"shelter_capsule_kitchen",
"shelter_capsule_pocketdorm",
"shelter_capsule_luxuryrecroom",
// "ore_silo",
// "plumbing_receiver",
// "adv_watering_can",
// "bluespace_coffeepot",
@@ -4,7 +4,9 @@
display_name = "Potential Recreational Applications"
description = "Devices made for rest and recreation purposes."
design_ids = list(
// TODO: Leash & Collar
"holocollar",
"leash",
"vr_sleeper",
// Compliance
// Mouse Ray
)
@@ -11,16 +11,181 @@
"dartgun_ammo_m",
// "toy_armblade",
// "toygun",
// "c38_rubber",
// "c38_rubber_mag",
// "c38_sec",
// "c38_mag",
// "capbox",
// "foam_dart",
// "sec_beanbag_slug",
// "sec_dart",
// "sec_Islug",
// "sec_rshot",
"knuckledusters",
"tacknife",
/* Unbalanced material weapons
"claymore",
"gladius",
"katana",
"rapier",
"sabre",
"longsword",
// "battleaxe", // No wielded sprite
*/
)
// Basic pistol rounds
/datum/techweb_node/pistol_ammo
id = TECHWEB_NODE_PISTOL_AMMO
starting_node = TRUE
display_name = "Pistol Ammunition"
description = "The smallest of small arms come in a variety of flavors!"
design_ids = list(
// 44
"pistol_mag_44",
"pistol_mag_44_rubber",
// 45
"pistol_mag_45",
"pistol_mag_45_practice",
"pistol_mag_45_rubber",
"pistol_mag_45_flash",
"pistol_mag_45_piercing",
"pistol_mag_45_hollow",
// 9mm
"pistol_mag_9mm",
"pistol_mag_9mm_rubber",
"pistol_mag_9mm_practice",
"pistol_mag_9mm_flash",
)
// Only works with a few pistols
/datum/techweb_node/pistol_special
id = TECHWEB_NODE_PISTOL_SPECIAL
starting_node = TRUE
display_name = "Specialty Pistol Ammunition"
description = "Special bangs for those special bucks."
design_ids = list(
// concealable
"pistol_mag_compact_9mm",
"pistol_mag_compact_9mm_rubber",
"pistol_mag_compact_9mm_practice",
"pistol_mag_compact_9mm_flash",
// 10mm
"pistol_mag_10m",
"pistol_mag_10m_rubber",
"pistol_mag_10m_emp",
"pistol_mag_10m_practice",
)
// Basic rifles
/datum/techweb_node/rifle_ammo
id = TECHWEB_NODE_RIFLE_AMMO
starting_node = TRUE
display_name = "Rifle Ammunition"
description = "Shoot for the moon, even if you miss you'll probably hit the intern anyway."
design_ids = list(
// military
"rifle_mag_545",
"rifle_mag_545_pierce",
"rifle_mag_545_practice",
"rifle_mag_545_hunting",
"rifle_mag_762",
"rifle_mag_762_pierce",
// SMG
"smg_mag_9mm",
"smg_mag_10m",
"smg_mag_10m_practice",
"smg_mag_10m_rubber",
"smg_mag_10m_emp",
)
// Only works with a few specific guns
/datum/techweb_node/rifle_ammo_special
id = TECHWEB_NODE_RIFLE_SPECIAL
starting_node = TRUE
display_name = "Specialty Rifle Ammunition"
description = "Sometimes you just need more gun."
design_ids = list(
// Extended
"rifle_mag_762_ext",
"rifle_mag_762_ext_pierce",
// Rattle em boys!
"uzi_mag_45",
"tommy_mag_45",
"tommy_mag_45_pierce",
"tommy_drum_45",
"tommy_drum_45_pierce",
// big guns
"machinegun_box_545",
"machinegun_box_545_pierce",
"machinegun_box_545_hunting",
"rifle_145_sabot",
// P90
"pistol_mag_topmount_9mm",
"pistol_mag_topmount_9mm_rubber",
"pistol_mag_topmount_9mm_practice",
"pistol_mag_topmount_9mm_flash",
"pistol_mag_topmount_9mm_piercing",
"pistol_mag_ext_topmount_9mm_piercing",
// M1
"rifle_enblock_762",
"rifle_enblock_762_pierce",
)
// Shotgun shells
/datum/techweb_node/shotgun_ammo
id = TECHWEB_NODE_SHOTGUN_AMMO
starting_node = TRUE
display_name = "Shotgun Ammunition"
description = "Why aim when you can just shoot more bullet per bullet?"
design_ids = list(
// Ammoboxes
"ammobox_12g_slug",
"ammobox_12g_blank",
"ammobox_12g_beanbag",
"ammobox_12g_flash",
"ammobox_12g_pellet",
"ammobox_12g_stunshell",
"ammobox_12g_emp",
"ammobox_12g_flechette",
"ammobox_12g_practice",
/* Single shells available, but probably not needed
"ammo_12g_slug",
"ammo_12g_blank",
"ammo_12g_beanbag",
"ammo_12g_flash",
"ammo_12g_pellet",
"ammo_12g_stun",
"ammo_12g_emp",
"ammo_12g_flechette",
"ammo_12g_practice",
*/
// Auto shotgun drums
"shotgun_mag_12g_drum",
"shotgun_mag_12g_drum_beanbag",
"shotgun_mag_12g_drum_pellet",
"shotgun_mag_12g_drum_flash",
)
// Faster reloading
/datum/techweb_node/speedloaders
id = TECHWEB_NODE_SPEEDLOADERS
starting_node = TRUE
display_name = "Speedloaders"
description = "Trying to reload bullet by bullet in the middle of a gunfight is probably a bad idea."
design_ids = list(
// Revolvers
"loader_357",
"loader_357_flash",
"loader_357_stun",
"loader_357_rubber",
"loader_45",
"loader_45_rubber",
"loader_38",
"loader_38_rubber",
"loader_44",
"loader_44_rubber",
// Shotty
"loader_12g_beanbag",
"loader_12g_slug",
"loader_12g_buck",
// Stripperclips
"loader_545",
"loader_545_practice",
"loader_762",
"loader_762_practice",
)
/datum/techweb_node/sec_equip
@@ -30,12 +195,17 @@
prereq_ids = list(TECHWEB_NODE_BASIC_ARMS)
design_ids = list(
"seccamera",
"engcamera",
"crgcamera",
"xenobiocamera",
"sec_data",
"prisonmanage",
"pointdefense",
"pointdefense_control",
// "mining",
// "rdcamera",
"handcuffs",
"legcuffs",
"legcuffs_fuzzy",
"dna_analyzer",
// "security_photobooth",
// "photobooth",
// "scanner_gate",
@@ -101,8 +271,6 @@
"smg",
"ammo_9mm",
"magnetic_ammo",
"stunshell",
"empshell",
"ptrshell",
"monkey_gun",
// "c38_hotshot",
@@ -114,7 +282,6 @@
// "c38_true_strike",
// "c38_true_strike_mag",
// "techshotshell",
// "flechetteshell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
// discount_experiments = list(/datum/experiment/ordnance/explosive/highyieldbomb = TECHWEB_TIER_4_POINTS)
@@ -12,22 +12,22 @@
"juke_remote",
"mail_scanner",
"floor_painter",
// "fax",
"fax",
// "sec_pen",
// "handlabel",
// "roll",
// "universal_scanner",
// "desttagger",
"desttagger",
// "packagewrap",
// "sticky_tape",
"sticky_tape",
// "toner_large",
// "toner",
// "boxcutter",
// "bounced_radio",
// "radio_headset",
"bounced_radio",
"radio_headset",
// "earmuffs",
// "recorder",
// "tape",
"taperecorder",
"recordingcassette",
// "toy_balloon",
// "pet_carrier",
// "chisel",
@@ -35,16 +35,20 @@
// "camera_film",
// "camera",
// "razor",
// "bucket",
// "mop",
"bucket",
"mop",
// "pushbroom",
// "normtrash",
// "wirebrush",
// "flashlight",
"flashlight",
"maglight",
// "water_balloon",
// "ticket_machine",
// "radio_entertainment",
// "photocopier",
"photocopier",
"papershredder",
"ashtray",
"glasstray"
)
/datum/techweb_node/sanitation
@@ -57,8 +61,10 @@
"light_replacer",
"spraybottle",
"beartrap",
"barbedwire",
"snarewire",
// "buffer",
// "vacuum",
"washing"
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
discount_experiments = list(/datum/experiment/scanning/random/janitor_trash = TECHWEB_TIER_2_POINTS)
@@ -71,6 +77,9 @@
prereq_ids = list(TECHWEB_NODE_OFFICE_EQUIP)
design_ids = list(
"med_data",
"med_pcu",
// "skill_data",
"skill_pcu",
"ordercomp",
"supplycomp",
"crewconsole",
@@ -78,6 +87,7 @@
"comconsole",
"idcardconsole",
"jukebox",
"request",
// PDAs
"pda",
"cart_basic",
@@ -105,9 +115,15 @@
"gps_sci",
"gps_exp",
// "automated_announcement",
// "bankmachine",
"bankmachine",
// "account_console",
// "idcard",
"idcard",
"idrestore_console",
"guestpass",
"stockexchange",
"stationalert_engineering",
"stationalert_security",
"stationalert_all",
// "c-reader",
// "libraryconsole",
// "libraryscanner",
@@ -123,7 +139,7 @@
// "telescreen_interrogation",
// "telescreen_prison",
// "telescreen_bar",
// "telescreen_entertainment",
"telescreen_entertainment",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(CHANNEL_SERVICE)
@@ -217,21 +233,36 @@
// "oven_tray",
// "servingtray",
// "tongs",
// "spoon",
// "fork",
// "kitchen_knife",
// "plastic_spoon",
// "plastic_fork",
// "plastic_knife",
"rollingpin",
"spoon",
"fork",
"kitchen_knife",
"plastic_spoon",
"plastic_fork",
"plastic_knife",
"cleaver",
// "shaker",
// "drinking_glass",
// "shot_glass",
// "coffee_cartridge",
// "coffeemaker",
// "coffeepot",
// "syrup_bottle",
// "foodtray",
// "restaurant_portal",
"watercooler_bottle",
"barglass_square",
"barglass_rocks",
"barglass_milkshake",
"barglass_cocktail",
"barglass_shot",
"barglass_pint",
"barglass_mug",
"barglass_wine",
"barglass_metaglass",
"barglass_metapint",
"barglass_carafe",
"barglass_pitcher",
"barglass_coffeemug",
"barglass_jar"
)
/datum/techweb_node/food_proc
@@ -244,9 +275,10 @@
"fryer_board",
"cerealmaker_board",
"candymachine_board",
"honey_extractor",
// "food_replicator",
"borgos1",
// "range",
"range",
// "souppot",
// "processor",
// "gibber",
@@ -258,7 +290,7 @@
// "sheetifier",
// "fat_sucker",
// "dish_drive",
// "roastingstick",
// "roastingstick"
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(CHANNEL_SERVICE)
@@ -273,3 +305,14 @@
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(CHANNEL_SERVICE)
/datum/techweb_node/rapid_service_fabricator
id = TECHWEB_NODE_RSF
display_name = "rapid service fabricator"
description = "A device used to rapidly deploy service items."
prereq_ids = list(TECHWEB_NODE_CAFETERIA_EQUIP)
design_ids = list(
"rsf",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(CHANNEL_SERVICE)
@@ -33,3 +33,42 @@
*/
/datum/techweb/disk
id = "D1SK"
GLOBAL_LIST_EMPTY(autounlock_techwebs)
/**
* Techweb node that automatically unlocks a given buildtype.
* Saved in GLOB.autounlock_techwebs and used to prevent
* creating new ones each time it's needed.
*/
/datum/techweb/autounlocking
///The buildtype we will automatically unlock.
var/allowed_buildtypes = ALL
/datum/techweb/autounlocking/New()
. = ..()
for(var/id in SSresearch.techweb_designs)
var/datum/design_techweb/design = SSresearch.techweb_designs[id]
if(!(design.build_type & allowed_buildtypes))
continue
if(RND_CATEGORY_INITIAL in design.category)
add_design_by_id(id)
/datum/techweb/autounlocking/add_design(datum/design_techweb/design, custom = FALSE, list/add_to)
if(!(design.build_type & allowed_buildtypes))
return FALSE
return ..()
/datum/techweb/autounlocking/autolathe
allowed_buildtypes = AUTOLATHE
/*
/datum/techweb/autounlocking/limbgrower
allowed_buildtypes = LIMBGROWER
/datum/techweb/autounlocking/biogenerator
allowed_buildtypes = BIOGENERATOR
/datum/techweb/autounlocking/smelter
allowed_buildtypes = SMELTER
*/