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