mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 22:19:30 +01:00
Security modsuit update (#67131)
This commit is contained in:
@@ -166,7 +166,7 @@
|
||||
mob_storage_capacity = 1
|
||||
contents_pressure_protection = 0.8
|
||||
contents_thermal_insulation = 0.5
|
||||
foldedbag_path = /obj/item/bodybag/environmental/
|
||||
foldedbag_path = /obj/item/bodybag/environmental
|
||||
var/list/weather_protection = list(TRAIT_ASHSTORM_IMMUNE, TRAIT_RADSTORM_IMMUNE, TRAIT_SNOWSTORM_IMMUNE, TRAIT_VOIDSTORM_IMMUNE) // Does not protect against lava or the The Floor Is Lava spell.
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/Initialize(mapload)
|
||||
@@ -181,7 +181,7 @@
|
||||
icon_state = "ntenvirobag"
|
||||
contents_pressure_protection = 1
|
||||
contents_thermal_insulation = 1
|
||||
foldedbag_path = /obj/item/bodybag/environmental/nanotrasen/
|
||||
foldedbag_path = /obj/item/bodybag/environmental/nanotrasen
|
||||
weather_protection = list(TRAIT_WEATHER_IMMUNE)
|
||||
|
||||
/// Securable enviro. bags
|
||||
@@ -191,7 +191,7 @@
|
||||
desc = "Intended for transport of prisoners through hazardous environments, this environmental protection bag comes with straps to keep an occupant secure."
|
||||
icon = 'icons/obj/bodybag.dmi'
|
||||
icon_state = "prisonerenvirobag"
|
||||
foldedbag_path = /obj/item/bodybag/environmental/prisoner/
|
||||
foldedbag_path = /obj/item/bodybag/environmental/prisoner
|
||||
breakout_time = 4 MINUTES // because it's probably about as hard to get out of this as it is to get out of a straightjacket.
|
||||
/// How long it takes to sinch the bag.
|
||||
var/sinch_time = 10 SECONDS
|
||||
@@ -301,7 +301,55 @@
|
||||
log_game("[key_name(user)] [sinched ? "sinched":"unsinched"] secure environmental bag [src] at [AREACOORD(src)]")
|
||||
update_appearance()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/syndicate
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized
|
||||
name = "pressurized prisoner transport bag"
|
||||
foldedbag_path = /obj/item/bodybag/environmental/prisoner/pressurized
|
||||
/// The contents of the gas to be distributed to an occupant once sinched down. Set in Initialize()
|
||||
var/datum/gas_mixture/air_contents = null
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/Initialize(mapload)
|
||||
. = ..()
|
||||
refresh_air()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/proc/refresh_air()
|
||||
air_contents = null
|
||||
air_contents = new(50) //liters
|
||||
air_contents.temperature = T20C
|
||||
|
||||
air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/nitrogen)
|
||||
air_contents.gases[/datum/gas/oxygen][MOLES] = (ONE_ATMOSPHERE*50)/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
air_contents.gases[/datum/gas/nitrogen][MOLES] = (ONE_ATMOSPHERE*50)/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/Destroy()
|
||||
if(air_contents)
|
||||
QDEL_NULL(air_contents)
|
||||
return ..()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/return_air()
|
||||
if(sinched)
|
||||
refresh_air()
|
||||
return air_contents
|
||||
return ..()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/remove_air(amount)
|
||||
if(sinched)
|
||||
refresh_air()
|
||||
return air_contents.remove(amount) // The internals for this bag are bottomless.
|
||||
return ..(amount)
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/return_analyzable_air()
|
||||
if(sinched)
|
||||
refresh_air()
|
||||
return air_contents
|
||||
return ..()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/togglelock(mob/living/user, silent)
|
||||
. = ..()
|
||||
if(sinched)
|
||||
for(var/mob/living/target in contents)
|
||||
to_chat(target, span_warning("You hear a faint hiss, and a white mist fills your vision..."))
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/syndicate
|
||||
name = "syndicate prisoner transport bag"
|
||||
desc = "An alteration of Nanotrasen's environmental protection bag which has been used in several high-profile kidnappings. Designed to keep a victim unconscious, alive, and secured during transport."
|
||||
icon = 'icons/obj/bodybag.dmi'
|
||||
@@ -312,14 +360,8 @@
|
||||
weather_protection = list(TRAIT_WEATHER_IMMUNE)
|
||||
breakout_time = 8 MINUTES
|
||||
sinch_time = 20 SECONDS
|
||||
// The contents of the gas to be distributed to an occupant once sinched down. Set in Initialize()
|
||||
var/datum/gas_mixture/air_contents = null
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/Initialize(mapload)
|
||||
. = ..()
|
||||
refresh_air()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/proc/refresh_air()
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/pressurized/syndicate/refresh_air()
|
||||
air_contents = null
|
||||
air_contents = new(50) //liters
|
||||
air_contents.temperature = T20C
|
||||
@@ -327,33 +369,3 @@
|
||||
air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/nitrous_oxide)
|
||||
air_contents.gases[/datum/gas/oxygen][MOLES] = (ONE_ATMOSPHERE*50)/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
air_contents.gases[/datum/gas/nitrous_oxide][MOLES] = (ONE_ATMOSPHERE*50)/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/Destroy()
|
||||
if(air_contents)
|
||||
QDEL_NULL(air_contents)
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/return_air()
|
||||
if(sinched)
|
||||
refresh_air()
|
||||
return air_contents
|
||||
return ..()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/remove_air(amount)
|
||||
if(sinched)
|
||||
refresh_air()
|
||||
return air_contents.remove(amount) // The internals for this bag are bottomless. Syndicate bluespace trickery.
|
||||
return ..(amount)
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/return_analyzable_air()
|
||||
if(sinched)
|
||||
refresh_air()
|
||||
return air_contents
|
||||
return ..()
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/prisoner/syndicate/togglelock(mob/living/user, silent)
|
||||
. = ..()
|
||||
if(sinched)
|
||||
for(var/mob/living/target in contents)
|
||||
to_chat(target, span_warning("You hear a faint hiss, and a white mist fills your vision..."))
|
||||
|
||||
Reference in New Issue
Block a user