diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index f1fb29ed645..57265dd7ec2 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -43,6 +43,7 @@ //Component/device holders. var/obj/item/weapon/tank/air_supply // Air tank, if any. var/obj/item/clothing/shoes/magboots/boots = null // Deployable boots, if any. + var/obj/item/clothing/shoes/under_boots = null //Boots that are between the feet and the rib boots, if any. var/obj/item/clothing/suit/space/new_rig/chest // Deployable chestpiece, if any. var/obj/item/clothing/head/helmet/space/new_rig/helmet = null // Deployable helmet, if any. var/obj/item/clothing/gloves/rig/gloves = null // Deployable gauntlets, if any. @@ -71,6 +72,7 @@ var/sealing // Keeps track of seal status independantly of NODROP. var/offline = 1 // Should we be applying suit maluses? var/offline_slowdown = 3 // If the suit is deployed and unpowered, it sets slowdown to this. + var/active_slowdown = 3 // How much the deployed suit slows down if powered. 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 STOPSPRESSUREDMAGE flags on components. Otherwise it should leave them untouched. @@ -462,7 +464,7 @@ offline = 0 if(istype(wearer) && !wearer.wearing_rig) wearer.wearing_rig = src - chest.slowdown = initial(slowdown) + chest.slowdown = active_slowdown if(offline) if(offline == 1) @@ -721,6 +723,12 @@ if(isliving(uneq_piece.loc)) var/mob/living/L = uneq_piece.loc L.unEquip(uneq_piece, 1) + if(uneq_piece == boots) + if(under_boots) + if(L.equip_to_slot_if_possible(under_boots, slot_shoes)) + under_boots = null + else + to_chat(user, "Somehow, your [under_boots] got stuck to the [boots], and were retracted with them. ((This shouldn't happen, bug report this.))") uneq_piece.forceMove(src) return 0 @@ -767,7 +775,12 @@ if(to_strip) to_strip.unEquip(use_obj, 1) - + if(use_obj == boots) + if(under_boots) + if(to_strip.equip_to_slot_if_possible(under_boots, slot_shoes)) + under_boots = null + else + to_chat(user, "Somehow, your [under_boots] got stuck to the [boots], and were retracted with them. ((This shouldn't happen, bug report this.))") use_obj.forceMove(src) if(wearer) to_chat(wearer, "Your [use_obj] [use_obj.gender == PLURAL ? "retract" : "retracts"] swiftly.") @@ -775,8 +788,13 @@ else if(deploy_mode != ONLY_RETRACT) if(check_slot) if(check_slot != use_obj) //If use_obj is already in check_slot, silently bail. Otherwise, tell the user why the part didn't deploy. - to_chat(wearer, "You are unable to deploy \the [piece] as \the [check_slot] [check_slot.gender == PLURAL ? "are" : "is"] in the way.") - return + if(use_obj == boots) + under_boots = check_slot + wearer.unEquip(under_boots) + under_boots.forceMove(src) + else + to_chat(wearer, "You are unable to deploy \the [piece] as \the [check_slot] [check_slot.gender == PLURAL ? "are" : "is"] in the way.") + return use_obj.forceMove(wearer) if(!wearer.equip_to_slot_if_possible(use_obj, equip_to, 0, 1)) use_obj.forceMove(src) @@ -798,9 +816,9 @@ if(gloves && wearer.gloves && wearer.gloves != gloves) to_chat(user, "\The [wearer.gloves] is preventing \the [src] from deploying!") return 0 - if(boots && wearer.shoes && wearer.shoes != boots) + /*if(boots && wearer.shoes && wearer.shoes != boots) to_chat(user, "\The [wearer.shoes] is preventing \the [src] from deploying!") - return 0 + return 0*/ if(chest && wearer.wear_suit && wearer.wear_suit != chest) to_chat(user, "\The [wearer.wear_suit] is preventing \the [src] from deploying!") return 0 diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index 27724fa0749..9d6bb86e8cd 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -5,7 +5,7 @@ icon_state = "breacher_rig_cheap" armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 45, bio = 100, rad = 50) emp_protection = -20 - slowdown = 6 + active_slowdown = 6 offline_slowdown = 10 vision_restriction = 1 offline_vision_restriction = 2 @@ -43,4 +43,4 @@ species_restricted = list("Unathi") sprite_sheets = list( "Unathi" = 'icons/mob/species/unathi/feet.dmi' - ) \ No newline at end of file + ) diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm index 98adb708ada..988d746d4ad 100644 --- a/code/modules/clothing/spacesuits/rig/suits/combat.dm +++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm @@ -6,7 +6,7 @@ icon_state = "security_rig" suit_type = "combat hardsuit" armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) - slowdown = 1 + active_slowdown = 1 offline_slowdown = 3 offline_vision_restriction = 1 @@ -25,4 +25,4 @@ // /obj/item/rig_module/power_sink, /obj/item/rig_module/electrowarfare_suite, /obj/item/rig_module/chem_dispenser/combat - ) \ No newline at end of file + ) diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index 2a38480dabc..8c8384b32fc 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -6,7 +6,7 @@ suit_type = "light suit" allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank,/obj/item/weapon/stock_parts/cell) emp_protection = 10 - slowdown = 0 + active_slowdown = 0 flags = STOPSPRESSUREDMAGE | THICKMATERIAL offline_slowdown = 0 offline_vision_restriction = 0 @@ -77,7 +77,7 @@ icon_state = "ninja_rig" armor = list(melee = 50, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 30) emp_protection = 40 //change this to 30 if too high. - slowdown = 0 + active_slowdown = 0 chest_type = /obj/item/clothing/suit/space/new_rig/light/ninja glove_type = /obj/item/clothing/gloves/rig/light/ninja diff --git a/code/modules/clothing/spacesuits/rig/suits/merc.dm b/code/modules/clothing/spacesuits/rig/suits/merc.dm index a7512231641..73e9638ac83 100644 --- a/code/modules/clothing/spacesuits/rig/suits/merc.dm +++ b/code/modules/clothing/spacesuits/rig/suits/merc.dm @@ -6,7 +6,7 @@ icon_state = "merc_rig" suit_type = "crimson hardsuit" armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) - slowdown = 1 + active_slowdown = 1 offline_slowdown = 3 offline_vision_restriction = 1 @@ -29,4 +29,4 @@ initial_modules = list( /obj/item/rig_module/ai_container, /obj/item/rig_module/electrowarfare_suite, //might as well - ) \ No newline at end of file + ) diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm index 966f54973bc..665eae30cf7 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station.dm @@ -17,7 +17,7 @@ icon_state = "internalaffairs_rig" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0.9 - slowdown = 0 + active_slowdown = 0 offline_slowdown = 0 offline_vision_restriction = 0 @@ -52,7 +52,7 @@ desc = "A heavy, powerful rig used by construction crews and mining corporations." icon_state = "engineering_rig" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) - slowdown = 3 + active_slowdown = 3 offline_slowdown = 10 offline_vision_restriction = 2 emp_protection = -20 @@ -80,7 +80,7 @@ suit_type = "EVA hardsuit" desc = "A light rig for repairs and maintenance to the outside of habitats and vessels." icon_state = "eva_rig" - slowdown = 0 + active_slowdown = 0 offline_slowdown = 1 offline_vision_restriction = 1 @@ -108,7 +108,7 @@ desc = "An advanced voidsuit that protects against hazardous, low pressure environments. Shines with a high polish." icon_state = "ce_rig" armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90) - slowdown = 0 + active_slowdown = 0 offline_slowdown = 0 offline_vision_restriction = 0 @@ -149,7 +149,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" - slowdown = 1 + active_slowdown = 1 offline_vision_restriction = 1 helm_type = /obj/item/clothing/head/helmet/space/new_rig/hazmat @@ -176,7 +176,7 @@ desc = "A durable suit designed for medical rescue in high risk areas." icon_state = "medical_rig" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50) - slowdown = 1 + active_slowdown = 1 offline_vision_restriction = 1 helm_type = /obj/item/clothing/head/helmet/space/new_rig/medical @@ -201,7 +201,7 @@ desc = "A Security hardsuit designed for prolonged EVA in dangerous environments." icon_state = "hazard_rig" armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50) - slowdown = 1 + active_slowdown = 1 offline_slowdown = 3 offline_vision_restriction = 1 @@ -220,4 +220,4 @@ /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/grenade_launcher, /obj/item/rig_module/mounted/taser - ) \ No newline at end of file + )