diff --git a/code/__defines/research/techweb_nodes.dm b/code/__defines/research/techweb_nodes.dm index 5326651ffba..9421a1670a6 100644 --- a/code/__defines/research/techweb_nodes.dm +++ b/code/__defines/research/techweb_nodes.dm @@ -85,6 +85,7 @@ #define TECHWEB_NODE_MINING "mining" #define TECHWEB_NODE_MINING_ADV "mining_adv" #define TECHWEB_NODE_MOD_ANOMALY "mod_anomaly" +#define TECHWEB_NODE_MOD_SUPPLY "mod_supply" #define TECHWEB_NODE_MOD_ENGI "mod_engi" #define TECHWEB_NODE_MOD_ENGI_ADV "mod_engi_adv" #define TECHWEB_NODE_MOD_ENTERTAINMENT "mod_entertainment" @@ -97,6 +98,9 @@ #define TECHWEB_NODE_MODULAR_COMPUTER "modular_computer" #define TECHWEB_NODE_NIF "nif" #define TECHWEB_NODE_NIGHT_VISION "night_vision" +#define TECHWEB_NODE_THERMAL_VISION "thermal_vision" +#define TECHWEB_NODE_GRAVITON_VISION "graviton_vision" +#define TECHWEB_NODE_ADVANCED_VISORS "advanced_visors" #define TECHWEB_NODE_NSFW "nsfwgun" #define TECHWEB_NODE_OFFICE_EQUIP "office_equip" #define TECHWEB_NODE_OLDSTATION_SURGERY "oldstation_surgery" diff --git a/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm b/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm index ddb72b5ad2a..338e19a4c01 100644 --- a/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm +++ b/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm @@ -7,9 +7,9 @@ from incoming ionizing radiation and converts it into a significantly less harmful form. This comes at the cost of concerningly high power consumption, \ and thus should only be used in short bursts." icon_state = "radsoak" - toggleable = 1 - disruptable = 1 - disruptive = 0 + toggleable = TRUE + disruptable = TRUE + disruptive = FALSE use_power_cost = 25 active_power_cost = 25 @@ -26,7 +26,7 @@ /obj/item/rig_module/rad_shield/activate() if(!..()) - return 0 + return FALSE var/mob/living/carbon/human/H = holder.wearer var/obj/item/clothing/shoes/boots = holder.boots @@ -49,7 +49,7 @@ /obj/item/rig_module/rad_shield/deactivate() if(!..()) - return 0 + return FALSE var/mob/living/carbon/human/H = holder.wearer var/obj/item/clothing/shoes/boots = holder.boots @@ -86,9 +86,9 @@ and thus should only be used in short bursts." icon_state = "atmosoak" - toggleable = 1 - disruptable = 1 - disruptive = 0 + toggleable = TRUE + disruptable = TRUE + disruptive = FALSE use_power_cost = 25 active_power_cost = 25 @@ -106,7 +106,7 @@ /obj/item/rig_module/atmos_shield/activate() if(!..()) - return 0 + return FALSE var/mob/living/carbon/human/H = holder.wearer var/obj/item/clothing/shoes/boots = holder.boots @@ -137,7 +137,7 @@ /obj/item/rig_module/atmos_shield/deactivate() if(!..()) - return 0 + return FALSE var/mob/living/carbon/human/H = holder.wearer var/obj/item/clothing/shoes/boots = holder.boots @@ -164,3 +164,90 @@ stored_max_pressure = 0 stored_max_temp = 0 + +/obj/item/rig_module/atmos_shield/advanced + name = "advanced atmospheric protection enhancement suite" + desc = "The acronym of this device - A.P.E. - unlike its loosely related cousin, the R.A.D., is remarkably unintuitive. It has a changelog inscribed \ + on the underside of the casing." + use_power_cost = 5 + active_power_cost = 5 + +/obj/item/rig_module/faraday_shield + name = "Faraday Protection Shield" + desc = "The acronym of this device - F.P.S. - does not represent the application of the device." + description_info = "Instead of wrapping the user with a grounded mesh of wires and limiting mobility, this device instead creates an \ + lattice within the electromagnetic field around the user. This field, while smelling pleasantly of ozone, will act as a means of grounding \ + the suit's operator. This in turn will protect them from electrical attacks from Teslas and other electrical assaults provided the body is \ + fully covered by the suit. This comes at the cost of concerningly high power consumption, and thus should only be used in short bursts." + icon_state = "elecsoak" + toggleable = TRUE + disruptable = TRUE + disruptive = FALSE + + use_power_cost = 25 + active_power_cost = 25 + passive_power_cost = 0 + module_cooldown = 30 + + activate_string = "Enable Supplemental Faraday Shielding" + deactivate_string = "Disable Supplemental Faraday Shielding" + + interface_name = "faraday shielding system" + interface_desc = "Provides passive protection against electrical assaults, at the cost of power." + var/stored_siemens_coefficient = 0 + var/stored_gloves_siemens_coefficient = 0 + +/obj/item/rig_module/faraday_shield/activate() + if(!..()) + return FALSE + + var/mob/living/carbon/human/H = holder.wearer + var/obj/item/clothing/shoes/boots = holder.boots + var/obj/item/clothing/suit/space/rig/chest = holder.chest + var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet + var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves + + to_chat(H, span_boldnotice("You activate your suit's powered faraday shielding.")) + stored_siemens_coefficient = holder.siemens_coefficient + stored_gloves_siemens_coefficient = gloves.siemens_coefficient + if(boots) + boots.siemens_coefficient = 0 + if(chest) + chest.siemens_coefficient = 0 + if(helmet) + helmet.siemens_coefficient = 0 + if(gloves) + gloves.siemens_coefficient = 0 + holder.siemens_coefficient = 0 + +/obj/item/rig_module/faraday_shield/deactivate() + + if(!..()) + return 0 + + var/mob/living/carbon/human/H = holder.wearer + var/obj/item/clothing/shoes/boots = holder.boots + var/obj/item/clothing/suit/space/rig/chest = holder.chest + var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet + var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves + + to_chat(H, span_boldnotice("You deactivate your suit's powered faraday shielding.")) + + if(boots) + boots.siemens_coefficient = stored_siemens_coefficient + if(chest) + chest.siemens_coefficient = stored_siemens_coefficient + if(helmet) + helmet.siemens_coefficient = stored_siemens_coefficient + if(gloves) + gloves.siemens_coefficient = stored_gloves_siemens_coefficient + holder.siemens_coefficient = siemens_coefficient + + stored_siemens_coefficient = 0 + +/obj/item/rig_module/faraday_shield/advanced + name = "advanced faraday protection shield suite" + desc = "The acronym of this device - F.P.S. - does not represent the application of the device. It has a changelog inscribed \ + on the underside of the casing." + use_power_cost = 5 + active_power_cost = 5 diff --git a/code/modules/clothing/spacesuits/rig/modules/specific/vision.dm b/code/modules/clothing/spacesuits/rig/modules/specific/vision.dm index de99eaaa736..4be03a42b5a 100644 --- a/code/modules/clothing/spacesuits/rig/modules/specific/vision.dm +++ b/code/modules/clothing/spacesuits/rig/modules/specific/vision.dm @@ -31,6 +31,12 @@ /datum/rig_vision/meson/New() glasses = new /obj/item/clothing/glasses/meson +/datum/rig_vision/graviton + mode = "graviton scanner" + +/datum/rig_vision/graviton/New() + glasses = new /obj/item/clothing/glasses/graviton + /datum/rig_vision/sechud mode = "security HUD" @@ -58,9 +64,9 @@ interface_name = "optical scanners" interface_desc = "An integrated multi-mode vision system." - usable = 1 - toggleable = 1 - disruptive = 0 + usable = TRUE + toggleable = TRUE + disruptive = FALSE module_cooldown = 0 engage_string = "Cycle Visor Mode" @@ -86,20 +92,20 @@ interface_name = "multi optical visor" interface_desc = "An integrated multi-mode vision system." - vision_modes = list(/datum/rig_vision/meson, - /datum/rig_vision/material, + vision_modes = list(/datum/rig_vision/graviton, /datum/rig_vision/nvg, /datum/rig_vision/thermal, /datum/rig_vision/sechud, /datum/rig_vision/medhud) + /obj/item/rig_module/vision/meson name = "hardsuit meson scanner" desc = "A layered, translucent visor system for a hardsuit." icon_state = "meson" - usable = 0 + usable = FALSE interface_name = "meson scanner" interface_desc = "An integrated meson scanner." @@ -112,20 +118,33 @@ desc = "A layered, translucent visor system for a hardsuit." icon_state = "meson" - usable = 0 + usable = FALSE interface_name = "material scanner" interface_desc = "An integrated material scanner." vision_modes = list(/datum/rig_vision/material) +/obj/item/rig_module/vision/graviton + + name = "hardsuit graviton visor" + desc = "A layered, translucent visor system for a hardsuit." + icon_state = "optics" + + usable = FALSE + + interface_name = "graviton visor" + interface_desc = "An integrated graviton scanner." + + vision_modes = list(/datum/rig_vision/graviton) + /obj/item/rig_module/vision/mining name = "hardsuit mining scanners" desc = "A layered, translucent visor system for a hardsuit." icon_state = "optics" - usable = 0 + usable = FALSE interface_name = "mining scanners" interface_desc = "An integrated mining scanner array." @@ -139,7 +158,7 @@ desc = "A layered, translucent visor system for a hardsuit." icon_state = "thermal" - usable = 0 + usable = FALSE interface_name = "thermal scanner" interface_desc = "An integrated thermal scanner." @@ -152,7 +171,7 @@ desc = "A multi input night vision system for a hardsuit." icon_state = "night" - usable = 0 + usable = FALSE interface_name = "night vision interface" interface_desc = "An integrated night vision system." @@ -165,7 +184,7 @@ desc = "A simple tactical information system for a hardsuit." icon_state = "securityhud" - usable = 0 + usable = FALSE interface_name = "security HUD" interface_desc = "An integrated security heads up display." @@ -178,7 +197,7 @@ desc = "A simple medical status indicator for a hardsuit." icon_state = "healthhud" - usable = 0 + usable = FALSE interface_name = "medical HUD" interface_desc = "An integrated medical heads up display." @@ -194,12 +213,12 @@ /obj/item/rig_module/vision/engage() if(!..() || !vision_modes) - return 0 + return FALSE // Don't cycle if this engage() is being called by activate(). if(!active) to_chat(holder.wearer, span_blue("You activate your visual sensors.")) - return 1 + return TRUE if(vision_modes.len > 1) vision_index++ @@ -210,7 +229,7 @@ to_chat(holder.wearer, span_blue("You cycle your sensors to [vision.mode] mode.")) else to_chat(holder.wearer, span_blue("Your sensors only have one mode.")) - return 1 + return TRUE /obj/item/rig_module/vision/activate() if((. = ..()) && holder.wearer) diff --git a/code/modules/clothing/spacesuits/rig/modules/vision.dm b/code/modules/clothing/spacesuits/rig/modules/vision.dm index 2b68612b064..7a05216161b 100644 --- a/code/modules/clothing/spacesuits/rig/modules/vision.dm +++ b/code/modules/clothing/spacesuits/rig/modules/vision.dm @@ -33,9 +33,16 @@ /datum/rig_vision/material mode = "material scanner" + /datum/rig_vision/material/New() glasses = new /obj/item/clothing/glasses/material +/datum/rig_vision/graviton + mode = "graviton scanner" + +/datum/rig_vision/graviton/New() + glasses = new /obj/item/clothing/glasses/graviton + /datum/rig_vision/sechud mode = "security HUD" @@ -57,9 +64,9 @@ interface_name = "optical scanners" interface_desc = "An integrated multi-mode vision system." - usable = 1 - toggleable = 1 - disruptive = 0 + usable = FALSE + toggleable = TRUE + disruptive = FALSE module_cooldown = 0 engage_string = "Cycle Visor Mode" @@ -85,8 +92,7 @@ interface_name = "multi optical visor" interface_desc = "An integrated multi-mode vision system." - vision_modes = list(/datum/rig_vision/meson, - /datum/rig_vision/material, + vision_modes = list(/datum/rig_vision/graviton, /datum/rig_vision/nvg, /datum/rig_vision/thermal, /datum/rig_vision/sechud, @@ -98,7 +104,7 @@ desc = "A layered, translucent visor system for a hardsuit." icon_state = "meson" - usable = 0 + usable = FALSE interface_name = "meson scanner" interface_desc = "An integrated meson scanner." @@ -111,20 +117,33 @@ desc = "A layered, translucent visor system for a hardsuit." icon_state = "material" - usable = 0 + usable = FALSE interface_name = "material scanner" interface_desc = "An integrated material scanner." vision_modes = list(/datum/rig_vision/material) +/obj/item/rig_module/vision/graviton + + name = "hardsuit graviton visor" + desc = "A layered, translucent visor system for a hardsuit." + icon_state = "optics" + + usable = FALSE + + interface_name = "graviton visor" + interface_desc = "An integrated graviton scanner." + + vision_modes = list(/datum/rig_vision/graviton) + /obj/item/rig_module/vision/mining name = "hardsuit mining scanners" desc = "A layered, translucent visor system for a hardsuit." icon_state = "optics" - usable = 0 + usable = FALSE interface_name = "mining scanners" interface_desc = "An integrated mining scanner array." @@ -138,7 +157,7 @@ desc = "A layered, translucent visor system for a hardsuit." icon_state = "thermal" - usable = 0 + usable = FALSE interface_name = "thermal scanner" interface_desc = "An integrated thermal scanner." @@ -151,7 +170,7 @@ desc = "A multi input night vision system for a hardsuit." icon_state = "night" - usable = 0 + usable = FALSE interface_name = "night vision interface" interface_desc = "An integrated night vision system." @@ -164,7 +183,7 @@ desc = "A simple tactical information system for a hardsuit." icon_state = "securityhud" - usable = 0 + usable = FALSE interface_name = "security HUD" interface_desc = "An integrated security heads up display." @@ -177,7 +196,7 @@ desc = "A simple medical status indicator for a hardsuit." icon_state = "healthhud" - usable = 0 + usable = FALSE interface_name = "medical HUD" interface_desc = "An integrated medical heads up display." @@ -195,12 +214,12 @@ var/starting_up = !active if(!..() || !vision_modes) - return 0 + return FALSE // Don't cycle if this engage() is being called by activate(). if(starting_up) to_chat(holder.wearer, span_blue("You activate your visual sensors.")) - return 1 + return TRUE if(vision_modes.len > 1) vision_index++ @@ -211,7 +230,7 @@ to_chat(holder.wearer, span_blue("You cycle your sensors to [vision.mode] mode.")) else to_chat(holder.wearer, span_blue("Your sensors only have one mode.")) - return 1 + return TRUE /obj/item/rig_module/vision/activate() if((. = ..()) && holder.wearer) diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm index 19a00098766..f236d9fafef 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station.dm @@ -172,7 +172,7 @@ suit_type = "hazmat hardsuit" desc = "An Anomalous Material Interaction hardsuit that protects against the strangest energies the universe can throw at it." icon_state = "science_rig" - armor = list(melee = 45, bullet = 5, laser = 45, energy = 80, bomb = 60, bio = 100, rad = 100) + armor = list(melee = 45, bullet = 5, laser = 45, energy = 80, bomb = 100, bio = 100, rad = 100) slowdown = 0.5 offline_vision_restriction = 1 siemens_coefficient= 0.75 diff --git a/code/modules/mob/living/carbon/human/species/station/protean/protean_rig.dm b/code/modules/mob/living/carbon/human/species/station/protean/protean_rig.dm index 4f777656d82..c204a2b2b29 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean/protean_rig.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean/protean_rig.dm @@ -515,9 +515,11 @@ to_chat(user, span_warning("The world is not ready for such a technological singularity.")) return to_chat(user, span_notice("You assimilate the [R] into the [src]. Mimicking its stats and appearance.")) + + rigsuit_max_pressure = R.rigsuit_max_pressure for(var/obj/item/piece in list(gloves,helmet,boots,chest)) piece.armor = R.armor.Copy() - piece.max_pressure_protection = R.max_pressure_protection + piece.max_pressure_protection = R.rigsuit_max_pressure piece.max_heat_protection_temperature = R.max_heat_protection_temperature //I dislike this piece of code, but not every rig has the full set of parts if(R.gloves) @@ -560,10 +562,11 @@ set category = "Object" if(assimilated_rig) + rigsuit_max_pressure = initial(rigsuit_max_pressure) for(var/obj/item/piece in list(gloves,helmet,boots,chest)) piece.armor = armor.Copy() - piece.max_pressure_protection = initial(piece.max_pressure_protection) - piece.max_heat_protection_temperature = initial(piece.max_heat_protection_temperature) + piece.max_pressure_protection = rigsuit_max_pressure + piece.max_heat_protection_temperature = max_heat_protection_temperature piece.icon_state = src.icon_state piece.icon = initial(piece.icon) piece.default_worn_icon = initial(piece.default_worn_icon) diff --git a/code/modules/research/tg/designs/modsuit_designs.dm b/code/modules/research/tg/designs/modsuit_designs.dm index c9a949af4aa..a1c1f061a59 100644 --- a/code/modules/research/tg/designs/modsuit_designs.dm +++ b/code/modules/research/tg/designs/modsuit_designs.dm @@ -17,6 +17,56 @@ materials = list(MAT_PLASTEEL = 12000, MAT_GOLD = 3000, MAT_GRAPHITE = 3000, MAT_OSMIUM = 1000, MAT_PLASTIC = 5000) build_path = /obj/item/rig/robotics +// Station Suits +/datum/design_techweb/mechfab/modsuit/eva_controller + name = "EVA Suit Control Module" + desc = "An engineering Hardsuit featuring a visor with welding protection, iommunity to radiation, and insulated gauntlets. It is well insulated against the heat." + id = "eva_rig_module" + materials = list(MAT_PLASTEEL = 16000, MAT_GOLD = 3000, MAT_GRAPHITE = 4500, MAT_OSMIUM = 1000, MAT_PLASTIC = 4500, MAT_LEAD = 2000, MAT_STEEL = 2000) + build_path = /obj/item/rig/eva + +/datum/design_techweb/mechfab/modsuit/eva_ce_controller + name = "Advanced EVA Suit Control Module" + desc = "A more advanced EVA hardsuit with the same features, plus additional atmospheric protection and advanced magboots. Finely polished for engineering clout." + id = "advanced_eva_rig_module" + materials = list(MAT_PLASTEEL = 16000, MAT_GOLD = 6000, MAT_GRAPHITE = 4500, MAT_OSMIUM = 4000, MAT_PLASTIC = 8000, MAT_LEAD = 2000, MAT_PHORON = 6000, MAT_STEEL = 3000, MAT_TITANIUM = 2000) + build_path = /obj/item/rig/ce + +/datum/design_techweb/mechfab/modsuit/ami_controller + name = "AMI Suit Control Module" + desc = "A hardsuit for the rigors of science. In theory it should protect the wearer from the stranger things that the universe can offer. In 'theory.'" + id = "ami_rig_module" + materials = list(MAT_PLASTEEL = 12000, MAT_GOLD = 3000, MAT_GRAPHITE = 3000, MAT_OSMIUM = 2000, MAT_PLASTIC = 6000, MAT_LEAD = 2000, MAT_PHORON = 12000) + build_path = /obj/item/rig/hazmat + +/datum/design_techweb/mechfab/modsuit/industrial_controller + name = "Industrial Suit Control Module" + desc = "Ugly as hell, and heavier than I-Beam. Designed to protect thickly beardered miners in the depths." + id = "industrial_rig_module" + materials = list(MAT_PLASTEEL = 14000, MAT_GOLD = 4000, MAT_GRAPHITE = 5000, MAT_OSMIUM = 1000, MAT_PLASTIC = 5000, MAT_STEEL = 10000, MAT_TITANIUM = 2000) + build_path = /obj/item/rig/industrial + +/datum/design_techweb/mechfab/modsuit/hazard_controller + name = "Hazard Suit Control Module" + desc = "A security hardsuit with protection for bringing justice into the blackness of the void." + id = "hazard_rig_module" + materials = list(MAT_PLASTEEL = 14000, MAT_GOLD = 4000, MAT_GRAPHITE = 5000, MAT_OSMIUM = 1000, MAT_PLASTIC = 5000, MAT_STEEL = 10000, MAT_TITANIUM = 2000) + build_path = /obj/item/rig/hazard + +/datum/design_techweb/mechfab/modsuit/rescue_controller + name = "Rescue Suit Control Module" + desc = "A hardsuit designed for medical rescue in hazardous environments. Just don't expect it to stop a bullet." + id = "medical_rig_module" + materials = list(MAT_PLASTEEL = 12000, MAT_GOLD = 6000, MAT_GRAPHITE = 3000, MAT_OSMIUM = 4000, MAT_PLASTIC = 10000, MAT_LEAD = 2000) + build_path = /obj/item/rig/medical + +/datum/design_techweb/mechfab/modsuit/zero_controller + name = "Zero Suit Control Module" + desc = "A very bare bones and stylish suit designed for pilots with advanced holographic interfaces for the task." + id = "zero_rig_module" + materials = list(MAT_PLASTEEL = 12000, MAT_GOLD = 3000, MAT_GRAPHITE = 3000, MAT_OSMIUM = 1000, MAT_PLASTIC = 5000) + build_path =/obj/item/rig/zero + ///Modsuit Modules /datum/design_techweb/mechfab/modsuit/modules //req_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 5, TECH_PHORON = 3, TECH_MAGNET = 4, TECH_POWER = 6) @@ -34,7 +84,19 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL ) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_MEDICAL + +/datum/design_techweb/mechfab/modsuit/pat + name = "hardsuit mounted P.A.T." + desc = "Pre-emptive Access Tunneling for first responders to access areas they normally cannot. Use responsibly." + id = "rig_component_pat" + //req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_MAGNET = 5, TECH_BIO = 4) + materials = list(MAT_PLASTEEL = 3000, MAT_GRAPHITE = 2000, MAT_SILVER = 1750, MAT_GOLD = 1250, MAT_OSMIUM = 2000) + build_path = /obj/item/rig_module/rescue_pharm + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_MEDICAL /datum/design_techweb/mechfab/modsuit/mounted_sizegun name = "hardsuit mounted size gun" @@ -43,7 +105,7 @@ //req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) materials = list(MAT_STEEL = 3000, MAT_GLASS = 2000, MAT_URANIUM = 2000) build_path = /obj/item/rig_module/mounted/sizegun - //Not giving this a department flag intentionally. + //Not giving this a department flag intentionally.tIT /datum/design_techweb/mechfab/modsuit/modules/jetpack name = "hardsuit maneuvering jets" @@ -87,7 +149,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY /datum/design_techweb/mechfab/modsuit/modules/healthanalyzer name = "hardsuit health analyzer" @@ -99,7 +161,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL ) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_MEDICAL /datum/design_techweb/mechfab/modsuit/modules/drill name = "hardsuit mounted drill" @@ -111,7 +173,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY ) - departmental_flags = DEPARTMENT_BITFLAG_CARGO + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design_techweb/mechfab/modsuit/modules/excdrill name = "hardsuit mounted excavation drill" @@ -123,7 +185,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE ) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design_techweb/mechfab/modsuit/modules/anomscanner name = "hardsuit mounted anomaly scanner" @@ -135,7 +197,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE ) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design_techweb/mechfab/modsuit/modules/orescanner name = "hardsuit mounted ore scanner" @@ -147,7 +209,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY ) - departmental_flags = DEPARTMENT_BITFLAG_CARGO + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design_techweb/mechfab/modsuit/modules/rcd name = "hardsuit mounted rcd" @@ -159,7 +221,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design_techweb/mechfab/modsuit/modules/paperdispenser name = "hardsuit mounted paper dispenser" @@ -171,7 +233,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SERVICE ) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE /datum/design_techweb/mechfab/modsuit/modules/pen name = "hardsuit mounted pen" @@ -183,7 +245,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SERVICE ) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE /datum/design_techweb/mechfab/modsuit/modules/grenade_metalfoam name = "hardsuit metalfoam-bomb launcher" @@ -195,7 +257,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design_techweb/mechfab/modsuit/modules/grenade_flash name = "hardsuit flashbang launcher" @@ -207,7 +269,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY /datum/design_techweb/mechfab/modsuit/modules/grenade_cleanfoam name = "hardsuit cleaning-foam-bomb launcher" @@ -219,7 +281,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SERVICE ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY /datum/design_techweb/mechfab/modsuit/modules/taser name = "hardsuit taser" @@ -231,7 +293,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY /datum/design_techweb/mechfab/modsuit/modules/egun name = "hardsuit egun" @@ -243,7 +305,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY /datum/design_techweb/mechfab/modsuit/modules/mop name = "hardsuit intense cleaning device" @@ -255,7 +317,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SERVICE ) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE /datum/design_techweb/mechfab/modsuit/modules/sprinter name = "hardsuit overclocker" @@ -275,7 +337,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design_techweb/mechfab/modsuit/modules/material name = "hardsuit material visor" @@ -287,7 +349,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY ) - departmental_flags = DEPARTMENT_BITFLAG_CARGO + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design_techweb/mechfab/modsuit/modules/nvg name = "hardsuit night-vision visor" @@ -299,7 +361,51 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY + +/datum/design_techweb/mechfab/modsuit/modules/thermal + name = "hardsuit thermal scanning visor" + desc = "A compact thermal visor for a hardsuit." + id = "rig_component_thermal" + materials = list(MAT_PLASTEEL = 2000, MAT_GRAPHITE = 1500, MAT_OSMIUM = 500, MAT_URANIUM = 1000) + build_path = /obj/item/rig_module/vision/thermal + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY + +/datum/design_techweb/mechfab/modsuit/modules/multi + name = "hardsuit complete visor suite" + desc = "An optical package for the bounty-hunter in you. Contains all available visors in a tight package." + id = "rig_component_multi_visor" + materials = list(MAT_PLASTEEL = 8000, MAT_GRAPHITE = 5500, MAT_OSMIUM = 4500, MAT_URANIUM = 6000, MAT_MORPHIUM = 2000) + build_path = /obj/item/rig_module/vision/multi + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) + +/datum/design_techweb/mechfab/modsuit/modules/mining + name = "hardsuit mining scanners" + desc = "A visor suite for miners featuring Material and Mesons." + id = "rig_component_mining" + //req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 6, TECH_MAGNET = 4, TECH_POWER = 5) + materials = list(MAT_PLASTEEL = 3500, MAT_GRAPHITE = 2000, MAT_OSMIUM = 1000) + build_path = /obj/item/rig_module/vision/mining + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO + +/datum/design_techweb/mechfab/modsuit/modules/graviton + name = "hardsuit graviton scanners" + desc = "Advanced Visor suite that combines the features of mesons and material into a single package." + id = "rig_component_graviton" + //req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 6, TECH_MAGNET = 4, TECH_POWER = 5) + materials = list(MAT_PLASTEEL = 3500, MAT_GRAPHITE = 2000, MAT_OSMIUM = 1000) + build_path = /obj/item/rig_module/vision/mining + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE + ) /datum/design_techweb/mechfab/modsuit/modules/sechud name = "hardsuit security visor" @@ -311,7 +417,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY /datum/design_techweb/mechfab/modsuit/modules/medhud name = "hardsuit medical visor" @@ -323,7 +429,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL ) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_MEDICAL /datum/design_techweb/mechfab/modsuit/modules/voice name = "hardsuit voice-changer" @@ -346,7 +452,6 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE ) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design_techweb/mechfab/modsuit/modules/datajack name = "hardsuit datajack" @@ -369,7 +474,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL ) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_MEDICAL /datum/design_techweb/mechfab/modsuit/modules/teleporter name = "hardsuit teleporter system" @@ -381,7 +486,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design_techweb/mechfab/modsuit/modules/radshield name = "hardsuit radiation absorption device" @@ -393,7 +498,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design_techweb/mechfab/modsuit/modules/radshield_adv name = "hardsuit advanced radiation absorption device" @@ -405,7 +510,7 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design_techweb/mechfab/modsuit/modules/atmosshield name = "hardsuit atmospheric protection enhancement suite" @@ -417,4 +522,38 @@ category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design_techweb/mechfab/modsuit/modules/atmosshield_adv + name = "hardsuit advanced atmospheric protection enhancement suite" + desc = "An advanced atmospheric protection suite, providing protection against both pressure and heat. At the cost of concerningly high power draw." + id = "rig_component_atmosshield_adv" + //req_tech = list(TECH_MATERIAL = 7, TECH_ENGINEERING = 5, TECH_MAGNET = 5, TECH_POWER = 6, TECH_BLUESPACE = 4) + materials = list(MAT_PLASTEEL = 8000, MAT_DURASTEEL = 4000, MAT_GRAPHITE = 9000, MAT_OSMIUM = 7500, MAT_PHORON = 6000, MAT_SILVER = 8000, MAT_GOLD = 6000) + build_path = /obj/item/rig_module/atmos_shield + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design_techweb/mechfab/modsuit/modules/faradayshield + name = "hardsuit electrical protection enhancement suite" + desc = "An advanced faraday shielding suite, providing protection against electrical discharges. At the cost of concerningly high power draw." + id = "rig_component_faradayshield" + materials = list(MAT_PLASTEEL = 8000, MAT_GRAPHITE = 8000, MAT_OSMIUM = 6000, MAT_PHORON = 6000, MAT_SILVER = 4000, MAT_GOLD = 4000, MAT_PLASTIC = 6000) + build_path = /obj/item/rig_module/faraday_shield + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design_techweb/mechfab/modsuit/modules/faradayshield/advanced + name = "hardsuit advanced electrical protection enhancement suite" + desc = "An optimized faraday shielding suite, providing protection against electrical discharges. At the cost of concerningly high power draw." + id = "rig_component_faradayshield_adv" + materials = list(MAT_PLASTEEL = 8000, MAT_GRAPHITE = 8000, MAT_OSMIUM = 8000, MAT_PHORON = 7000, MAT_SILVER = 5500, MAT_GOLD = 5500, MAT_PLASTIC = 6000) + build_path = /obj/item/rig_module/faraday_shield/advanced + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/research/tg/experisci/experiment/instances/misc.dm b/code/modules/research/tg/experisci/experiment/instances/misc.dm index 8394d959aeb..6cf5ebb4352 100644 --- a/code/modules/research/tg/experisci/experiment/instances/misc.dm +++ b/code/modules/research/tg/experisci/experiment/instances/misc.dm @@ -32,3 +32,56 @@ /mob/living/simple_mob/slime = 1, /obj/item/slime_extract = 1, ) + +// Basic Experiments to unlock the rig nodes. +/datum/experiment/scanning/points/basic_engi_rig + name = "Basic Engineering Suit Scans" + description = "We would like to access the structural wear and tear of existing void suits worn by engineers. Please scan some of the existing suits you may have lying around that an engineer might use." + required_points = 2 + required_atoms = list( + /obj/item/clothing/suit/space/void/engineering = 1, + /obj/item/clothing/suit/space/void/engineering/hazmat = 1, + /obj/item/clothing/suit/space/void/atmos = 1, + /obj/item/clothing/suit/space/void/engineering/construction = 1, + ) + +/datum/experiment/scanning/points/basic_sec_rig + name = "Basic Security Suit Scans" + description = "Some of our engineers had made a mistake of relying on the survivor's bias. And had armored the suits more in areas where officers have survived. We need additional data to correct this mistake." + required_points = 2 + required_atoms = list( + /obj/item/clothing/suit/space/void/security = 1, + /obj/item/clothing/suit/space/void/security/riot = 1, + /obj/item/clothing/suit/space/void/exploration =1, + ) + +/datum/experiment/scanning/points/basic_med_rig + name = "Basic Medical Suit Scans" + description = "The synthprene fibers sterile properties have become a topic of extreme interest. With this scan data we can further enhance our first responders with proper RIGs fitting for the job." + required_points = 2 + required_atoms = list( + /obj/item/clothing/suit/space/void/medical = 1, + /obj/item/clothing/suit/space/void/medical/emt = 1, + /obj/item/clothing/suit/space/void/medical/bio = 1, + ) + +/datum/experiment/scanning/points/basic_min_rig + name = "Basic Mining Suit Scans" + description = "We need scans of mining suits to check their durability in long usage of industrial environments. Go bug one of the miners for a quick scan. For rock and stone!" + required_points = 2 + required_atoms = list( + /obj/item/clothing/suit/space/void/mining = 1, + /obj/item/clothing/suit/space/void/mining/alt = 1, + ) + +/datum/experiment/scanning/points/basic_sci_rig + name = "Basic Research Suit Scans" + description = "We have recieve a notice that there are anomalous particles on the researcher's gear. Please scan and confirm for us. And while you're at it, give them a good wash for safety." + required_points = 4 + required_atoms = list( + /obj/item/clothing/suit/bio_suit/anomaly = 1, + /obj/item/clothing/suit/space/anomaly = 1, + /obj/item/clothing/suit/space/anomaly/heat = 1, + /obj/item/clothing/suit/bomb_suit = 1, + /obj/item/clothing/suit/bio_suit = 1, + ) diff --git a/code/modules/research/tg/techwebs/nodes/engi_nodes.dm b/code/modules/research/tg/techwebs/nodes/engi_nodes.dm index 529f34213a6..37a3f8cff45 100644 --- a/code/modules/research/tg/techwebs/nodes/engi_nodes.dm +++ b/code/modules/research/tg/techwebs/nodes/engi_nodes.dm @@ -328,3 +328,46 @@ ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) announce_channels = list(CHANNEL_ENGINEERING,CHANNEL_MEDICAL) + +/datum/techweb_node/thermal_vision + id = TECHWEB_NODE_THERMAL_VISION + display_name = "Thermal Visor Technology" + description = "Inspired by some form of big-game-hunter species, we have adapted the technology without the annoying colorization filter." + prereq_ids = list(TECHWEB_NODE_HUD) + design_ids = list( + "rig_component_thermal", + // "diagnostic_hud_night", + // "health_hud_night", + // "night_visision_goggles", + // "nvgmesons", + // "nv_scigoggles", + // "security_hud_night", + ) + +/datum/techweb_node/graviton_vision + id = TECHWEB_NODE_GRAVITON_VISION + display_name = "Graviton Visor Technology" + description = "Our Graviton Scanning technology compressed into visors suitable for use in hardsuits. Quite handy." + prereq_ids = list(TECHWEB_NODE_HUD) + design_ids = list( + "rig_component_graviton", + // "diagnostic_hud_night", + // "health_hud_night", + // "night_visision_goggles", + // "nvgmesons", + // "nv_scigoggles", + // "security_hud_night", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) + announce_channels = list(CHANNEL_SECURITY, CHANNEL_SCIENCE) + +/datum/techweb_node/advanced_visor + id = TECHWEB_NODE_ADVANCED_VISORS + display_name = "Advanced Visor Technology" + description = "With careful research over transparent electrochromic glass and display project we have compressed multiple visors into a single handy package." + prereq_ids = list(TECHWEB_NODE_GRAVITON_VISION, TECHWEB_NODE_THERMAL_VISION, TECHWEB_NODE_HUD) + design_ids = list( + "rig_component_multi_visor", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) + announce_channels = list(CHANNEL_SECURITY, CHANNEL_SCIENCE) diff --git a/code/modules/research/tg/techwebs/nodes/modsuit_nodes.dm b/code/modules/research/tg/techwebs/nodes/modsuit_nodes.dm index 86508b98af9..079f9b0985c 100644 --- a/code/modules/research/tg/techwebs/nodes/modsuit_nodes.dm +++ b/code/modules/research/tg/techwebs/nodes/modsuit_nodes.dm @@ -6,6 +6,7 @@ prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "rigmodule_belt_basic", + "zero_rig_module", "rig_device_pen", "rig_device_paperdispenser", // "suit_storage_unit", @@ -55,6 +56,7 @@ description = "Medical RIGsuits for quick rescue purposes." prereq_ids = list(TECHWEB_NODE_MOD_SUIT, TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( + "medical_rig_module", "rig_component_chemicals", "rig_component_rescuepharm", // "mod_plating_medical", @@ -63,7 +65,8 @@ // "mod_organizer", // "mod_patienttransport", ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) + discount_experiments = list(/datum/experiment/scanning/points/basic_med_rig = TECHWEB_TIER_2_POINTS) announce_channels = list(CHANNEL_SCIENCE, CHANNEL_MEDICAL) /datum/techweb_node/mod_engi @@ -72,18 +75,21 @@ description = "Engineering suits, for powered engineers." prereq_ids = list(TECHWEB_NODE_MOD_EQUIP) design_ids = list( + "eva_rig_module", "rig_device_rcd", "rig_component_meson", - "rig_component_material", "rig_component_radshield", + "rig_component_atmosshield", "rig_component_aicontainer", + "rig_component_faradayshield", // "mod_plating_engineering", // "mod_t_ray", // "mod_magboot", // "mod_constructor", // "mod_mister_atmos", ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) + discount_experiments = list(/datum/experiment/scanning/points/basic_engi_rig = TECHWEB_TIER_2_POINTS) announce_channels = list(CHANNEL_SCIENCE, CHANNEL_ENGINEERING) /datum/techweb_node/mod_security @@ -92,6 +98,7 @@ description = "Security suits for space crime handling." prereq_ids = list(TECHWEB_NODE_MOD_EQUIP) design_ids = list( + "hazard_rig_module", "rig_grenade_metalfoam", "rig_grenade_flashbang", "rig_grenade_cleanfoam", @@ -100,6 +107,7 @@ "rig_component_voice", "rig_gun_egun", "rig_component_sprinter", + "rig_component_pat", // "mod_mirage_grenade", // "mod_plating_security", // "mod_stealth", @@ -110,7 +118,8 @@ // "mod_projectile_dampener", // "mod_criminalcapture", ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) + discount_experiments = list(/datum/experiment/scanning/points/basic_sec_rig = TECHWEB_TIER_2_POINTS) announce_channels = list(CHANNEL_SCIENCE, CHANNEL_SECURITY) /datum/techweb_node/mod_engi_adv @@ -119,16 +128,18 @@ description = "Advanced Engineering suits, for advanced powered engineers." prereq_ids = list(TECHWEB_NODE_MOD_ENGI) design_ids = list( + "advanced_eva_rig_module", "rig_component_radshield_adv", + "rig_component_atmosshield_adv", + "rig_component_faradayshield_adv", "rig_thrusters", - "rig_component_atmosshield", // "mod_plating_atmospheric", // "mod_jetpack", // "mod_rad_protection", // "mod_emp_shield", // "mod_storage_expanded", ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) announce_channels = list(CHANNEL_SCIENCE, CHANNEL_ENGINEERING) /datum/techweb_node/mod_anomaly @@ -137,11 +148,26 @@ description = "Modules for RIGsuits that are designed to research anomalies." prereq_ids = list(TECHWEB_NODE_MOD_ENGI_ADV, TECHWEB_NODE_ANOMALY_RESEARCH) design_ids = list( + "ami_rig_module", "rig_component_teleport", - "rig_device_drill", "rig_device_excdrill", "rig_device_anomscanner", - "rig_device_orescanner", ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) + discount_experiments = list(/datum/experiment/scanning/points/basic_sci_rig = TECHWEB_TIER_2_POINTS) announce_channels = list(CHANNEL_SCIENCE) + +/datum/techweb_node/mod_supply + id = TECHWEB_NODE_MOD_SUPPLY + display_name = "Industrial RIG Suit" + description = "Modules for RIGsuits that are designed to mine for ores." + prereq_ids = list(TECHWEB_NODE_MOD_ENGI_ADV, TECHWEB_NODE_MINING) + design_ids = list( + "industrial_rig_module", + "rig_device_drill", + "rig_device_orescanner", + "rig_component_material", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) + discount_experiments = list(/datum/experiment/scanning/points/basic_min_rig = TECHWEB_TIER_2_POINTS) + announce_channels = list(CHANNEL_SCIENCE, CHANNEL_SUPPLY) diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index b6fb1f637cf..46a643548ec 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ