//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", "blast", "bounced_radio", "bowl", "bucket", "c-reader", "c38_rubber", "camera_assembly", "camera_film", "camera", "capbox", "chisel", "circuit_imprinter_offstation", "circuit_imprinter", "circuit", "circuitgreen", "circuitred", "coffee_cartridge", "coffeemaker", "coffeepot", "condenser", "conveyor_belt", "conveyor_switch", "custom_vendor_refill", "design_disk", "destructive_analyzer", "destructive_scanner", "desttagger", "doppler_array", "drinking_glass", "earmuffs", "electropack", "experi_scanner", "experimentor", "extinguisher", "fax", "fishing_rod", "flashlight", "fluid_ducts", "foam_dart", "fork", "gas_filter", "handcuffs_s", "handlabel", "health_sensor", "holodisk", "igniter", "infrared_emitter", "intercom_frame", "kitchen_knife", "laptop", "light_bulb", "light_replacer", "light_tube", "mechfab", "micro_mani", "miniature_power_cell", "newscaster_frame", "oven_tray", "packagewrap", "pet_carrier", "plasmaglass", "plasmaman_gas_filter", "plasmareinforcedglass", "plasteel", "plastic_fork", "plastic_knife", "plastic_spoon", "plastitanium", "plastitaniumglass", "plate", "prox_sensor", "radio_headset", "rdconsole", "rdserver", "rdservercontrol", "receiver", "recorder", "rglass", "roll", "sec_38", "sec_beanbag_slug", "sec_dart", "sec_Islug", "sec_rshot", "servingtray", "shaker", "shot_glass", "signaler", "slime_scanner", "solar_panel", "solar_tracker", "space_heater", "spoon", "status_display_frame", "sticky_tape", "tablet", "tape", "tech_disk", "timer", "titaniumglass", "toner_large", "toner", "toy_armblade", "toy_balloon", "toygun", "trapdoor_electronics", "turbine_part_compressor", "turbine_part_rotor", "turbine_part_stator", "turret_control", "voice_analyzer", "watering_can", ) /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/mod_basic id = "mod" starting_node = TRUE display_name = "Basic Modular Suits" description = "Specialized back mounted power suits with various different modules." design_ids = list( "mod_boots", "mod_chestplate", "mod_gauntlets", "mod_helmet", "mod_paint_kit", "mod_shell", "mod_plating_standard", "mod_storage", "mod_welding", "mod_mouthhole", "mod_flashlight", "mod_longfall", "mod_thermal_regulator", "mod_plasma", "mod_sign_radio", ) /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", "boxcutter", "cable_coil", "cable_coil", "crowbar", "cultivator", "decal_painter", "hatchet", "mop", "multitool", "normtrash", "pipe_painter", "plant_analyzer", "plunger", "pushbroom", "razor", "screwdriver", "secateurs", "shovel", "spade", "spraycan", "tile_sprayer", "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", "biopsy_tool", "blood_filter", "bonesetter", "cautery", "circular_saw", "cybernetic_eyes", "cybernetic_heart", "cybernetic_liver", "cybernetic_lungs", "cybernetic_stomach", "defibmountdefault", "dropper", "hemostat", "large_beaker", "mmi_m", "operating", "petri_dish", "pillbottle", "plumbing_rcd", "plumbing_rcd_service", "plumbing_rcd_sci", "portable_chem_mixer", "retractor", "scalpel", "stethoscope", "surgical_drapes", "surgical_tape", "surgicaldrill", "swab", "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_access_checker", "comp_arithmetic", "comp_binary_convert", "comp_clock", "comp_comparison", "comp_concat", "comp_concat_list", "comp_decimal_convert", "comp_delay", "comp_direction", "comp_element_find", "comp_filter_list", "comp_foreach", "comp_format", "comp_format_assoc", "comp_get_column", "comp_gps", "comp_health", "comp_hear", "comp_id_access_reader", "comp_id_getter", "comp_id_info_reader", "comp_index", "comp_index_assoc", "comp_index_table", "comp_laserpointer", "comp_length", "comp_light", "comp_list_add", "comp_list_assoc_literal", "comp_list_clear", "comp_list_literal", "comp_list_remove", "comp_logic", "comp_matscanner", "comp_mmi", "comp_module", "comp_multiplexer", "comp_not", "comp_ntnet_receive", "comp_ntnet_send", "comp_pinpointer", "comp_pressuresensor", "comp_radio", "comp_random", "comp_reagents", "comp_router", "comp_select_query", "comp_self", "comp_set_variable_trigger", "comp_soundemitter", "comp_species", "comp_speech", "comp_speech", "comp_split", "comp_string_contains", "comp_tempsensor", "comp_textcase", "comp_timepiece", "comp_tonumber", "comp_tostring", "comp_trigonometry", "comp_typecast", "comp_typecheck", "comp_view_sensor", "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", "blood_pack", "chem_dispenser", "chem_heater", "chem_mass_spec", //SKYRAT EDIT - RESEARCH DESIGNS "anesthetic_machine", "smartdartgun", //SKYRAT EDIT - END "chem_master", "chem_pack", "defibmount", "defibrillator", "genescanner", "healthanalyzer", "med_spray_bottle", "medical_kiosk", "medigel", "medipen_refiller", "pandemic", "soda_dispenser", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) required_experiments = list(/datum/experiment/dissection/human) // 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", "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", "relocatemedicell", "tempmedicell", "bodymedicell", "clotmedicell", //SKYRAT EDIT END - ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) required_experiments = list(/datum/experiment/dissection/nonhuman) // ORIGINAL: discount_experiments = list(/datum/experiment/scanning/random/material/meat = 4000) discount_experiments = list(/datum/experiment/scanning/random/material/silver = 4000) // 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/hard = 5000, /datum/experiment/dissection/xenomorph = 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", "oven", "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", "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", "recharger", "recycler", "rped", "scanner_gate", "solarcontrol", "stack_console", "stack_machine", "tesla_coil", "thermomachine", "w-recycler", "emitter", "welding_goggles", "anomaly_refinery", "tank_compressor", "atmos_thermal", ) 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", "rcd_ammo", "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 = 15000) discount_experiments = list( /datum/experiment/scanning/random/material/medium/one = 4000, /datum/experiment/ordnance/gaseous/bz = 10000, ) /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) discount_experiments = list(/datum/experiment/scanning/points/machinery_tiered_scan/tier2_lathes = 5000) /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_turbine_console", "smes", "super_capacitor", "super_cell", "turbine_compressor", "turbine_rotor", "turbine_stator", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) discount_experiments = list(/datum/experiment/scanning/points/machinery_pinpoint_scan/tier2_capacitors = 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) discount_experiments = list(/datum/experiment/scanning/points/machinery_tiered_scan/tier3_bluespacemachines = 4000) /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/scanning/points/machinery_tiered_scan/tier3_variety = 5000) /* /datum/experiment/exploration_scan/random/condition) this should have a point cost but im not even sure the experiment works properly lmao*/ /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", "bluespace_coffeepot", "bs_rped", "minerbag_holding", "ore_silo", "phasic_scanning", "plumbing_receiver", "roastingstick", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) discount_experiments = list(/datum/experiment/scanning/points/machinery_pinpoint_scan/tier2_scanmodules = 3500) /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 = 4000) discount_experiments = list(/datum/experiment/scanning/points/machinery_pinpoint_scan/tier3_cells = 3000) /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( "assembly_shell", "bot_shell", "comp_mod_action", "controller_shell", "dispenser_shell", "door_shell", "gun_shell", "keyboard_shell", "module_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_counter_overlay", "comp_object_overlay", "comp_target_intercept", "comp_thought_listener", "comp_vox", ) 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", "borg_upgrade_snacks", // SKYRAT ADDITION - BETTER BORG SNACK DISPENSORS ) 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/adv_bots id = "adv_bots" display_name = "Advanced Bots Research" description = "Grants access to a special launchpad designed for bots." prereq_ids = list("robotics") design_ids = list( "botpad", "botpad_remote", ) 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/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_clamp", "borg_upgrade_brush", //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", "borg_upgrade_hypermod", // SKYRAT EDIT ADD START "advanced_materials", "inducer_module", // SKYRAT EDIT ADD END ) 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", // SKYRAT EDIT REMOVAL "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_basic id = "ai_basic" display_name = "Artificial Intelligence" description = "AI unit research." prereq_ids = list("adv_robotics") design_ids = list( "aicore", "borg_ai_control", "intellicard", "mecha_tracking_ai_control", "aifixer", "aiupload", "reset_module", "asimov_module", "default_module", "nutimov_module", "paladin_module", "robocop_module", "corporate_module", "drone_module", "oxygen_module", "safeguard_module", "protectstation_module", "quarantine_module", "freeform_module", "remove_module", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/ai_adv id = "ai_adv" display_name = "Advanced Artificial Intelligence" description = "State of the art lawsets to be used for AI research." prereq_ids = list("ai_basic") design_ids = list( "asimovpp_module", "paladin_devotion_module", "dungeon_master_module", "painter_module", "ten_commandments_module", "hippocratic_module", "maintain_module", "liveandletlive_module", "reporter_module", "hulkamania_module", "peacekeeper_module", "overlord_module", "tyrant_module", "antimov_module", "balance_module", "thermurderdynamic_module", "damaged_module", "freeformcore_module", "onehuman_module", "purge_module", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) //Any kind of point adjustment needs to happen before SSresearch sets up the whole node tree, it gets cached /datum/techweb_node/ai/New() . = ..() if(HAS_TRAIT(SSstation, STATION_TRAIT_UNIQUE_AI)) research_costs[TECHWEB_POINT_TYPE_GENERIC] *= 3 /////////////////////////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", //SKYRAT EDIT - ADDITION MEDIGUNS "gownmedicell", "bedmedicell", //SKYRAT EDIT END "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) discount_experiments = list(/datum/experiment/scanning/points/machinery_pinpoint_scan/tier2_microlaser = 1500) /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 = 15000) discount_experiments = list( /datum/experiment/scanning/points/machinery_pinpoint_scan/tier3_microlaser = 4000, /datum/experiment/ordnance/gaseous/noblium = 10000, ) /////////////////////////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( "bat_advanced", "bat_control", "bat_micro", "bat_nano", "bat_normal", "bat_super", "cardslot", "portadrive_advanced", "portadrive_basic", "portadrive_super", ) 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( "account_console", "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", "health_hud_aviator", "security_hud_aviator", "diagnostic_hud_aviator", "meson_hud_aviator", "science_hud_aviator", "health_hud_projector", "security_hud_projector", "diagnostic_hud_projector", "meson_hud_projector", "science_hud_projector", "permit_glasses", //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", "nv_scigoggles", "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", "self_actualization_device", // SKYRAT EDIT ADDITION: Added the Self-Actualization Device ) 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") // SKYRAT EDIT - REMOVED: X-rays+Thermals from here design_ids = list( "ci-antidrop", "ci-antistun", "ci-thrusters", ) 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( "borg_upgrade_cooldownmod", "borg_upgrade_damagemod", "borg_upgrade_rangemod", "cargoexpress", "cooldownmod", "damagemod", "drill", "mecha_kineticgun", "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_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_blue", "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", //SKYRAT EDIT - ADDITION MEDIGUNS "salvemedicell", //SKYRAT EDIT END "hydro_tray", "portaseeder", "seed_extractor", "adv_watering_can", ) 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", "rangedanalyzer", "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", "inspector", ) 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 = 20000) discount_experiments = list(/datum/experiment/ordnance/explosive/pressurebomb = 10000) /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) /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", //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) /datum/techweb_node/exotic_ammo id = "exotic_ammo" display_name = "Exotic Ammunition" description = "They won't know what hit em." prereq_ids = list("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) //MODsuit tech /datum/techweb_node/mod_advanced id = "mod_advanced" display_name = "Advanced Modular Suits" description = "More advanced modules, to improve modular suits." prereq_ids = list("robotics") design_ids = list( "mod_visor_diaghud", "mod_gps", "mod_reagent_scanner", "mod_clamp", "mod_drill", "mod_orebag", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/mod_engineering id = "mod_engineering" display_name = "Engineering Modular Suits" description = "Engineering suits, for powered engineers." prereq_ids = list("mod_advanced", "engineering") design_ids = list( "mod_plating_engineering", "mod_visor_meson", "mod_t_ray", "mod_magboot", "mod_tether", "mod_constructor", "mod_mister_atmos", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/mod_advanced_engineering id = "mod_advanced_engineering" display_name = "Advanced Engineering Modular Suits" description = "Advanced Engineering suits, for advanced powered engineers." prereq_ids = list("mod_engineering", "adv_engi") design_ids = list( "mod_plating_atmospheric", "mod_jetpack", "mod_rad_protection", "mod_emp_shield", "mod_storage_expanded", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) /datum/techweb_node/mod_medical id = "mod_medical" display_name = "Medical Modular Suits" description = "Medical suits for quick rescue purposes." prereq_ids = list("mod_advanced", "biotech") design_ids = list( "mod_plating_medical", "mod_visor_medhud", "mod_health_analyzer", "mod_quick_carry", "mod_injector", "mod_organ_thrower", "mod_dna_lock", "mod_patienttransport", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/mod_advanced_medical id = "mod_advanced_medical" display_name = "Advanced Medical Modular Suits" description = "Advanced medical suits for quicker rescue purposes." prereq_ids = list("mod_medical", "adv_biotech") design_ids = list( "mod_defib", "mod_threadripper", "mod_surgicalprocessor", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) /datum/techweb_node/mod_security id = "mod_security" display_name = "Security Modular Suits" description = "Security suits for space crime handling." prereq_ids = list("mod_advanced", "sec_basic") design_ids = list( "mod_plating_security", "mod_visor_sechud", "mod_stealth", "mod_mag_harness", "mod_pathfinder", "mod_holster", "mod_sonar", "mod_projectile_dampener", "mod_criminalcapture", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/mod_entertainment id = "mod_entertainment" display_name = "Entertainment Modular Suits" description = "Powered suits for protection against low-humor environments." prereq_ids = list("mod_advanced", "clown") design_ids = list( "mod_plating_cosmohonk", "mod_bikehorn", "mod_microwave_beam", "mod_waddle", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/mod_anomaly id = "mod_anomaly" display_name = "Anomalock Modular Suits" description = "Modules for modular suits that require anomaly cores to function." prereq_ids = list("mod_advanced", "anomaly_research") design_ids = list( "mod_antigrav", "mod_teleporter", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/mod_anomaly_engi id = "mod_anomaly_engi" display_name = "Engineering Anomalock Modular Suits" description = "Advanced modules for modular suits, using anomaly cores to become even better engineers." prereq_ids = list("mod_advanced_engineering", "mod_anomaly") design_ids = list( "mod_kinesis", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) ////////////////////////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", "adv_mecha_armor") 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 = 5000) discount_experiments = list(/datum/experiment/scanning/points/machinery_tiered_scan/tier3_mechbay = 5000) /datum/techweb_node/durand id = "mech_durand" display_name = "EXOSUIT: Durand" description = "Durand exosuit designs" prereq_ids = list("adv_mecha", "adv_mecha_armor") 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 = 5000) discount_experiments = list(/datum/experiment/scanning/points/machinery_tiered_scan/tier3_mechbay = 3500) /datum/techweb_node/phazon id = "mecha_phazon" display_name = "EXOSUIT: Phazon" description = "Phazon exosuit designs" prereq_ids = list("adv_mecha", "adv_mecha_armor" , "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 = 5000) discount_experiments = list(/datum/experiment/scanning/points/machinery_tiered_scan/tier3_mechbay = 2500) /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) discount_experiments = list(/datum/experiment/scanning/points/machinery_tiered_scan/tier3_mechbay = 3000) /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_armor id = "adv_mecha_armor" display_name = "Exosuit Heavy Armor Research" description = "Recreating heavy armor with new rapid fabrication techniques." prereq_ids = list("adv_mecha", "bluespace_power") design_ids = list( "mech_ccw_armor", "mech_proj_armor", ) required_experiments = list(/datum/experiment/scanning/random/mecha_damage_scan) discount_experiments = list(/datum/experiment/scanning/random/mecha_destroyed_scan = 5000) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) /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("adv_mecha") 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("exotic_ammo") 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("adv_mecha") 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("adv_mecha") 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 = 12500) discount_experiments = list(/datum/experiment/scanning/points/slime/hard = 10000) 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", "super_pointy_tape", ) 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. . = ..() if(!SSearly_assets.initialized) RegisterSignal(SSearly_assets, COMSIG_SUBSYSTEM_POST_INITIALIZE, .proc/register_uplink_items) else register_uplink_items() /** * This needs some clarification: The uplink_items_by_type list is populated on datum/asset/json/uplink/generate. * SStraitor doesn't actually initialize. I'm bamboozled. */ /datum/techweb_node/syndicate_basic/proc/register_uplink_items() SIGNAL_HANDLER UnregisterSignal(SSearly_assets, COMSIG_SUBSYSTEM_POST_INITIALIZE) boost_item_paths = list() for(var/datum/uplink_item/item_path as anything in SStraitor.uplink_items_by_type) var/datum/uplink_item/item = SStraitor.uplink_items_by_type[item_path] if(!item.item || !item.illegal_tech) continue boost_item_paths |= item.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 /datum/techweb_node/mod_experimental id = "mod_experimental" display_name = "Experimental Modular Suits" description = "Applications of experimentality when creating MODsuits has created these..." prereq_ids = list("base") design_ids = list( "mod_disposal", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) hidden = TRUE experimental = TRUE /datum/techweb_node/fishing id = "fishing" display_name = "Fishing Technology" description = "Cutting edge fishing advancements." prereq_ids = list("base") design_ids = list( "fishing_rod_tech" ) 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()