diff --git a/code/defines/obj.dm b/code/defines/obj.dm
index 048ff05a47f..60121f8692e 100644
--- a/code/defines/obj.dm
+++ b/code/defines/obj.dm
@@ -955,6 +955,7 @@
name = "Paper-cup Box"
icon_state = "box"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
New()
..()
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
@@ -1189,6 +1190,13 @@
user.u_equip(src)
del(src)
+/obj/item/stack/sheet/cardboard //BubbleWrap
+ name = "cardboard"
+ desc = "Large sheets of card, like boxes folded flat."
+ singular_name = "cardboard sheet"
+ icon_state = "sheet-card"
+ flags = FPRINT | TABLEPASS
+ origin_tech = "materials=1"
/obj/item/weapon/beach_ball
icon = 'beach.dmi'
diff --git a/code/defines/obj/clothing/head.dm b/code/defines/obj/clothing/head.dm
index 6d72e0ccb0a..36684e9fa71 100644
--- a/code/defines/obj/clothing/head.dm
+++ b/code/defines/obj/clothing/head.dm
@@ -186,4 +186,12 @@
name = "Nurse Hat"
desc = "For quick identification of trained medical personnel."
icon_state = "nursehat"
- flags = FPRINT|TABLEPASS
\ No newline at end of file
+ flags = FPRINT|TABLEPASS
+
+/obj/item/clothing/head/helmet/cardborg
+ name = "cardborg helmet"
+ desc = "A helmet made out of a box."
+ icon_state = "cardborg_h"
+ item_state = "cardborg_h"
+ flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH
+ see_face = 0.0
diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm
index 014e3a80667..99ddf7f07a3 100644
--- a/code/defines/obj/storage.dm
+++ b/code/defines/obj/storage.dm
@@ -61,12 +61,14 @@
desc = "A box of pill bottles."
icon_state = "box"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/blankbox
name = "blank shells"
desc = "A box containing...stuff..."
icon_state = "box"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/backpack/clown
name = "Giggles Von Honkerton"
@@ -115,6 +117,7 @@
desc = "For disks."
icon_state = "id"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/disk_kit/disks
@@ -148,6 +151,7 @@
desc = "A box full of syringes."
desc = "A biohazard alert warning is printed on the box"
icon_state = "syringe"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/firstaid/toxin
name = "Toxin First Aid"
@@ -166,18 +170,21 @@
desc = "WARNING: Do not use without reading these preautions!\nThese devices are extremely dangerous and can cause blindness or deafness if used incorrectly.\nThe chemicals contained in these devices have been tuned for maximal effectiveness and due to\nextreme safety precuaiotn shave been incased in a tamper-proof pack. DO NOT ATTEMPT TO OPEN\nFLASH WARNING: Do not use continually. Excercise extreme care when detonating in closed spaces.\n\tMake attemtps not to detonate withing range of 2 meters of the intended target. It is imperative\n\tthat the targets visit a medical professional after usage. Damage to eyes increases extremely per\n\tuse and according to range. Glasses with flash resistant filters DO NOT always work on high powered\n\tflash devices such as this. EXERCISE CAUTION REGARDLESS OF CIRCUMSTANCES\nSOUND WARNING: Do not use continually. Visit a medical professional if hearing is lost.\n\tThere is a slight chance per use of complete deafness. Exercise caution and restraint.\nSTUN WARNING: If the intended or unintended target is too close to detonation the resulting sound\n\tand flash have been known to cause extreme sensory overload resulting in temporary\n\tincapacitation.\nDO NOT USE CONTINUALLY\nOperating Directions:\n\t1. Pull detonnation pin. ONCE THE PIN IS PULLED THE GRENADE CAN NOT BE DISARMED!\n\t2. Throw grenade. NEVER HOLD A LIVE FLASHBANG\n\t3. The grenade will detonste 10 seconds hafter being primed. EXCERCISE CAUTION\n\t-Never prime another grenade until after the first is detonated\nNote: Usage of this pyrotechnic device without authorization is an extreme offense and can\nresult in severe punishment upwards of 10 years in prison per use.\n\nDefault 3 second wait till from prime to detonation. This can be switched with a screwdriver\nto 10 seconds.\n\nCopyright of Nanotrasen Industries- Military Armnaments Division\nThis device was created by Nanotrasen Labs a member of the Expert Advisor Corporation"
icon_state = "flashbang"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/emp_kit
name = "emp grenades"
desc = "A box with 5 emp grenades."
icon_state = "flashbang"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/gl_kit
name = "Prescription Glasses"
desc = "This box contains nerd glasses."
icon_state = "glasses"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
@@ -186,42 +193,49 @@
desc = "A box full of handcuffs."
icon_state = "handcuff"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/id_kit
name = "Spare IDs"
desc = "Has so many empty IDs."
icon_state = "id"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/lglo_kit
name = "Latex Gloves"
desc = "Contains white gloves."
icon_state = "latex"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/injectbox
name = "DNA-Injectors"
desc = "This box contains injectors it seems."
icon_state = "box"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/stma_kit
name = "Sterile Masks"
desc = "This box contains masks of sterility."
icon_state = "latex"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/trackimp_kit
name = "Tracking Implant Kit"
desc = "Box full of scum-bag tracking utensils."
icon_state = "implant"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/chemimp_kit
name = "Chemical Implant Kit"
desc = "Box of stuff used to implant chemicals."
icon_state = "implant"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/toolbox
name = "toolbox"
@@ -280,18 +294,21 @@
desc = "WARNING: Keep out of reach of children."
icon_state = "mousetraps"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/donkpocket_kit
name = "Donk-Pockets"
desc = "Remember to fully heat prior to serving. Product will cool if not eaten within seven minutes."
icon_state = "donk_kit"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/condimentbottles
name = "Condiment Bottles"
desc = "A box of empty condiment bottles."
icon_state = "box"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/drinkingglasses
name = "Drinking Glasses"
diff --git a/code/game/chemistry.dm b/code/game/chemistry.dm
index cc8b8291d04..4bd485a2c1f 100644
--- a/code/game/chemistry.dm
+++ b/code/game/chemistry.dm
@@ -182,6 +182,7 @@
name = "Beaker Box"
icon_state = "beaker"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/beakerbox/New()
..()
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 9484b389fd7..d269a610a6a 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -387,6 +387,7 @@
name = "Diskette Box"
icon_state = "disk_kit"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/diskbox/New()
..()
diff --git a/code/game/objects/bodybag.dm b/code/game/objects/bodybag.dm
index 2b12e4a4ec2..07ba22da853 100644
--- a/code/game/objects/bodybag.dm
+++ b/code/game/objects/bodybag.dm
@@ -15,6 +15,7 @@
desc = "This box contains body bags."
icon_state = "bodybags"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
New()
diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm
index 7f3ad0a3d9b..5318770eb2b 100644
--- a/code/game/objects/devices/PDA/PDA.dm
+++ b/code/game/objects/devices/PDA/PDA.dm
@@ -917,6 +917,7 @@
icon = 'pda.dmi'
icon_state = "pdabox"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/PDAbox/New()
..()
diff --git a/code/game/objects/stacks/metal.dm b/code/game/objects/stacks/metal.dm
index f37de2d988b..0f9b2182aab 100644
--- a/code/game/objects/stacks/metal.dm
+++ b/code/game/objects/stacks/metal.dm
@@ -133,4 +133,21 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
S.ReplaceWithPlating()
// var/turf/simulated/floor/W = S.ReplaceWithFloor()
// W.make_plating()
- return
\ No newline at end of file
+ return
+
+// CARDBOARD SHEET - BubbleWrap
+
+// /datum/stack_recipe/New(title, result_type, req_amount, res_amount, max_res_amount, time, one_per_turf, on_floor = 0)
+var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
+ new/datum/stack_recipe("box", /obj/item/weapon/storage/box), \
+ new/datum/stack_recipe("light tubes", /obj/item/weapon/storage/lightbox/tubes), \
+ new/datum/stack_recipe("light bulbs", /obj/item/weapon/storage/lightbox/bulbs), \
+ new/datum/stack_recipe("mouse traps", /obj/item/weapon/storage/mousetraps), \
+ new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \
+ new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/helmet/cardborg), \
+)
+
+/obj/item/stack/sheet/cardboard
+ New(var/loc, var/amount=null)
+ recipes = cardboard_recipes
+ return ..()
diff --git a/code/game/objects/stacks/stack.dm b/code/game/objects/stacks/stack.dm
index 5d955951431..195d9e1f281 100644
--- a/code/game/objects/stacks/stack.dm
+++ b/code/game/objects/stacks/stack.dm
@@ -206,6 +206,11 @@
if (istype(O,/obj/item))
usr.put_in_hand(O)
O.add_fingerprint(usr)
+ //BubbleWrap - so newly formed boxes are empty
+ if ( istype(O, /obj/item/weapon/storage) )
+ for (var/obj/item/I in O)
+ del(I)
+ //BubbleWrap END
if (src && usr.machine==src) //do not reopen closed window
spawn( 0 )
src.interact(usr)
diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm
index 07d2fc9146f..5ee6d07df77 100644
--- a/code/game/objects/storage/storage.dm
+++ b/code/game/objects/storage/storage.dm
@@ -9,6 +9,7 @@
var/obj/screen/storage/boxes = null
var/obj/screen/close/closer = null
w_class = 3.0
+ var/foldable = null // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
/obj/item/weapon/storage/proc/return_inv()
@@ -244,7 +245,29 @@
src.master.attackby(W, user)
return
+// BubbleWrap - A box can be folded up to make card
+/obj/item/weapon/storage/attack_self(mob/user as mob)
+ if ( contents.len )
+ return
+ if ( !ispath(src.foldable) )
+ return
+ var/found = 0
+ // Close any open UI windows first
+ for(var/mob/M in range(1))
+ if (M.s_active == src)
+ src.close(M)
+ if ( M == user )
+ found = 1
+ if ( !found ) // User is too far away
+ return
+ // Now make the cardboard
+ user << "\blue You fold [src] flat."
+ new src.foldable(get_turf(src))
+ del(src)
+//BubbleWrap END
+
/obj/item/weapon/storage/box/
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/box/survival/New()
..()
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 766b6fd65b9..fa785deee14 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -132,3 +132,12 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
+// BubbleWrap - Nothing to see here
+
+/obj/item/clothing/suit/cardborg
+ name = "cardborg suit"
+ desc = "An ordinary cardboard box with holes cut in the sides."
+ icon_state = "cardborg"
+ item_state = "cardborg"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 83e3afe87f4..1703d82c599 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -537,6 +537,7 @@
icon = 'storage.dmi'
icon_state = "light"
item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/lightbox/bulbs/New()
..()
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 4e285f1d135..be158f1e35f 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi
index 9e7bc18d21d..ca31bee732c 100644
Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ
diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi
index cea3a2710ea..3e1b4d85203 100644
Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index dcb84afda82..5144cc2f147 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index cf0472a5a2e..441e5ec2266 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 3ac3a34cb25..f833c0275b4 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 9fc27ef4595..879d2ff37ff 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ