Files
Bubberstation/code/modules/research/techweb/all_nodes.dm
SkyratBot 0cdfe18b1c [MIRROR] Adds the MMI circuit component. Allows inputting signals into circuit component ports (#6493)
* Adds the MMI circuit component. Allows inputting signals into circuit component ports (#59743)

Adds the MMI component which outputs signals whenever they click somewhere/try to move.
Allows inputting signals into ports, making it easier to debug integrated components.

* Adds the MMI circuit component. Allows inputting signals into circuit component ports

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-06-24 23:02:23 +01:00

2153 lines
59 KiB
Plaintext

//Current rate: 135000 research points in 90 minutes
//Base Nodes
/datum/techweb_node/base
id = "base"
starting_node = TRUE
display_name = "Basic Research Technology"
description = "NT default research technologies."
// Default research tech, prevents bricking
design_ids = list(
"basic_capacitor",
"basic_cell",
"basic_matter_bin",
"basic_micro_laser",
"basic_scanning",
"bepis",
"bucket",
"c-reader",
"circuit_imprinter",
"circuit_imprinter_offstation",
"conveyor_belt",
"conveyor_switch",
"design_disk",
"destructive_analyzer",
"destructive_scanner",
"desttagger",
"doppler_array",
"experi_scanner",
"experimentor",
"handlabel",
"mechfab",
"micro_mani",
"packagewrap",
"paystand",
"plasmaglass",
"plasmareinforcedglass",
"plasteel",
"plastic_fork",
"plastic_knife",
"plastic_spoon",
"plastitanium",
"plastitaniumglass",
"rdconsole",
"rdserver",
"rdservercontrol",
"restaurant_portal",
"rglass",
"salestagger",
"sec_38",
"sec_Islug",
"sec_beanbag_slug",
"sec_dart",
"sec_rshot",
"space_heater",
"tech_disk",
"titaniumglass",
)
/datum/techweb_node/mmi
id = "mmi"
starting_node = TRUE
display_name = "Man Machine Interface"
description = "A slightly Frankensteinian device that allows human brains to interface natively with software APIs."
design_ids = list(
"mmi",
)
/datum/techweb_node/cyborg
id = "cyborg"
starting_node = TRUE
display_name = "Cyborg Construction"
description = "Sapient robots with preloaded tool modules and programmable laws."
design_ids = list(
"borg_chest",
"borg_head",
"borg_l_arm",
"borg_l_leg",
"borg_r_arm",
"borg_r_leg",
"borg_suit",
"borg_upgrade_rename",
"borg_upgrade_restart",
"borgupload",
"cyborgrecharger",
"robocontrol",
"sflash",
//SKYRAT EDIT START - RESEARCH DESIGNS
"affection_module",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
/datum/techweb_node/mech
id = "mecha"
starting_node = TRUE
display_name = "Mechanical Exosuits"
description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human."
design_ids = list(
"mech_hydraulic_clamp",
"mech_recharger",
"mecha_tracking",
"mechacontrol",
"mechapower",
"ripley_chassis",
"ripley_left_arm",
"ripley_left_leg",
"ripley_main",
"ripley_peri",
"ripley_right_arm",
"ripley_right_leg",
"ripley_torso",
"ripleyupgrade",
)
/datum/techweb_node/mech_tools
id = "mech_tools"
starting_node = TRUE
display_name = "Basic Exosuit Equipment"
description = "Various tools fit for basic mech units"
design_ids = list(
"mech_drill",
"mech_extinguisher",
"mech_mscanner",
)
/datum/techweb_node/basic_tools
id = "basic_tools"
starting_node = TRUE
display_name = "Basic Tools"
description = "Basic mechanical, electronic, surgical and botanical tools."
design_ids = list(
"airlock_painter",
"analyzer",
"cable_coil",
"cable_coil",
"crowbar",
"cultivator",
"decal_painter",
"hatchet",
"mop",
"multitool",
"normtrash",
"petri_dish",
"pipe_painter",
"plant_analyzer",
"plunger",
"pushbroom",
"screwdriver",
"secateurs",
"shovel",
"spade",
"spraycan",
"swab",
"tscanner",
"welding_helmet",
"welding_tool",
"wirecutters",
"wrench",
//SKYRAT EDIT START - RESEARCH DESIGNS
"bowl",
"drinking_glass",
"shot_glass",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
/datum/techweb_node/basic_medical
id = "basic_medical"
starting_node = TRUE
display_name = "Basic Medical Equipment"
description = "Basic medical tools and equipment."
design_ids = list(
"beaker",
"blood_filter",
"bonesetter",
"cautery",
"circular_saw",
"cybernetic_eyes",
"cybernetic_heart",
"cybernetic_liver",
"cybernetic_lungs",
"cybernetic_stomach",
"defibmountdefault",
"dropper",
"hemostat",
"large_beaker",
"plumbing_rcd",
"portable_chem_mixer",
"retractor",
"scalpel",
"stethoscope",
"surgical_drapes",
"surgical_tape",
"surgicaldrill",
"syringe",
"xlarge_beaker",
//SKYRAT EDIT START - RESEARCH DESIGNS
"engi_plumbing",
"hospital_gown",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
/datum/techweb_node/basic_circuitry
id = "basic_circuitry"
starting_node = TRUE
display_name = "Basic Integrated Circuits"
description = "Research on how to fully exploit the power of integrated circuits"
design_ids = list(
"circuit_multitool",
"comp_arithmetic",
"comp_clock",
"comp_combiner",
"comp_comparison",
"comp_concat",
"comp_delay",
"comp_direction",
"comp_gps",
"comp_health",
"comp_hear",
"comp_index",
"comp_length",
"comp_light",
"comp_logic",
"comp_mmi",
"comp_multiplexer",
"comp_not",
"comp_radio",
"comp_ram",
"comp_random",
"comp_self",
"comp_species",
"comp_speech",
"comp_speech",
"comp_string_contains",
"comp_textcase",
"comp_tostring",
"comp_typecheck",
"compact_remote_shell",
"component_printer",
"integrated_circuit",
"usb_cable",
)
/////////////////////////Biotech/////////////////////////
/datum/techweb_node/biotech
id = "biotech"
display_name = "Biological Technology"
description = "What makes us tick." //the MC, silly!
prereq_ids = list("base")
design_ids = list(
"beer_dispenser",
"biopsy_tool",
"blood_pack",
"chem_dispenser",
"chem_heater",
"chem_master",
"chem_pack",
"crewpinpointerprox",
"defibmount",
"defibrillator",
"genescanner",
"healthanalyzer",
"med_spray_bottle",
"medical_kiosk",
"medigel",
"medipen_refiller",
"operating",
"pandemic",
"plumbing_rcd_sci",
"soda_dispenser",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
required_experiments = list(/datum/experiment/scanning/points/slime/calibration)
// SKYRAT EDIT BEGIN - MATERIAL MEAT WAS REMOVED
/datum/techweb_node/adv_biotech
id = "adv_biotech"
display_name = "Advanced Biotechnology"
description = "Advanced Biotechnology"
prereq_ids = list("biotech")
design_ids = list(
"crewpinpointer",
"defibrillator_compact",
"detective_scanner",
"harvester",
"healthanalyzer_advanced",
"holobarrier_med",
"limbgrower",
"meta_beaker",
"ph_meter",
"piercesyringe",
"plasmarefiller",
"smoke_machine",
//SKYRAT EDIT START - RESEARCH DESIGNS
"monkey_helmet",
//SKYRAT EDIT END -
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
required_experiments = list(/datum/experiment/scanning/points/slime/easy)
// ORIGINAL: discount_experiments = list(/datum/experiment/scanning/random/material/meat = 4000) //Big discount to reinforce doing it.
discount_experiments = list(/datum/experiment/scanning/random/material/silver = 4000) //Big discount to reinforce doing it.
// SKYRAT EDIT END - MATERIAL MEAT WAS REMOVED
/datum/techweb_node/xenoorgan_biotech
id = "xenoorgan_bio"
display_name = "Xeno-organ Biology"
description = "Plasmaman, Ethereals, Lizardpeople... What makes our non-human crewmembers tick?"
prereq_ids = list("adv_biotech")
design_ids = list(
"limbdesign_ethereal",
"limbdesign_felinid",
"limbdesign_lizard",
"limbdesign_plasmaman",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6500)
discount_experiments = list(/datum/experiment/scanning/random/cytology/easy = 1000, /datum/experiment/scanning/points/slime/expert = 5000)
/datum/techweb_node/bio_process
id = "bio_process"
display_name = "Biological Processing"
description = "From slimes to kitchens."
prereq_ids = list("biotech")
design_ids = list(
"deepfryer",
"dish_drive",
"fat_sucker",
"gibber",
"gibber",
"griddle",
"microwave",
"monkey_recycler",
"processor",
"reagentgrinder",
"smartfridge",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000)
discount_experiments = list(/datum/experiment/scanning/random/cytology = 3000) //Big discount to reinforce doing it.
/////////////////////////Advanced Surgery/////////////////////////
/datum/techweb_node/imp_wt_surgery
id = "imp_wt_surgery"
display_name = "Improved Wound-Tending Surgery"
description = "Who would have known being more gentle with a hemostat decreases patient pain?"
prereq_ids = list("biotech")
design_ids = list(
"surgery_heal_brute_upgrade",
"surgery_heal_burn_upgrade",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
/datum/techweb_node/adv_surgery
id = "adv_surgery"
display_name = "Advanced Surgery"
description = "When simple medicine doesn't cut it."
prereq_ids = list("imp_wt_surgery")
design_ids = list(
"surgery_heal_brute_upgrade_femto",
"surgery_heal_burn_upgrade_femto",
"surgery_heal_combo",
"surgery_lobotomy",
"surgery_wing_reconstruction",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500)
/datum/techweb_node/exp_surgery
id = "exp_surgery"
display_name = "Experimental Surgery"
description = "When evolution isn't fast enough."
prereq_ids = list("adv_surgery")
design_ids = list(
"surgery_cortex_folding",
"surgery_cortex_imprint",
"surgery_heal_combo_upgrade",
"surgery_ligament_hook",
"surgery_ligament_reinforcement",
"surgery_muscled_veins",
"surgery_nerve_ground",
"surgery_nerve_splice",
"surgery_pacify",
"surgery_vein_thread",
"surgery_viral_bond",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500)
discount_experiments = list(/datum/experiment/scanning/random/plants/traits = 4500)
/datum/techweb_node/alien_surgery
id = "alien_surgery"
display_name = "Alien Surgery"
description = "Abductors did nothing wrong."
prereq_ids = list("exp_surgery", "alientech")
design_ids = list(
"surgery_brainwashing",
"surgery_heal_combo_upgrade_femto",
"surgery_zombie",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
/////////////////////////data theory tech/////////////////////////
/datum/techweb_node/datatheory //Computer science
id = "datatheory"
display_name = "Data Theory"
description = "Big Data, in space!"
prereq_ids = list("base")
design_ids = list(
"bounty_pad",
"bounty_pad_control",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/////////////////////////engineering tech/////////////////////////
/datum/techweb_node/engineering
id = "engineering"
display_name = "Industrial Engineering"
description = "A refresher course on modern engineering technology."
prereq_ids = list("base")
design_ids = list(
"adv_capacitor",
"adv_matter_bin",
"adv_scanning",
"airalarm_electronics",
"airlock_board",
"apc_control",
"atmos_control",
"atmosalerts",
"autolathe",
"cell_charger",
"cell_charger",
"crystallizer",
"electrolyzer",
"emergency_oxygen",
"emergency_oxygen_engi",
"firealarm_electronics",
"firelock_board",
"grounding_rod",
"high_cell",
"high_micro_laser",
"mesons",
"nano_mani",
"oxygen_tank",
"pacman",
"plasma_tank",
"plasmaman_tank_belt",
"pneumatic_seal",
"power control",
"powermonitor",
"rad_collector",
"recharger",
"recycler",
"rped",
"scanner_gate",
"solarcontrol",
"stack_console",
"stack_machine",
"tesla_coil",
"thermomachine",
"w-recycler" , "emitter",
"welding_goggles",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 12500)
discount_experiments = list(/datum/experiment/scanning/random/material/easy = 7500)
/datum/techweb_node/adv_engi
id = "adv_engi"
display_name = "Advanced Engineering"
description = "Pushing the boundaries of physics, one chainsaw-fist at a time."
prereq_ids = list("engineering", "emp_basic")
design_ids = list(
"HFR_core",
"HFR_corner",
"HFR_fuel_input",
"HFR_interface",
"HFR_moderator_input",
"HFR_waste_output",
"engine_goggles",
"forcefield_projector",
"magboots",
"rcd_loaded",
"rpd_loaded",
"sheetifier",
"weldingmask",
//SKYRAT EDIT START - RESEARCH DESIGNS
"engine_goggles_prescription",
"mesons_prescription",
"multi_cell_charger",
"tray_goggles_prescription",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
discount_experiments = list(/datum/experiment/scanning/random/material/medium/one = 4000)
/datum/techweb_node/anomaly
id = "anomaly_research"
display_name = "Anomaly Research"
description = "Unlock the potential of the mysterious anomalies that appear on station."
prereq_ids = list("adv_engi", "practical_bluespace")
design_ids = list(
"anomaly_neutralizer",
"reactive_armour",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
/datum/techweb_node/high_efficiency
id = "high_efficiency"
display_name = "High Efficiency Parts"
description = "Finely-tooled manufacturing techniques allowing for picometer-perfect precision levels."
prereq_ids = list("engineering", "datatheory")
design_ids = list(
"pico_mani",
"super_matter_bin",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500)
/datum/techweb_node/adv_power
id = "adv_power"
display_name = "Advanced Power Manipulation"
description = "How to get more zap."
prereq_ids = list("engineering")
design_ids = list(
"hyper_cell",
"power_compressor",
"power_turbine",
"power_turbine_console",
"smes",
"super_capacitor",
"super_cell",
"superpacman",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/////////////////////////Bluespace tech/////////////////////////
/datum/techweb_node/bluespace_basic //Bluespace-memery
id = "bluespace_basic"
display_name = "Basic Bluespace Theory"
description = "Basic studies into the mysterious alternate dimension known as bluespace."
prereq_ids = list("base")
design_ids = list(
"beacon",
"bluespace_crystal",
"telesci_gps",
"xenobioconsole",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/bluespace_travel
id = "bluespace_travel"
display_name = "Bluespace Travel"
description = "Application of Bluespace for static teleportation technology."
prereq_ids = list("practical_bluespace")
design_ids = list(
"bluespace_pod",
"launchpad",
"launchpad_console",
"quantumpad",
"tele_hub",
"tele_station",
"teleconsole",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
/datum/techweb_node/micro_bluespace
id = "micro_bluespace"
display_name = "Miniaturized Bluespace Research"
description = "Extreme reduction in space required for bluespace engines, leading to portable bluespace technology."
prereq_ids = list("bluespace_travel", "practical_bluespace", "high_efficiency")
design_ids = list(
"bluespace_matter_bin",
"bluespacebodybag",
"femto_mani",
"quantum_keycard",
"swapper",
"triphasic_scanning",
"wormholeprojector",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
discount_experiments = list(/datum/experiment/exploration_scan/random/condition)
/datum/techweb_node/advanced_bluespace
id = "bluespace_storage"
display_name = "Advanced Bluespace Storage"
description = "With the use of bluespace we can create even more advanced storage devices than we could have ever done"
prereq_ids = list("micro_bluespace", "janitor")
design_ids = list(
"bag_holding",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
/datum/techweb_node/practical_bluespace
id = "practical_bluespace"
display_name = "Applied Bluespace Research"
description = "Using bluespace to make things faster and better."
prereq_ids = list("bluespace_basic", "engineering")
design_ids = list(
"bluespacebeaker",
"bluespacesyringe",
"bs_rped",
"minerbag_holding",
"ore_silo",
"phasic_scanning",
"plumbing_receiver",
"roastingstick",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
/datum/techweb_node/bluespace_power
id = "bluespace_power"
display_name = "Bluespace Power Technology"
description = "Even more powerful.. power!"
prereq_ids = list("adv_power", "practical_bluespace")
design_ids = list(
"bluespace_cell",
"quadratic_capacitor",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/regulated_bluespace
id = "regulated_bluespace"
display_name = "Regulated Bluespace Research"
description = "Bluespace technology using stable and balanced procedures. Required by galactic convention for public use."
prereq_ids = list("base")
design_ids = list(
"spaceship_navigation_beacon",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/unregulated_bluespace
id = "unregulated_bluespace"
display_name = "Unregulated Bluespace Research"
description = "Bluespace technology using unstable or unbalanced procedures, prone to damaging the fabric of bluespace. Outlawed by galactic conventions."
prereq_ids = list("bluespace_travel", "syndicate_basic")
design_ids = list(
"desynchronizer",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/////////////////////////plasma tech/////////////////////////
/datum/techweb_node/basic_plasma
id = "basic_plasma"
display_name = "Basic Plasma Research"
description = "Research into the mysterious and dangerous substance, plasma."
prereq_ids = list("engineering")
design_ids = list(
"mech_generator",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/adv_plasma
id = "adv_plasma"
display_name = "Advanced Plasma Research"
description = "Research on how to fully exploit the power of plasma."
prereq_ids = list("basic_plasma")
design_ids = list(
"mech_plasma_cutter",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/////////////////////////integrated circuits tech/////////////////////////
/datum/techweb_node/adv_shells
id = "adv_shells"
display_name = "Advanced Shell Research"
description = "Grants access to more complicated shell designs."
prereq_ids = list("basic_circuitry", "engineering")
design_ids = list(
"bot_shell",
"controller_shell",
"money_bot_shell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/movable_shells_tech
id = "movable_shells"
display_name = "Movable Shell Research"
description = "Grants access to movable shells."
prereq_ids = list("adv_shells", "robotics")
design_ids = list(
"comp_pull",
"drone_shell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000)
/datum/techweb_node/server_shell_tech
id = "server_shell"
display_name = "Server Technology Research"
description = "Grants access to a server shell that has a very high capacity for components."
prereq_ids = list("adv_shells", "computer_hardware_basic")
design_ids = list(
"server_shell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000)
/////////////////////////robotics tech/////////////////////////
/datum/techweb_node/robotics
id = "robotics"
display_name = "Basic Robotics Research"
description = "Programmable machines that make our lives lazier."
prereq_ids = list("base")
design_ids = list(
"paicard",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/adv_robotics
id = "adv_robotics"
display_name = "Advanced Robotics Research"
description = "Machines using actual neural networks to simulate human lives."
prereq_ids = list("neural_programming", "robotics")
design_ids = list(
"mmi_posi",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/exodrone_tech
id = "exodrone"
display_name = "Exploration Drone Research"
description = "Technology for exploring far away locations."
prereq_ids = list("robotics")
design_ids = list(
"exodrone_console",
"exodrone_launcher",
"exoscanner",
"exoscanner_console",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/dex_robotics
id = "dex_robotics"
display_name = "Dexterous Robotics Research"
description = "The fine art of opposable thumbs."
prereq_ids = list("adv_engi", "adv_robotics", "biotech")
design_ids = list(
"maint_drone",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/neural_programming
id = "neural_programming"
display_name = "Neural Programming"
description = "Study into networks of processing units that mimic our brains."
prereq_ids = list("biotech", "datatheory")
design_ids = list(
"skill_station",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/cyborg_upg_util
id = "cyborg_upg_util"
display_name = "Cyborg Upgrades: Utility"
description = "Utility upgrades for cyborgs."
prereq_ids = list("adv_robotics")
design_ids = list(
"borg_upgrade_advancedmop",
"borg_upgrade_broomer",
"borg_upgrade_expand",
"borg_upgrade_prt",
"borg_upgrade_selfrepair",
"borg_upgrade_thrusters",
"borg_upgrade_trashofholding",
//SKYRAT EDIT START - RESEARCH DESIGNS
"borg_upgrade_shrink",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
/datum/techweb_node/cyborg_upg_util/New()
. = ..()
if(!CONFIG_GET(flag/disable_secborg))
design_ids += "borg_upgrade_disablercooler"
/datum/techweb_node/cyborg_upg_engiminer
id = "cyborg_upg_engiminer"
display_name = "Cyborg Upgrades: Engineering & Mining"
description = "Engineering and Mining upgrades for cyborgs."
prereq_ids = list("adv_engi", "basic_mining")
design_ids = list(
"borg_upgrade_circuitapp",
"borg_upgrade_diamonddrill",
"borg_upgrade_holding",
"borg_upgrade_lavaproof",
"borg_upgrade_rped",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
/datum/techweb_node/cyborg_upg_med
id = "cyborg_upg_med"
display_name = "Cyborg Upgrades: Medical"
description = "Medical upgrades for cyborgs."
prereq_ids = list("adv_biotech")
design_ids = list(
"borg_upgrade_beakerapp",
"borg_upgrade_defibrillator",
"borg_upgrade_expandedsynthesiser",
"borg_upgrade_piercinghypospray",
"borg_upgrade_pinpointer",
"borg_upgrade_surgicalprocessor",
//SKYRAT EDIT START - RESEARCH DESIGNS
"borg_upgrade_surgicaltools",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
/datum/techweb_node/ai
id = "ai"
display_name = "Artificial Intelligence"
description = "AI unit research."
prereq_ids = list("adv_robotics")
design_ids = list(
"aicore",
"aifixer",
"aiupload",
"asimov_module",
"borg_ai_control",
"corporate_module",
"default_module",
"freeform_module",
"freeformcore_module",
"intellicard",
"mecha_tracking_ai_control",
"onehuman_module",
"overlord_module",
"oxygen_module",
"paladin_module",
"protectstation_module",
"purge_module",
"quarantine_module",
"remove_module",
"reset_module",
"safeguard_module",
"tyrant_module",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/////////////////////////EMP tech/////////////////////////
/datum/techweb_node/emp_basic //EMP tech for some reason
id = "emp_basic"
display_name = "Electromagnetic Theory"
description = "Study into usage of frequencies in the electromagnetic spectrum."
prereq_ids = list("base")
design_ids = list(
"holosign",
"holosignsec",
"holosignengi",
"holosignatmos",
"holosignrestaurant",
"holosignbar",
"inducer",
"tray_goggles",
"holopad",
"vendatray",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/emp_adv
id = "emp_adv"
display_name = "Advanced Electromagnetic Theory"
description = "Determining whether reversing the polarity will actually help in a given situation."
prereq_ids = list("emp_basic")
design_ids = list(
"ultra_micro_laser",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000)
/datum/techweb_node/emp_super
id = "emp_super"
display_name = "Quantum Electromagnetic Technology" //bs
description = "Even better electromagnetic technology."
prereq_ids = list("emp_adv")
design_ids = list(
"quadultra_micro_laser",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000)
/////////////////////////Clown tech/////////////////////////
/datum/techweb_node/clown
id = "clown"
display_name = "Clown Technology"
description = "Honk?!"
prereq_ids = list("base")
design_ids = list(
"air_horn",
"borg_transform_clown",
"honk_chassis",
"honk_head",
"honk_left_arm",
"honk_left_leg",
"honk_right_arm",
"honk_right_leg",
"honk_torso",
"honker_main",
"honker_peri",
"honker_targ",
"implant_trombone",
"mech_banana_mortar",
"mech_honker",
"mech_mousetrap_mortar",
"mech_punching_face",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
////////////////////////Computer tech////////////////////////
/datum/techweb_node/comptech
id = "comptech"
display_name = "Computer Consoles"
description = "Computers and how they work."
prereq_ids = list("datatheory")
design_ids = list(
"cargo",
"cargorequest",
"comconsole",
"crewconsole",
"idcard",
"libraryconsole",
"mining",
"rdcamera",
"seccamera",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
/datum/techweb_node/computer_hardware_basic //Modular computers are shitty and nearly useless so until someone makes them actually useful this can be easy to get.
id = "computer_hardware_basic"
display_name = "Computer Hardware"
description = "How computer hardware is made."
prereq_ids = list("comptech")
design_ids = list(
"APClink",
"aislot",
"bat_advanced",
"bat_control",
"bat_micro",
"bat_nano",
"bat_normal",
"bat_super",
"cardslot",
"cpu_normal",
"cpu_small",
"hdd_advanced",
"hdd_basic",
"hdd_cluster",
"hdd_super",
"miniprinter",
"netcard_advanced",
"netcard_basic",
"netcard_wired",
"pcpu_normal",
"pcpu_small",
"portadrive_advanced",
"portadrive_basic",
"portadrive_super",
"sensorpackage",
"ssd_micro",
"ssd_small",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) //they are really shitty
/datum/techweb_node/computer_board_gaming
id = "computer_board_gaming"
display_name = "Arcade Games"
description = "For the slackers on the station."
prereq_ids = list("comptech")
design_ids = list(
"arcade_battle",
"arcade_orion",
"slotmachine",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3250)
discount_experiments = list(/datum/experiment/physical/arcade_winner = 3000)
/datum/techweb_node/comp_recordkeeping
id = "comp_recordkeeping"
display_name = "Computerized Recordkeeping"
description = "Organized record databases and how they're used."
prereq_ids = list("comptech")
design_ids = list(
"accounting",
"automated_announcement",
"med_data",
"prisonmanage",
"secdata",
"vendor",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
/datum/techweb_node/telecomms
id = "telecomms"
display_name = "Telecommunications Technology"
description = "Subspace transmission technology for near-instant communications devices."
prereq_ids = list("comptech", "bluespace_basic")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
design_ids = list(
"comm_monitor",
"comm_server",
"ntnet_relay",
"s-amplifier",
"s-analyzer",
"s-ansible",
"s-broadcaster",
"s-bus",
"s-crystal",
"s-filter",
"s-hub",
"s-messaging",
"s-processor",
"s-receiver",
"s-relay",
"s-server",
"s-transmitter",
"s-treatment",
)
/datum/techweb_node/integrated_hud
id = "integrated_HUDs"
display_name = "Integrated HUDs"
description = "The usefulness of computerized records, projected straight onto your eyepiece!"
prereq_ids = list("comp_recordkeeping", "emp_basic")
design_ids = list(
"diagnostic_hud",
"health_hud",
"scigoggles",
"security_hud",
//SKYRAT EDIT START - RESEARCH DESIGNS
"health_hud_prescription",
"security_hud_prescription",
"diagnostic_hud_prescription",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500)
/datum/techweb_node/nvg_tech
id = "NVGtech"
display_name = "Night Vision Technology"
description = "Allows seeing in the dark without actual light!"
prereq_ids = list("integrated_HUDs", "adv_engi", "emp_adv")
design_ids = list(
"diagnostic_hud_night",
"health_hud_night",
"night_visision_goggles",
"nvgmesons",
"security_hud_night",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
////////////////////////Medical////////////////////////
/datum/techweb_node/genetics
id = "genetics"
display_name = "Genetic Engineering"
description = "We have the technology to change him."
prereq_ids = list("biotech")
design_ids = list(
"dna_disk",
"dnascanner",
"scan_console",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/cryotech
id = "cryotech"
display_name = "Cryostasis Technology"
description = "Smart freezing of objects to preserve them!"
prereq_ids = list("adv_engi", "biotech")
design_ids = list(
"cryo_Grenade",
"cryotube",
"splitbeaker",
"stasis",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
/datum/techweb_node/subdermal_implants
id = "subdermal_implants"
display_name = "Subdermal Implants"
description = "Electronic implants buried beneath the skin."
prereq_ids = list("biotech")
design_ids = list(
"c38_trac",
"implant_chem",
"implant_tracking",
"implantcase",
"implanter",
"locator",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/cyber_organs
id = "cyber_organs"
display_name = "Cybernetic Organs"
description = "We have the technology to rebuild him."
prereq_ids = list("biotech")
design_ids = list(
"cybernetic_ears",
"cybernetic_eyes_improved",
"cybernetic_heart_tier2",
"cybernetic_liver_tier2",
"cybernetic_lungs_tier2",
"cybernetic_stomach_tier2",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
/datum/techweb_node/cyber_organs_upgraded
id = "cyber_organs_upgraded"
display_name = "Upgraded Cybernetic Organs"
description = "We have the technology to upgrade him."
prereq_ids = list("adv_biotech", "cyber_organs")
design_ids = list(
"cybernetic_ears_u",
"cybernetic_heart_tier3",
"cybernetic_liver_tier3",
"cybernetic_lungs_tier3",
"cybernetic_stomach_tier3",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500)
/datum/techweb_node/cyber_implants
id = "cyber_implants"
display_name = "Cybernetic Implants"
description = "Electronic implants that improve humans."
prereq_ids = list("adv_biotech", "datatheory")
design_ids = list(
"ci-breather",
"ci-diaghud",
"ci-gloweyes",
"ci-medhud",
"ci-nutriment",
"ci-sechud",
"ci-welding",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/adv_cyber_implants
id = "adv_cyber_implants"
display_name = "Advanced Cybernetic Implants"
description = "Upgraded and more powerful cybernetic implants."
prereq_ids = list("neural_programming", "cyber_implants","integrated_HUDs")
design_ids = list(
"ci-nutrimentplus",
"ci-reviver",
"ci-surgery",
"ci-toolset",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/combat_cyber_implants
id = "combat_cyber_implants"
display_name = "Combat Cybernetic Implants"
description = "Military grade combat implants to improve performance."
prereq_ids = list("adv_cyber_implants","weaponry","NVGtech","high_efficiency")
design_ids = list(
"ci-antidrop",
"ci-antistun",
"ci-thermals",
"ci-thrusters",
"ci-xray",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
////////////////////////Tools////////////////////////
/datum/techweb_node/basic_mining
id = "basic_mining"
display_name = "Mining Technology"
description = "Better than Efficiency V."
prereq_ids = list("engineering", "basic_plasma")
design_ids = list(
"cargoexpress",
"cooldownmod",
"damagemod",
"drill",
"mining_equipment_vendor",
"ore_redemption",
"plasmacutter",
"rangemod",
"superresonator",
"triggermod",
)//e a r l y g a m e)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/adv_mining
id = "adv_mining"
display_name = "Advanced Mining Technology"
description = "Efficiency Level 127" //dumb mc references
prereq_ids = list("basic_mining", "adv_engi", "adv_power", "adv_plasma")
design_ids = list(
"drill_diamond",
"hypermod",
"jackhammer",
"plasmacutter_adv",
//SKYRAT EDIT START - RESEARCH DESIGNS
"ripleyupgradef"
//SKYRAT EDIT END - RESEARCH DESIGNS
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500)
discount_experiments = list(/datum/experiment/scanning/random/material/hard/one = 5000)
/datum/techweb_node/janitor
id = "janitor"
display_name = "Advanced Sanitation Technology"
description = "Clean things better, faster, stronger, and harder!"
prereq_ids = list("adv_engi")
design_ids = list(
"advmop",
"beartrap",
"blutrash",
"buffer",
"holobarrier_jani",
"light_replacer",
"paint_remover",
"spraybottle",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000)
discount_experiments = list(/datum/experiment/scanning/random/janitor_trash = 3000) //75% discount for scanning some trash, seems fair right?
/datum/techweb_node/botany
id = "botany"
display_name = "Botanical Engineering"
description = "Botanical tools"
prereq_ids = list("adv_engi", "biotech")
design_ids = list(
"biogenerator",
"flora_gun",
"hydro_tray",
"portaseeder",
"seed_extractor",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000)
discount_experiments = list(/datum/experiment/scanning/random/plants/wild = 3000)
/datum/techweb_node/exp_tools
id = "exp_tools"
display_name = "Experimental Tools"
description = "Highly advanced tools."
prereq_ids = list("adv_engi")
design_ids = list(
"exwelder",
"gene_shears",
"handdrill",
"jawsoflife",
"laserscalpel",
"mechanicalpinches",
"searingtool",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500)
discount_experiments = list(/datum/experiment/scanning/random/material/hard/one = 5000)
/datum/techweb_node/sec_basic
id = "sec_basic"
display_name = "Basic Security Equipment"
description = "Standard equipment used by security."
prereq_ids = list("base")
design_ids = list(
"bola_energy",
"evidencebag",
"pepperspray",
"seclite",
"zipties",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
/datum/techweb_node/rcd_upgrade
id = "rcd_upgrade"
display_name = "Rapid Device Upgrade Designs"
description = "Unlocks new designs that improve rapid devices."
prereq_ids = list("adv_engi")
design_ids = list(
"rcd_upgrade_frames",
"rcd_upgrade_furnishing",
"rcd_upgrade_simple_circuits",
"rpd_upgrade_unwrench",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/adv_rcd_upgrade
id = "adv_rcd_upgrade"
display_name = "Advanced RCD Designs Upgrade"
description = "Unlocks new RCD designs."
design_ids = list("rcd_upgrade_silo_link")
prereq_ids = list(
"bluespace_travel",
"rcd_upgrade",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
discount_experiments = list(/datum/experiment/scanning/random/material/hard/two = 5000)
/////////////////////////weaponry tech/////////////////////////
/datum/techweb_node/weaponry
id = "weaponry"
display_name = "Weapon Development Technology"
description = "Our researchers have found new ways to weaponize just about everything now."
prereq_ids = list("engineering")
design_ids = list(
"pin_testing",
"tele_shield",
"ammoworkbench_disk_lethal", //SKYRAT EDIT ADDITION
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
required_experiments = list(/datum/experiment/explosion/calibration)
/datum/techweb_node/adv_weaponry
id = "adv_weaponry"
display_name = "Advanced Weapon Development Technology"
description = "Our weapons are breaking the rules of reality by now."
prereq_ids = list("adv_engi", "weaponry")
design_ids = list(
"pin_loyalty",
"ammo_workbench", //SKYRAT EDIT ADDITION
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
required_experiments = list(/datum/experiment/explosion/medium)
/datum/techweb_node/electric_weapons
id = "electronic_weapons"
display_name = "Electric Weapons"
description = "Weapons using electric technology"
prereq_ids = list("weaponry", "adv_power" , "emp_basic")
design_ids = list(
"ioncarbine",
"stunrevolver",
//SKYRAT EDIT START - RESEARCH DESIGNS
"nightstick_conversion"
//SKYRAT EDIT END - RESEARCH DESIGNS
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/radioactive_weapons
id = "radioactive_weapons"
display_name = "Radioactive Weaponry"
description = "Weapons using radioactive technology."
prereq_ids = list("adv_engi", "adv_weaponry")
design_ids = list(
"nuclear_gun",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/beam_weapons
id = "beam_weapons"
display_name = "Beam Weaponry"
description = "Various basic beam weapons"
prereq_ids = list("adv_weaponry")
design_ids = list(
"temp_gun",
"xray_laser",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/adv_beam_weapons
id = "adv_beam_weapons"
display_name = "Advanced Beam Weaponry"
description = "Various advanced beam weapons"
prereq_ids = list("beam_weapons")
design_ids = list(
"beamrifle",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/explosive_weapons
id = "explosive_weapons"
display_name = "Explosive & Pyrotechnical Weaponry"
description = "If the light stuff just won't do it."
prereq_ids = list("adv_weaponry")
design_ids = list(
"adv_Grenade",
"large_Grenade",
"pyro_Grenade",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
required_experiments = list(/datum/experiment/explosion/maxcap)
/datum/techweb_node/ballistic_weapons
id = "ballistic_weapons"
display_name = "Ballistic Weaponry"
description = "This isn't research.. This is reverse-engineering!"
prereq_ids = list("weaponry")
design_ids = list(
"mag_oldsmg",
"mag_oldsmg_ap",
"mag_oldsmg_ic",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/exotic_ammo
id = "exotic_ammo"
display_name = "Exotic Ammunition"
description = "They won't know what hit em."
prereq_ids = list("adv_weaponry")
design_ids = list(
"c38_hotshot",
"c38_iceblox",
"techshotshell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/gravity_gun
id = "gravity_gun"
display_name = "One-point Bluespace-gravitational Manipulator"
description = "Fancy wording for gravity gun."
prereq_ids = list("adv_weaponry", "bluespace_travel")
design_ids = list(
"gravitygun",
"mech_gravcatapult",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
////////////////////////mech technology////////////////////////
/datum/techweb_node/adv_mecha
id = "adv_mecha"
display_name = "Advanced Exosuits"
description = "For when you just aren't Gundam enough."
prereq_ids = list("adv_robotics")
design_ids = list(
"mech_repair_droid",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500)
discount_experiments = list(/datum/experiment/scanning/random/material/medium/three = 5000)
/datum/techweb_node/odysseus
id = "mecha_odysseus"
display_name = "EXOSUIT: Odysseus"
description = "Odysseus exosuit designs"
prereq_ids = list("base")
design_ids = list(
"odysseus_chassis",
"odysseus_head",
"odysseus_left_arm",
"odysseus_left_leg",
"odysseus_main",
"odysseus_peri",
"odysseus_right_arm",
"odysseus_right_leg",
"odysseus_torso",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/clarke
id = "mecha_clarke"
display_name = "EXOSUIT: Clarke"
description = "Clarke exosuit designs"
prereq_ids = list("engineering")
design_ids = list(
"clarke_chassis",
"clarke_head",
"clarke_left_arm",
"clarke_main",
"clarke_peri",
"clarke_right_arm",
"clarke_torso",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/gygax
id = "mech_gygax"
display_name = "EXOSUIT: Gygax"
description = "Gygax exosuit designs"
prereq_ids = list("adv_mecha", "weaponry")
design_ids = list(
"gygax_armor",
"gygax_chassis",
"gygax_head",
"gygax_left_arm",
"gygax_left_leg",
"gygax_main",
"gygax_peri",
"gygax_right_arm",
"gygax_right_leg",
"gygax_targ",
"gygax_torso",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/durand
id = "mech_durand"
display_name = "EXOSUIT: Durand"
description = "Durand exosuit designs"
prereq_ids = list("adv_mecha", "adv_weaponry")
design_ids = list(
"durand_armor",
"durand_chassis",
"durand_head",
"durand_left_arm",
"durand_left_leg",
"durand_main",
"durand_peri",
"durand_right_arm",
"durand_right_leg",
"durand_targ",
"durand_torso",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/phazon
id = "mecha_phazon"
display_name = "EXOSUIT: Phazon"
description = "Phazon exosuit designs"
prereq_ids = list("adv_mecha", "weaponry" , "micro_bluespace")
design_ids = list(
"phazon_armor",
"phazon_chassis",
"phazon_head",
"phazon_left_arm",
"phazon_left_leg",
"phazon_main",
"phazon_peri",
"phazon_right_arm",
"phazon_right_leg",
"phazon_targ",
"phazon_torso",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/* SKYRAT EDIT REMOVAL
/datum/techweb_node/savannah_ivanov
id = "mecha_savannah_ivanov"
display_name = "EXOSUIT: Savannah-Ivanov"
description = "Savannah-Ivanov exosuit designs"
prereq_ids = list("adv_mecha", "weaponry", "exp_tools")
design_ids = list(
"savannah_ivanov_armor",
"savannah_ivanov_chassis",
"savannah_ivanov_head",
"savannah_ivanov_left_arm",
"savannah_ivanov_left_leg",
"savannah_ivanov_main",
"savannah_ivanov_peri",
"savannah_ivanov_right_arm",
"savannah_ivanov_right_leg",
"savannah_ivanov_targ",
"savannah_ivanov_torso",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
*/
/datum/techweb_node/adv_mecha_tools
id = "adv_mecha_tools"
display_name = "Advanced Exosuit Equipment"
description = "Tools for high level mech suits"
prereq_ids = list("adv_mecha")
design_ids = list(
"mech_rcd",
"mech_thrusters",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/med_mech_tools
id = "med_mech_tools"
display_name = "Medical Exosuit Equipment"
description = "Tools for high level mech suits"
prereq_ids = list("adv_biotech")
design_ids = list(
"mech_medi_beam",
"mech_sleeper",
"mech_syringe_gun",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_modules
id = "adv_mecha_modules"
display_name = "Simple Exosuit Modules"
description = "An advanced piece of mech weaponry"
prereq_ids = list("adv_mecha", "bluespace_power")
design_ids = list(
"mech_ccw_armor",
"mech_energy_relay",
"mech_generator_nuclear",
"mech_proj_armor",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_scattershot
id = "mecha_tools"
display_name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")"
description = "An advanced piece of mech weaponry"
prereq_ids = list("ballistic_weapons")
design_ids = list(
"mech_scattershot",
"mech_scattershot_ammo",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_carbine
id = "mech_carbine"
display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("ballistic_weapons")
design_ids = list(
"mech_carbine",
"mech_carbine_ammo",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_ion
id = "mmech_ion"
display_name = "Exosuit Weapon (MKIV Ion Heavy Cannon)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("electronic_weapons", "emp_adv")
design_ids = list(
"mech_ion",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_tesla
id = "mech_tesla"
display_name = "Exosuit Weapon (MKI Tesla Cannon)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("electronic_weapons", "adv_power")
design_ids = list(
"mech_tesla",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_laser
id = "mech_laser"
display_name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)"
description = "A basic piece of mech weaponry"
prereq_ids = list("beam_weapons")
design_ids = list(
"mech_laser",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_laser_heavy
id = "mech_laser_heavy"
display_name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("adv_beam_weapons")
design_ids = list(
"mech_laser_heavy",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_disabler
id = "mech_disabler"
display_name = "Exosuit Weapon (CH-DS \"Peacemaker\" Mounted Disabler)"
description = "A basic piece of mech weaponry"
prereq_ids = list("beam_weapons")
design_ids = list(
"mech_disabler",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_grenade_launcher
id = "mech_grenade_launcher"
display_name = "Exosuit Weapon (SGL-6 Grenade Launcher)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("explosive_weapons")
design_ids = list(
"mech_grenade_launcher",
"mech_grenade_launcher_ammo",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_missile_rack
id = "mech_missile_rack"
display_name = "Exosuit Weapon (BRM-6 Missile Rack)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("explosive_weapons")
design_ids = list(
"mech_missile_rack",
"mech_missile_rack_ammo",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/clusterbang_launcher
id = "clusterbang_launcher"
display_name = "Exosuit Module (SOB-3 Clusterbang Launcher)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("explosive_weapons")
design_ids = list(
"clusterbang_launcher",
"clusterbang_launcher_ammo",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_teleporter
id = "mech_teleporter"
display_name = "Exosuit Module (Teleporter Module)"
description = "An advanced piece of mech Equipment"
prereq_ids = list("micro_bluespace")
design_ids = list(
"mech_teleporter",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_wormhole_gen
id = "mech_wormhole_gen"
display_name = "Exosuit Module (Localized Wormhole Generator)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("bluespace_travel")
design_ids = list(
"mech_wormhole_gen",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_lmg
id = "mech_lmg"
display_name = "Exosuit Weapon (\"Ultra AC 2\" LMG)"
description = "An advanced piece of mech weaponry"
prereq_ids = list("ballistic_weapons")
design_ids = list(
"mech_lmg",
"mech_lmg_ammo",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/mech_diamond_drill
id = "mech_diamond_drill"
display_name = "Exosuit Diamond Drill"
description = "A diamond drill fit for a large exosuit"
prereq_ids = list("adv_mining")
design_ids = list(
"mech_diamond_drill",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/////////////////////////Nanites/////////////////////////
/datum/techweb_node/nanite_base
id = "nanite_base"
display_name = "Basic Nanite Programming"
description = "The basics of nanite construction and programming."
prereq_ids = list("datatheory")
design_ids = list(
"access_nanites",
"debugging_nanites",
"monitoring_nanites",
"nanite_chamber",
"nanite_chamber_control",
"nanite_cloud_control",
"nanite_comm_remote",
"nanite_disk",
"nanite_program_hub",
"nanite_programmer",
"nanite_remote",
"nanite_scanner",
"public_nanite_chamber",
"relay_nanites",
"relay_repeater_nanites",
"repairing_nanites",
"repeater_nanites",
"sensor_nanite_volume",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
/datum/techweb_node/nanite_smart
id = "nanite_smart"
display_name = "Smart Nanite Programming"
description = "Nanite programs that require nanites to perform complex actions, act independently, roam or seek targets."
prereq_ids = list("nanite_base","robotics")
design_ids = list(
"memleak_nanites",
"metabolic_nanites",
"purging_nanites",
"sensor_voice_nanites",
"stealth_nanites",
"voice_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500)
/datum/techweb_node/nanite_mesh
id = "nanite_mesh"
display_name = "Mesh Nanite Programming"
description = "Nanite programs that require static structures and membranes."
prereq_ids = list("nanite_base","engineering")
design_ids = list(
"conductive_nanites",
"cryo_nanites",
"dermal_button_nanites",
"emp_nanites",
"hardening_nanites",
"refractive_nanites",
"shock_nanites",
"temperature_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500)
/datum/techweb_node/nanite_bio
id = "nanite_bio"
display_name = "Biological Nanite Programming"
description = "Nanite programs that require complex biological interaction."
prereq_ids = list("nanite_base","biotech")
design_ids = list(
"bloodheal_nanites",
"coagulating_nanites",
"flesheating_nanites",
"poison_nanites",
"regenerative_nanites",
"sensor_crit_nanites",
"sensor_damage_nanites",
"sensor_death_nanites",
"sensor_health_nanites",
"sensor_species_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500)
/datum/techweb_node/nanite_neural
id = "nanite_neural"
display_name = "Neural Nanite Programming"
description = "Nanite programs affecting nerves and brain matter."
prereq_ids = list("nanite_bio")
design_ids = list(
"bad_mood_nanites",
"brainheal_nanites",
"good_mood_nanites",
"nervous_nanites",
"paralyzing_nanites",
"selfscan_nanites",
"stun_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 1000)
/datum/techweb_node/nanite_synaptic
id = "nanite_synaptic"
display_name = "Synaptic Nanite Programming"
description = "Nanite programs affecting mind and thoughts."
prereq_ids = list("nanite_neural","neural_programming")
design_ids = list(
"blinding_nanites",
"hallucination_nanites",
"mindshield_nanites",
"mute_nanites",
"pacifying_nanites",
"sleep_nanites",
"speech_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 1000)
/datum/techweb_node/nanite_harmonic
id = "nanite_harmonic"
display_name = "Harmonic Nanite Programming"
description = "Nanite programs that require seamless integration between nanites and biology. Passively increases nanite regeneration rate for all clouds upon researching."
prereq_ids = list("nanite_bio","nanite_smart","nanite_mesh")
design_ids = list(
"aggressive_nanites",
"brainheal_plus_nanites",
"defib_nanites",
"fakedeath_nanites",
"purging_plus_nanites",
"regenerative_plus_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000, TECHWEB_POINT_TYPE_NANITES = 3000)
/datum/techweb_node/nanite_combat
id = "nanite_military"
display_name = "Military Nanite Programming"
description = "Nanite programs that perform military-grade functions."
prereq_ids = list("nanite_harmonic", "syndicate_basic")
design_ids = list(
"explosive_nanites",
"meltdown_nanites",
"nanite_sting_nanites",
"pyro_nanites",
"viral_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500, TECHWEB_POINT_TYPE_NANITES = 2500)
/datum/techweb_node/nanite_hazard
id = "nanite_hazard"
display_name = "Hazard Nanite Programs"
description = "Extremely advanced Nanite programs with the potential of being extremely dangerous."
prereq_ids = list("nanite_harmonic", "alientech")
design_ids = list(
"mindcontrol_nanites",
"mitosis_nanites",
"spreading_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000, TECHWEB_POINT_TYPE_NANITES = 4000)
/datum/techweb_node/nanite_replication_protocols
id = "nanite_replication_protocols"
display_name = "Nanite Replication Protocols"
description = "Protocols that overwrite the default nanite replication routine to achieve more efficiency in certain circumstances."
prereq_ids = list("nanite_smart")
design_ids = list(
"factory_nanites",
"kickstart_nanites",
"offline_nanites",
"pyramid_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 2500)
hidden = TRUE
experimental = TRUE
/datum/techweb_node/nanite_storage_protocols
id = "nanite_storage_protocols"
display_name = "Nanite Storage Protocols"
description = "Protocols that overwrite the default nanite storage routine to achieve more efficiency or greater capacity."
prereq_ids = list("nanite_smart")
design_ids = list(
"free_range_nanites",
"hive_nanites",
"unsafe_storage_nanites",
"zip_nanites",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 2500)
hidden = TRUE
experimental = TRUE
////////////////////////Alien technology////////////////////////
/datum/techweb_node/alientech //AYYYYYYYYLMAOO tech
id = "alientech"
display_name = "Alien Technology"
description = "Things used by the greys."
prereq_ids = list("biotech","engineering")
boost_item_paths = list(
/obj/item/abductor,
/obj/item/cautery/alien,
/obj/item/circuitboard/machine/abductor,
/obj/item/circular_saw/alien,
/obj/item/crowbar/abductor,
/obj/item/gun/energy/alien,
/obj/item/gun/energy/shrink_ray,
/obj/item/hemostat/alien,
/obj/item/melee/baton/abductor,
/obj/item/multitool/abductor,
/obj/item/retractor/alien,
/obj/item/scalpel/alien,
/obj/item/screwdriver/abductor,
/obj/item/surgicaldrill/alien,
/obj/item/weldingtool/abductor,
/obj/item/wirecutters/abductor,
/obj/item/wrench/abductor,
)
design_ids = list(
"alienalloy",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
hidden = TRUE
/datum/techweb_node/alientech/on_research() //Unlocks the Zeta shuttle for purchase
SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_ALIENTECH] = TRUE
/datum/techweb_node/alien_bio
id = "alien_bio"
display_name = "Alien Biological Tools"
description = "Advanced biological tools."
prereq_ids = list("alientech", "adv_biotech")
design_ids = list(
"alien_cautery",
"alien_drill",
"alien_hemostat",
"alien_retractor",
"alien_saw",
"alien_scalpel",
)
boost_item_paths = list(
/obj/item/abductor,
/obj/item/cautery/alien,
/obj/item/circuitboard/machine/abductor,
/obj/item/circular_saw/alien,
/obj/item/crowbar/abductor,
/obj/item/gun/energy/alien,
/obj/item/gun/energy/shrink_ray,
/obj/item/hemostat/alien,
/obj/item/melee/baton/abductor,
/obj/item/multitool/abductor,
/obj/item/retractor/alien,
/obj/item/scalpel/alien,
/obj/item/screwdriver/abductor,
/obj/item/surgicaldrill/alien,
/obj/item/weldingtool/abductor,
/obj/item/wirecutters/abductor,
/obj/item/wrench/abductor,
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
required_experiments = list(/datum/experiment/scanning/points/slime/hard)
hidden = TRUE
/datum/techweb_node/alien_engi
id = "alien_engi"
display_name = "Alien Engineering"
description = "Alien engineering tools"
prereq_ids = list("alientech", "adv_engi")
design_ids = list(
"alien_crowbar",
"alien_multitool",
"alien_screwdriver",
"alien_welder",
"alien_wirecutters",
"alien_wrench",
)
boost_item_paths = list(
/obj/item/abductor,
/obj/item/circuitboard/machine/abductor,
/obj/item/crowbar/abductor,
/obj/item/gun/energy/shrink_ray,
/obj/item/melee/baton/abductor,
/obj/item/multitool/abductor,
/obj/item/screwdriver/abductor,
/obj/item/weldingtool/abductor,
/obj/item/wirecutters/abductor,
/obj/item/wrench/abductor,
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
hidden = TRUE
/datum/techweb_node/syndicate_basic
id = "syndicate_basic"
display_name = "Illegal Technology"
description = "Dangerous research used to create dangerous objects."
prereq_ids = list("adv_engi", "adv_weaponry", "explosive_weapons")
design_ids = list(
"advanced_camera",
"ai_cam_upgrade",
"borg_syndicate_module",
"decloner",
"donksoft_refill",
"donksofttoyvendor",
"largecrossbow",
"rapidsyringe",
"suppressor",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
hidden = TRUE
/datum/techweb_node/syndicate_basic/New() //Crappy way of making syndicate gear decon supported until there's another way.
. = ..()
boost_item_paths = list()
for(var/path in GLOB.uplink_items)
var/datum/uplink_item/UI = new path
if(!UI.item || !UI.illegal_tech)
continue
boost_item_paths |= UI.item //allows deconning to unlock.
////////////////////////B.E.P.I.S. Locked Techs////////////////////////
/datum/techweb_node/light_apps
id = "light_apps"
display_name = "Illumination Applications"
description = "Applications of lighting and vision technology not originally thought to be commercially viable."
prereq_ids = list("base")
design_ids = list(
"bright_helmet",
"rld_mini",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
hidden = TRUE
experimental = TRUE
/datum/techweb_node/extreme_office
id = "extreme_office"
display_name = "Advanced Office Applications"
description = "Some of our smartest lab guys got together on a Friday and improved our office efficiency by 350%. Here's how."
prereq_ids = list("base")
design_ids = list(
"mauna_mug",
"rolling_table",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
hidden = TRUE
experimental = TRUE
/datum/techweb_node/spec_eng
id = "spec_eng"
display_name = "Specialized Engineering"
description = "Conventional wisdom has deemed these engineering products 'technically' safe, but far too dangerous to traditionally condone."
prereq_ids = list("base")
design_ids = list(
"eng_gloves",
"lava_rods",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
hidden = TRUE
experimental = TRUE
/datum/techweb_node/aus_security
id = "aus_security"
display_name = "Australicus Security Protocols"
description = "It is said that security in the Australicus sector is tight, so we took some pointers from their equipment. Thankfully, our sector lacks any signs of these, 'dropbears'."
prereq_ids = list("base")
design_ids = list(
"pin_explorer",
"stun_boomerang",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
hidden = TRUE
experimental = TRUE
/datum/techweb_node/interrogation
id = "interrogation"
display_name = "Enhanced Interrogation Technology"
description = "By cross-referencing several declassified documents from past dictatorial regimes, we were able to develop an incredibly effective interrogation device. \
Ethical concerns about loss of free will do not apply to criminals, according to galactic law."
prereq_ids = list("base")
design_ids = list(
"hypnochair",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500)
hidden = TRUE
experimental = TRUE
/datum/techweb_node/sticky_advanced
id = "sticky_advanced"
display_name = "Advanced Sticky Technology"
description = "Taking a good joke too far? Nonsense!"
design_ids = list(
"pointy_tape",
"super_sticky_tape",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
hidden = TRUE
experimental = TRUE
/datum/techweb_node/tackle_advanced
id = "tackle_advanced"
display_name = "Advanced Grapple Technology"
description = "Nanotrasen would like to remind its researching staff that it is never acceptable to \"glomp\" your coworkers, and further \"scientific trials\" on the subject \
will no longer be accepted in its academic journals."
design_ids = list(
"tackle_dolphin",
"tackle_rocket",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
hidden = TRUE
experimental = TRUE
//Helpers for debugging/balancing the techweb in its entirety!
/proc/total_techweb_points()
var/list/datum/techweb_node/processing = list()
for(var/i in subtypesof(/datum/techweb_node))
processing += new i
var/datum/techweb/TW = new
TW.research_points = list()
for(var/i in processing)
var/datum/techweb_node/TN = i
TW.add_point_list(TN.research_costs)
return TW.research_points
/proc/total_techweb_points_printout()
var/list/datum/techweb_node/processing = list()
for(var/i in subtypesof(/datum/techweb_node))
processing += new i
var/datum/techweb/TW = new
TW.research_points = list()
for(var/i in processing)
var/datum/techweb_node/TN = i
TW.add_point_list(TN.research_costs)
return TW.printout_points()