From 9d7f7a7e5ea3629a0916e41974cd318ec878f43d Mon Sep 17 00:00:00 2001 From: Nerezza Date: Tue, 6 Mar 2018 13:49:14 -0600 Subject: [PATCH] Misc rig fixes/tweaks EVA suit no longer stores toolboxes because those use a volume inventory. CE's suit no longer holds pickaxes and ore satchels, but can now hold inflatables. Adjusted get_breath_from_internal() proc to disable rig internals if the helmet is retracted and no suitable mask is in place. Adjusted the internals button to ignore offline rigs. --- code/_onclick/hud/screen_objects.dm | 2 +- .../clothing/spacesuits/rig/suits/station.dm | 84 ++++++++++++++++--- code/modules/mob/living/carbon/human/life.dm | 5 +- html/changelogs/Nerezza - Hardsuit-fixes.yml | 39 +++++++++ 4 files changed, 117 insertions(+), 13 deletions(-) create mode 100644 html/changelogs/Nerezza - Hardsuit-fixes.yml diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 9bf89b27bd..5c7c07ec25 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -278,7 +278,7 @@ // Rigs are a fucking pain since they keep an air tank in nullspace. if(istype(C.back,/obj/item/weapon/rig)) var/obj/item/weapon/rig/rig = C.back - if(rig.air_supply) + if(rig.air_supply && !rig.offline) from = "in" nicename |= "hardsuit" tankcheck |= rig.air_supply diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm index 097ae98f9d..1935fd7672 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station.dm @@ -19,10 +19,11 @@ light_overlay = "helmet_light_dual" camera_networks = list(NETWORK_SECURITY) +//Internal Affairs suit /obj/item/weapon/rig/internalaffairs name = "augmented tie" suit_type = "augmented suit" - desc = "Prepare for paperwork." + desc = "The last suit you'll ever wear." icon_state = "internalaffairs_rig" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0.9 @@ -30,7 +31,13 @@ offline_slowdown = 0 offline_vision_restriction = 0 - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/briefcase,/obj/item/weapon/storage/secure/briefcase) + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/weapon/storage/briefcase, + /obj/item/weapon/storage/secure/briefcase + ) req_access = list() req_one_access = list() @@ -55,10 +62,11 @@ helm_type = null boot_type = null +//Mining suit /obj/item/weapon/rig/industrial name = "industrial suit control module" suit_type = "industrial hardsuit" - desc = "A heavy, powerful rig used by construction crews and mining corporations." + desc = "A heavy, powerful hardsuit used by construction crews and mining corporations." icon_state = "engineering_rig" armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 50) slowdown = 1 @@ -69,7 +77,15 @@ helm_type = /obj/item/clothing/head/helmet/space/rig/industrial - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/weapon/storage/bag/ore, + /obj/item/device/t_scanner, + /obj/item/weapon/pickaxe, + /obj/item/weapon/rcd + ) req_access = list() req_one_access = list() @@ -84,10 +100,11 @@ /obj/item/rig_module/vision/meson ) +//Engineering suit /obj/item/weapon/rig/eva name = "EVA suit control module" suit_type = "EVA hardsuit" - desc = "A light rig for repairs and maintenance to the outside of habitats and vessels." + desc = "A light hardsuit for repairs and maintenance to the outside of habitats and vessels." icon_state = "eva_rig" armor = list(melee = 30, bullet = 10, laser = 20,energy = 25, bomb = 20, bio = 100, rad = 100) slowdown = 0 @@ -98,7 +115,14 @@ helm_type = /obj/item/clothing/head/helmet/space/rig/eva glove_type = /obj/item/clothing/gloves/gauntlets/rig/eva - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/toolbox,/obj/item/weapon/storage/briefcase/inflatable,/obj/item/device/t_scanner,/obj/item/weapon/rcd) + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/weapon/storage/briefcase/inflatable, + /obj/item/device/t_scanner, + /obj/item/weapon/rcd + ) req_access = list() req_one_access = list() @@ -135,7 +159,14 @@ helm_type = /obj/item/clothing/head/helmet/space/rig/ce glove_type = /obj/item/clothing/gloves/gauntlets/rig/ce - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/weapon/storage/briefcase/inflatable, + /obj/item/device/t_scanner, + /obj/item/weapon/rcd + ) req_access = list() req_one_access = list() @@ -157,6 +188,7 @@ /obj/item/rig_module/vision/meson ) +//Research Director's suit. Just add red crowbar. /obj/item/weapon/rig/hazmat name = "AMI control module" @@ -170,7 +202,23 @@ helm_type = /obj/item/clothing/head/helmet/space/rig/hazmat - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/stack/flag,/obj/item/weapon/storage/excavation,/obj/item/weapon/pickaxe,/obj/item/device/healthanalyzer,/obj/item/device/measuring_tape,/obj/item/device/ano_scanner,/obj/item/device/depth_scanner,/obj/item/device/core_sampler,/obj/item/device/gps,/obj/item/device/beacon_locator,/obj/item/device/radio/beacon,/obj/item/weapon/pickaxe/hand,/obj/item/weapon/storage/bag/fossils) + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/stack/flag, + /obj/item/weapon/storage/excavation, + /obj/item/weapon/pickaxe, + /obj/item/device/healthanalyzer, + /obj/item/device/measuring_tape, + /obj/item/device/ano_scanner, + /obj/item/device/depth_scanner, + /obj/item/device/core_sampler, + /obj/item/device/gps, + /obj/item/device/beacon_locator, + /obj/item/device/radio/beacon, + /obj/item/weapon/pickaxe/hand, + /obj/item/weapon/storage/bag/fossils) req_access = list() req_one_access = list() @@ -185,6 +233,7 @@ /obj/item/rig_module/device/anomaly_scanner ) +//Paramedic suit /obj/item/weapon/rig/medical name = "rescue suit control module" @@ -198,7 +247,15 @@ helm_type = /obj/item/clothing/head/helmet/space/rig/medical - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical,/obj/item/roller ) + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/weapon/storage/firstaid, + /obj/item/device/healthanalyzer, + /obj/item/stack/medical, + /obj/item/roller + ) req_access = list() req_one_access = list() @@ -215,6 +272,7 @@ /obj/item/rig_module/vision/medhud ) +//Security suit /obj/item/weapon/rig/hazard name = "hazard hardsuit control module" suit_type = "hazard hardsuit" @@ -228,7 +286,13 @@ helm_type = /obj/item/clothing/head/helmet/space/rig/hazard - allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/melee/baton) + allowed = list( + /obj/item/weapon/gun, + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/weapon/melee/baton + ) req_access = list() req_one_access = list() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index e643ee24b1..44ee6350ab 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -318,14 +318,15 @@ /mob/living/carbon/human/get_breath_from_internal(volume_needed=BREATH_VOLUME) if(internal) - + //Because rigs store their tanks out of reach of contents.Find(), a check has to be made to make + //sure the rig is still worn, still online, and that its air supply still exists. var/obj/item/weapon/tank/rig_supply if(istype(back,/obj/item/weapon/rig)) var/obj/item/weapon/rig/rig = back if(!rig.offline && (rig.air_supply && internal == rig.air_supply)) rig_supply = rig.air_supply - if (!rig_supply && (!contents.Find(internal) || !((wear_mask && (wear_mask.item_flags & AIRTIGHT)) || (head && (head.item_flags & AIRTIGHT))))) + if ((!rig_supply && !contents.Find(internal)) || !((wear_mask && (wear_mask.item_flags & AIRTIGHT)) || (head && (head.item_flags & AIRTIGHT)))) internal = null if(internal) diff --git a/html/changelogs/Nerezza - Hardsuit-fixes.yml b/html/changelogs/Nerezza - Hardsuit-fixes.yml new file mode 100644 index 0000000000..52642a3061 --- /dev/null +++ b/html/changelogs/Nerezza - Hardsuit-fixes.yml @@ -0,0 +1,39 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Nerezza + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscdel: "EVA rigsuit/hardsuit no longer holds toolboxes in suit storage since those have been a volume inventory for some time now. RIP ghetto satchel." + - rsctweak: "CE's rigsuit/hardsuit no longer holds pickaxes and ore satchels, but can now hold inflateables." + - bugfix: "Retracting rigsuit/hardsuit helmets with no valid mask equipped now disables internals." + - bugfix: "Offline rigsuits/hardsuits are no longer considered valid air supplies by the internals button. Before, your internals would instantly shut off before you could get a breath out of the rigsuit. Now, the internals button will look for a different tank instead."