Files
Bubberstation/code/modules/research/techweb/all_nodes.dm
SkyratBot ebbd5fae19 [MIRROR] adds a gun circuit shell (#7934)
* adds a gun circuit shell (#61156)

adds the circuit gun shell, every projectile it hits with outputs the shot mob, everytime its shot charge from an attached circuit is transferred to it, it deals no damage
increases the range of the to string circuit to 7 tiles from 5, now should get everything in view range

* adds a gun circuit shell

* Update gun.dm

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-09-03 03:56:14 +01:00

2029 lines
55 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",
"gas_filter",
"plasmaman_gas_filter",
"oven_tray"
)
/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",
"wirebrush",
"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_comparison",
"comp_concat",
"comp_concat_list",
"comp_delay",
"comp_direction",
"comp_get_column",
"comp_gps",
"comp_health",
"comp_hear",
"comp_index",
"comp_index_table",
"comp_length",
"comp_light",
"comp_list_literal",
"comp_logic",
"comp_mmi",
"comp_module",
"comp_multiplexer",
"comp_not",
"comp_ntnet_receive",
"comp_ntnet_send",
"comp_pressuresensor",
"comp_radio",
"comp_random",
"comp_router",
"comp_select_query",
"comp_self",
"comp_soundemitter",
"comp_species",
"comp_speech",
"comp_speech",
"comp_split",
"comp_string_contains",
"comp_tempsensor",
"comp_textcase",
"comp_tonumber",
"comp_tostring",
"comp_typecast",
"comp_typecheck",
"compact_remote_shell",
"component_printer",
"integrated_circuit",
"module_duplicator",
"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_mass_spec",
"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",
"brute2medicell",
"burn2medicell",
"toxin2medicell",
"oxy2medicell",
//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",
"plumbing_chem",
"plumbing_eng",
"plumbing_sci"
//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",
"door_shell",
"gun_shell",
"money_bot_shell",
"scanner_gate_shell",
"scanner_shell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/bci_shells
id = "bci_shells"
display_name = "Brain-Computer Interfaces"
description = "Grants access to biocompatable shell designs and components."
prereq_ids = list("adv_shells")
design_ids = list(
"bci_implanter",
"bci_shell",
"comp_bar_overlay",
"comp_bci_action",
"comp_target_intercept",
"comp_counter_overlay",
"comp_object_overlay",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500)
/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_pathfind",
"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",
"advanced_materials", // SKYRAT ADDITION - ADVANCED MATERIALS UPGRADE
)
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",
"mecha_kineticgun",
)//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",
"vacuum",
"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",
"wirebrush_adv",
)
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
"medigunspeed",
"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)
////////////////////////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",
//SKYRAT EDIT START - RESEARCH DESIGNS
"brute3medicell",
"burn3medicell",
"oxy3medicell",
"toxin3medicell",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
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()