diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index ff7b21dc7bd..14b1203413d 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -880,6 +880,24 @@
desc = "It's just an ordinary magical box."
icon_state = "box_wizard"
+/obj/item/storage/box/breaching
+ name = "breaching charges"
+ desc = "Contains three T4 thermal breaching charges."
+ icon_state = "flashbang"
+
+/obj/item/storage/box/breaching/populate_contents()
+ for(var/I in 1 to 3)
+ new /obj/item/grenade/plastic/c4/thermite(src)
+
+/obj/item/storage/box/mindshield
+ name = "boxed mindshield kit"
+ desc = "Contains everything needed to secure the minds of those around you."
+
+/obj/item/storage/box/mindshield/populate_contents()
+ for(var/I in 1 to 3)
+ new /obj/item/implantcase/mindshield(src)
+ new /obj/item/implanter/mindshield(src)
+
#undef NODESIGN
#undef NANOTRASEN
#undef SYNDI
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index fe21ec83b93..19c961df5e1 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -81,6 +81,9 @@
resistance_flags = NONE
anchored = FALSE
comfort = 1
+ var/icon_up = "up"
+ var/icon_down = "down"
+ var/folded = /obj/item/roller
/obj/structure/bed/roller/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/roller_holder))
@@ -92,30 +95,38 @@
user_unbuckle_mob(buckled_mobs[1], user)
else
user.visible_message("[user] collapses \the [name].", "You collapse \the [name].")
- new/obj/item/roller(get_turf(src))
+ new folded(get_turf(src))
qdel(src)
else
return ..()
/obj/structure/bed/roller/post_buckle_mob(mob/living/M)
density = TRUE
- icon_state = "up"
+ icon_state = icon_up
..()
/obj/structure/bed/roller/post_unbuckle_mob(mob/living/M)
density = FALSE
- icon_state = "down"
+ icon_state = icon_down
..()
+/obj/structure/bed/roller/holo
+ name = "holo stretcher"
+ icon_state = "holo_extended"
+ icon_up = "holo_extended"
+ icon_down = "holo_extended"
+ folded = /obj/item/roller/holo
+
/obj/item/roller
name = "roller bed"
desc = "A collapsed roller bed that can be carried around."
icon = 'icons/obj/rollerbed.dmi'
icon_state = "folded"
- w_class = WEIGHT_CLASS_NORMAL
+ w_class = WEIGHT_CLASS_BULKY
+ var/extended = /obj/structure/bed/roller
/obj/item/roller/attack_self(mob/user)
- var/obj/structure/bed/roller/R = new /obj/structure/bed/roller(user.loc)
+ var/obj/structure/bed/roller/R = new extended(user.loc)
R.add_fingerprint(user)
qdel(src)
@@ -137,6 +148,17 @@
forceMove(RH)
RH.held = src
+/obj/item/roller/holo
+ name = "holo stretcher"
+ desc = "A retracted hardlight stretcher that can be carried around."
+ icon_state = "holo_retracted"
+ w_class = WEIGHT_CLASS_SMALL
+ origin_tech = "magnets=3;biotech=4;powerstorage=3"
+ extended = /obj/structure/bed/roller/holo
+
+/obj/item/roller/holo/attackby(obj/item/W, mob/user, params)
+ return
+
/obj/structure/bed/roller/MouseDrop(over_object, src_location, over_location)
..()
if(over_object == usr && Adjacent(usr) && (in_range(src, usr) || usr.contents.Find(src)))
@@ -145,7 +167,7 @@
if(has_buckled_mobs())
return 0
usr.visible_message("[usr] collapses \the [name].", "You collapse \the [name].")
- new/obj/item/roller(get_turf(src))
+ new folded(get_turf(src))
qdel(src)
/obj/item/roller_holder
diff --git a/code/modules/pda/PDA.dm b/code/modules/pda/PDA.dm
index d6073d3d271..0ac05d5209c 100755
--- a/code/modules/pda/PDA.dm
+++ b/code/modules/pda/PDA.dm
@@ -34,7 +34,7 @@ GLOBAL_LIST_EMPTY(PDAs)
var/silent = FALSE //To beep or not to beep, that is the question
var/honkamt = 0 //How many honks left when infected with honk.exe
var/mimeamt = 0 //How many silence left when infected with mime.exe
- var/detonate = 1 // Can the PDA be blown up?
+ var/detonate = TRUE // Can the PDA be blown up?
var/ttone = "beep" //The ringtone!
var/list/ttone_sound = list("beep" = 'sound/machines/twobeep.ogg',
"boom" = 'sound/effects/explosionfar.ogg',
diff --git a/code/modules/pda/ai.dm b/code/modules/pda/ai.dm
index bfbecad1b5b..caebaa35e91 100644
--- a/code/modules/pda/ai.dm
+++ b/code/modules/pda/ai.dm
@@ -1,7 +1,7 @@
// Special AI/pAI PDAs that cannot explode.
/obj/item/pda/silicon
icon_state = "NONE"
- detonate = 0
+ detonate = FALSE
ttone = "data"
/obj/item/pda/silicon/proc/set_name_and_job(newname as text, newjob as text, newrank as null|text)
diff --git a/code/modules/pda/pdas.dm b/code/modules/pda/pdas.dm
index 3c961103b20..f39bea4200d 100644
--- a/code/modules/pda/pdas.dm
+++ b/code/modules/pda/pdas.dm
@@ -74,7 +74,7 @@
/obj/item/pda/captain
default_cartridge = /obj/item/cartridge/captain
icon_state = "pda-captain"
- detonate = 0
+ detonate = FALSE
//toff = 1
/obj/item/pda/heads/ntrep
@@ -90,6 +90,8 @@
icon_state = "pda-h"
/obj/item/pda/heads/ert
+ default_cartridge = /obj/item/cartridge/centcom
+ detonate = FALSE
/obj/item/pda/heads/ert/engineering
icon_state = "pda-engineer"
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index 5ef447a77ea..48c6690ed61 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -62,6 +62,16 @@
build_path = /obj/item/handheld_defibrillator
category = list("Medical")
+/datum/design/holostretcher
+ name = "Holo Strecher"
+ desc = "A hardlight projector for transporting patients."
+ id = "holo_stretcher"
+ req_tech = list("magnets" = 6, "powerstorage" = 4)
+ build_path = /obj/item/roller/holo
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 1000, MAT_SILVER = 500, MAT_GLASS = 500, MAT_DIAMOND = 200)
+ category = list("Medical")
+
/datum/design/defib
name = "Defibrillator"
desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients."
diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm
index 412c48fc4bd..57b8705aeec 100644
--- a/code/modules/response_team/ert_outfits.dm
+++ b/code/modules/response_team/ert_outfits.dm
@@ -63,7 +63,7 @@
backpack_contents = list(
/obj/item/clothing/head/helmet/ert/command = 1,
/obj/item/restraints/handcuffs = 1,
- /obj/item/storage/lockbox/mindshield = 1,
+ /obj/item/storage/box/mindshield = 1,
/obj/item/flashlight = 1
)
@@ -84,7 +84,7 @@
/obj/item/door_remote/omni = 1,
/obj/item/restraints/handcuffs = 1,
/obj/item/clothing/shoes/magboots = 1,
- /obj/item/storage/lockbox/mindshield = 1
+ /obj/item/storage/box/mindshield = 1
)
implants = list(/obj/item/implant/mindshield,
@@ -101,7 +101,7 @@
backpack_contents = list(
/obj/item/restraints/handcuffs = 1,
- /obj/item/storage/lockbox/mindshield = 1,
+ /obj/item/storage/box/mindshield = 1,
/obj/item/camera_bug/ert = 1,
/obj/item/door_remote/omni = 1,
/obj/item/ammo_box/magazine/enforcer/lethal = 2
@@ -138,7 +138,7 @@
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
mask = /obj/item/clothing/mask/gas/sechailer
- r_hand = /obj/item/gun/energy/laser
+ l_hand = /obj/item/gun/energy/laser
backpack_contents = list(
/obj/item/clothing/head/helmet/ert/security = 1,
@@ -156,7 +156,7 @@
glasses = /obj/item/clothing/glasses/sunglasses
mask = /obj/item/clothing/mask/gas/sechailer
- r_hand = /obj/item/gun/projectile/automatic/lasercarbine
+ l_hand = /obj/item/gun/projectile/automatic/lasercarbine
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/arm/flash,
@@ -186,13 +186,13 @@
l_pocket = /obj/item/restraints/legcuffs/bola/energy
r_pocket = /obj/item/extinguisher/mini
- r_hand = /obj/item/gun/energy/immolator/multi
+ l_hand = /obj/item/gun/energy/immolator/multi
backpack_contents = list(
/obj/item/storage/box/handcuffs = 1,
/obj/item/storage/box/flashbangs = 1,
/obj/item/whetstone = 1,
- /obj/item/storage/lockbox/t4 = 1
+ /obj/item/storage/box/breaching = 1
)
cybernetic_implants = list(
@@ -323,7 +323,7 @@
/obj/item/storage/firstaid/adv = 1,
/obj/item/storage/firstaid/doctor = 1,
/obj/item/storage/box/autoinjectors = 1,
- /obj/item/roller = 1,
+ /obj/item/roller/holo = 1,
/obj/item/storage/pill_bottle/ert = 1,
/obj/item/flashlight = 1,
/obj/item/handheld_defibrillator = 1
@@ -351,10 +351,16 @@
/obj/item/storage/firstaid/doctor = 1,
/obj/item/storage/firstaid/adv = 1,
/obj/item/storage/box/autoinjectors = 1,
- /obj/item/roller = 1,
+ /obj/item/roller/holo = 1,
/obj/item/clothing/shoes/magboots = 1,
/obj/item/bodyanalyzer = 1,
- /obj/item/handheld_defibrillator = 1
+ /obj/item/handheld_defibrillator = 1,
+ /obj/item/storage/pill_bottle/painkillers = 1
+ )
+
+ cybernetic_implants = list(
+ /obj/item/organ/internal/cyberimp/arm/surgery,
+ /obj/item/organ/internal/cyberimp/chest/nutriment
)
implants = list(/obj/item/implant/mindshield,
@@ -379,9 +385,9 @@
/obj/item/storage/firstaid/doctor = 1,
/obj/item/storage/firstaid/adv = 1,
/obj/item/extinguisher/mini = 1,
- /obj/item/roller = 1,
- /obj/item/handheld_defibrillator = 1
-
+ /obj/item/roller/holo = 1,
+ /obj/item/handheld_defibrillator = 1,
+ /obj/item/storage/pill_bottle/painkillers = 1
)
cybernetic_implants = list(
diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm
index 818a455d04d..47591a2325e 100644
--- a/code/modules/surgery/helpers.dm
+++ b/code/modules/surgery/helpers.dm
@@ -147,12 +147,13 @@
var/turf/T = get_turf(M)
if(locate(/obj/machinery/optable, T))
return 1
- else if(locate(/obj/structure/table, T))
+ if(locate(/obj/structure/bed/roller/holo, T))
+ return 0.9
+ if(locate(/obj/structure/table, T) || locate(/obj/structure/bed/roller, T))
return 0.8
- else if(locate(/obj/structure/bed, T))
+ if(locate(/obj/structure/bed, T))
return 0.7
- else
- return 0.5
+ return 0.5
//check if mob is lying down on something we can operate him on.
/proc/can_operate(mob/living/carbon/M)
diff --git a/icons/obj/rollerbed.dmi b/icons/obj/rollerbed.dmi
index 25e00bd0eff..1f700064fc7 100644
Binary files a/icons/obj/rollerbed.dmi and b/icons/obj/rollerbed.dmi differ