diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index ff29b6bb7a..785e22d3c7 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -71,6 +71,7 @@ var/offline_slowdown = 3 // If the suit is deployed and unpowered, it sets slowdown to this. var/vision_restriction var/offline_vision_restriction = 1 // 0 - none, 1 - welder vision, 2 - blind. Maybe move this to helmets. + var/airtight = 1 //If set, will adjust AIRTIGHT and STOPPRESSUREDAMAGE flags on components. Otherwise it should leave them untouched. var/emp_protection = 0 @@ -178,8 +179,9 @@ for(var/obj/item/piece in list(helmet,boots,gloves,chest)) if(!piece) continue piece.icon_state = "[initial(icon_state)]" - piece.flags &= ~STOPPRESSUREDAMAGE - piece.flags &= ~AIRTIGHT + if(airtight) + piece.flags &= ~STOPPRESSUREDAMAGE + piece.flags &= ~AIRTIGHT update_icon(1) /obj/item/weapon/rig/proc/toggle_seals(var/mob/living/carbon/human/M,var/instant) @@ -247,11 +249,6 @@ M << "\The [piece] hisses [!seal_target ? "closed" : "open"]." M.update_inv_head() if(helmet) - if(!seal_target) - if(flags & AIRTIGHT) - helmet.flags |= AIRTIGHT - else - helmet.flags &= ~AIRTIGHT helmet.update_light(wearer) //sealed pieces become airtight, protecting against diseases @@ -273,13 +270,8 @@ if(!piece) continue piece.icon_state = "[initial(icon_state)][!seal_target ? "" : "_sealed"]" canremove = !seal_target - if(helmet) - if(canremove) - if(flags & AIRTIGHT) - helmet.flags |= AIRTIGHT - else - if(flags & AIRTIGHT) - helmet.flags &= ~AIRTIGHT + if(airtight) + update_component_sealed() update_icon(1) return 0 @@ -290,15 +282,18 @@ if(canremove) for(var/obj/item/rig_module/module in installed_modules) module.deactivate() + if(airtight) + update_component_sealed() + update_icon(1) + +/obj/item/weapon/rig/proc/update_component_sealed() for(var/obj/item/piece in list(helmet,boots,gloves,chest)) - if(!piece) continue if(canremove) piece.flags &= ~STOPPRESSUREDAMAGE piece.flags &= ~AIRTIGHT else piece.flags |= STOPPRESSUREDAMAGE piece.flags |= AIRTIGHT - update_icon(1) /obj/item/weapon/rig/process() diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm index 294644f3cb..e38fa950ff 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm @@ -24,6 +24,7 @@ /obj/item/clothing/shoes/magboots/rig name = "boots" + body_parts_covered = FEET cold_protection = FEET heat_protection = FEET species_restricted = null @@ -69,3 +70,38 @@ return 1 return 0 + +//Rig pieces for non-spacesuit based rigs + +/obj/item/clothing/head/lightrig + name = "mask" + body_parts_covered = HEAD|FACE|EYES + heat_protection = HEAD|FACE|EYES + cold_protection = HEAD|FACE|EYES + flags = THICKMATERIAL|AIRTIGHT + +/obj/item/clothing/suit/lightrig + name = "suit" + allowed = list(/obj/item/device/flashlight) + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + flags_inv = HIDEJUMPSUIT + flags = THICKMATERIAL + +/obj/item/clothing/shoes/lightrig + name = "boots" + body_parts_covered = FEET + cold_protection = FEET + heat_protection = FEET + species_restricted = null + gender = PLURAL + +/obj/item/clothing/gloves/lightrig + name = "gloves" + flags = THICKMATERIAL + body_parts_covered = HANDS + heat_protection = HANDS + cold_protection = HANDS + species_restricted = null + gender = PLURAL diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index 8aa50f4ab9..214e89ea88 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -33,22 +33,43 @@ /obj/item/weapon/rig/light/hacker name = "cybersuit control module" suit_type = "cyber" - desc = "An advanced powered armour suit with many cyberwarfare enhancements." + desc = "An advanced powered armour suit with many cyberwarfare enhancements. Comes with built-in insulated gloves for safely tampering with electronics." icon_state = "hacker_rig" req_access = list(access_syndicate) - helm_type = /obj/item/clothing/head/helmet/space/rig/mask + airtight = 0 + seal_delay = 5 //not being vaccum-proof has an upside I guess + + helm_type = /obj/item/clothing/head/lightrig/hacker + chest_type = /obj/item/clothing/suit/lightrig/hacker + glove_type = /obj/item/clothing/gloves/lightrig/hacker + boot_type = /obj/item/clothing/shoes/lightrig/hacker initial_modules = list( /obj/item/rig_module/ai_container, /obj/item/rig_module/power_sink, - /obj/item/rig_module/datajack + /obj/item/rig_module/datajack, + /obj/item/rig_module/electrowarfare_suite, + /obj/item/rig_module/voice, + /obj/item/rig_module/vision, ) -/obj/item/clothing/head/helmet/space/rig/mask - name = "mask" - flags = THICKMATERIAL +//The cybersuit is not space-proof. It does however, have good siemens_coefficient values +/obj/item/clothing/head/lightrig/hacker + name = "HUD" + siemens_coefficient = 0.4 + flags = 0 + +/obj/item/clothing/suit/lightrig/hacker + siemens_coefficient = 0.4 + +/obj/item/clothing/shoes/lightrig/hacker + siemens_coefficient = 0.4 + flags = NOSLIP //All the other rigs have magboots anyways, hopefully gives the hacker suit something more going for it. + +/obj/item/clothing/gloves/lightrig/hacker + siemens_coefficient = 0 /obj/item/weapon/rig/light/ninja name = "ominous suit control module"