diff --git a/code/defines/obj/clothing/mask.dm b/code/defines/obj/clothing/mask.dm
index db4059f08c3..d9c1633611c 100644
--- a/code/defines/obj/clothing/mask.dm
+++ b/code/defines/obj/clothing/mask.dm
@@ -73,6 +73,7 @@
desc = "A face-covering mask that can be connected to an air supply."
icon_state = "gas_alt"
flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES
+ flags_inv = HIDEEARS|HIDEEYES
w_class = 3.0
see_face = 0.0
item_state = "gas_alt"
diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm
index b29c424fb87..55cdd09d4ca 100644
--- a/code/defines/obj/storage.dm
+++ b/code/defines/obj/storage.dm
@@ -3,7 +3,8 @@
desc = "You wear this on your back and put items into it."
icon_state = "backpack"
w_class = 4.0
- flags = 259.0
+ flags = FPRINT|TABLEPASS
+ slot_flags = SLOT_BACK //ERROOOOO
max_w_class = 3
max_combined_w_class = 21
diff --git a/code/game/objects/alien/resin.dm b/code/game/objects/alien/resin.dm
index e08ffaf5c42..5c0290664fd 100644
--- a/code/game/objects/alien/resin.dm
+++ b/code/game/objects/alien/resin.dm
@@ -50,7 +50,7 @@
/obj/effect/alien/resin/hitby(AM as mob|obj)
..()
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [src] was hit by [AM]."), 1)
+ O.show_message("\red [src] was hit by [AM].", 1)
var/tforce = 0
if(ismob(AM))
tforce = 10
@@ -64,9 +64,9 @@
/obj/effect/alien/resin/attack_hand()
if ((usr.mutations & HULK))
- usr << text("\blue You easily destroy the [name].")
+ usr << "\blue You easily destroy the [name]."
for(var/mob/O in oviewers(src))
- O.show_message(text("\red [] destroys the [name]!", usr), 1)
+ O.show_message("\red [usr] destroys the [name]!", 1)
health = 0
healthcheck()
return
@@ -77,15 +77,15 @@
/obj/effect/alien/resin/attack_alien()
if (islarva(usr))//Safety check for larva. /N
return
- usr << text("\green You claw at the [name].")
+ usr << "\green You claw at the [name]."
for(var/mob/O in oviewers(src))
- O.show_message(text("\red [] claws at the resin!", usr), 1)
+ O.show_message("\red [usr] claws at the resin!", 1)
playsound(loc, 'attackblob.ogg', 100, 1)
health -= rand(10, 20)
if(health <= 0)
- usr << text("\green You slice the [name] to pieces.")
+ usr << "\green You slice the [name] to pieces."
for(var/mob/O in oviewers(src))
- O.show_message(text("\red [] slices the [name] apart!", usr), 1)
+ O.show_message("\red [usr] slices the [name] apart!", 1)
healthcheck()
return
diff --git a/code/game/objects/closets/secure/personal.dm b/code/game/objects/closets/secure/personal.dm
index 23b54bf2d64..b9ec62f58e9 100644
--- a/code/game/objects/closets/secure/personal.dm
+++ b/code/game/objects/closets/secure/personal.dm
@@ -60,7 +60,7 @@
playsound(src.loc, 'blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
for(var/mob/O in viewers(user, 3))
- O.show_message(text("\blue The locker has been sliced open by [] with an energy blade!", user), 1, text("\red You hear metal being sliced and sparks flying."), 2)
+ O.show_message("\blue The locker has been sliced open by [user] with an energy blade!", 1, "\red You hear metal being sliced and sparks flying.", 2)
else
user << "\red Access Denied"
return
diff --git a/code/game/objects/closets/secure/secure_closets.dm b/code/game/objects/closets/secure/secure_closets.dm
index 1923e0cf847..a9feb95e1ce 100644
--- a/code/game/objects/closets/secure/secure_closets.dm
+++ b/code/game/objects/closets/secure/secure_closets.dm
@@ -50,15 +50,15 @@
playsound(src.loc, 'blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
for(var/mob/O in viewers(user, 3))
- O.show_message(text("\blue The locker has been sliced open by [] with an energy blade!", user), 1, text("\red You hear metal being sliced and sparks flying."), 2)
+ O.show_message("\blue The locker has been sliced open by [user] with an energy blade!", 1, "\red You hear metal being sliced and sparks flying.", 2)
else
for(var/mob/O in viewers(user, 3))
- O.show_message(text("\blue The locker has been broken by [] with an electromagnetic card!", user), 1, text("You hear a faint electrical spark."), 2)
+ O.show_message("\blue The locker has been broken by [user] with an electromagnetic card!", 1, "You hear a faint electrical spark.", 2)
else if(src.allowed(user))
src.locked = !src.locked
for(var/mob/O in viewers(user, 3))
if((O.client && !( O.blinded )))
- O << text("\blue The locker has been []locked by [].", (src.locked ? null : "un"), user)
+ O << "\blue The locker has been [src.locked ? null : "un"]locked by [user]."
if(src.locked)
src.icon_state = src.icon_locked
else
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index fa9340f0234..1acc05d70c0 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -1,6 +1,27 @@
obj/structure
icon = 'structures.dmi'
+obj/structure/blob_act()
+ if(prob(50))
+ del(src)
+
+obj/structure/ex_act(severity)
+ switch(severity)
+ if(1.0)
+ del(src)
+ return
+ if(2.0)
+ if(prob(50))
+ del(src)
+ return
+ if(3.0)
+ return
+
+obj/structure/meteorhit(obj/O as obj)
+ del(src)
+
+
+
/obj/structure/girder
icon_state = "girder"
anchored = 1
diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm
index 60406c94c5d..085abed30b3 100644
--- a/code/game/objects/tables_racks.dm
+++ b/code/game/objects/tables_racks.dm
@@ -39,10 +39,10 @@ TABLE AND RACK OBJECT INTERATIONS
/obj/structure/table/attack_paw(mob/user as mob)
if ((usr.mutations & HULK))
- usr << text("\blue You destroy the table.")
+ usr << "\blue You destroy the table."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes the table apart!", usr)
+ O << "\red [user] smashes the table apart!"
if(istype(src, /obj/structure/table/reinforced))
new /obj/item/weapon/table_parts/reinforced( src.loc )
else if(istype(src, /obj/structure/table/woodentable))
@@ -57,16 +57,16 @@ TABLE AND RACK OBJECT INTERATIONS
user.layer = TURF_LAYER
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("[] hides under the table!", user)
+ O << "[user] hides under the table!"
//Foreach goto(69)
return
/obj/structure/table/attack_alien(mob/user as mob) //Removed code for larva since it doesn't work. Previous code is now a larva ability. /N
- usr << text("\green You destroy the table.")
+ usr << "\green You destroy the table."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] slices the table apart!", user)
+ O << "\red [user] slices the table apart!"
if(istype(src, /obj/structure/table/reinforced))
new /obj/item/weapon/table_parts/reinforced( src.loc )
else if(istype(src, /obj/structure/table/woodentable))
@@ -80,10 +80,10 @@ TABLE AND RACK OBJECT INTERATIONS
/obj/structure/table/attack_animal(mob/living/simple_animal/user as mob) //Removed code for larva since it doesn't work. Previous code is now a larva ability. /N
if(user.wall_smash)
- usr << text("\red You destroy the table.")
+ usr << "\red You destroy the table."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes the table apart!", user)
+ O << "\red [user] smashes the table apart!"
if(istype(src, /obj/structure/table/reinforced))
new /obj/item/weapon/table_parts/reinforced( src.loc )
else if(istype(src, /obj/structure/table/woodentable))
@@ -99,10 +99,10 @@ TABLE AND RACK OBJECT INTERATIONS
/obj/structure/table/attack_hand(mob/user as mob)
if ((usr.mutations & HULK))
- usr << text("\blue You destroy the table.")
+ usr << "\blue You destroy the table."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes the table apart!", usr)
+ O << "\red [user] smashes the table apart!"
if(istype(src, /obj/structure/table/reinforced))
new /obj/item/weapon/table_parts/reinforced( src.loc )
else if(istype(src, /obj/structure/table/woodentable))
@@ -145,7 +145,7 @@ TABLE AND RACK OBJECT INTERATIONS
G.affecting.Weaken(5)
for(var/mob/O in viewers(world.view, src))
if (O.client)
- O << text("\red [] puts [] on the table.", G.assailant, G.affecting)
+ O << "\red [G.assailant] puts [G.affecting] on the table."
del(W)
return
@@ -169,7 +169,7 @@ TABLE AND RACK OBJECT INTERATIONS
playsound(src.loc, 'blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
for(var/mob/O in viewers(user, 4))
- O.show_message(text("\blue The table was sliced apart by []!", user), 1, text("\red You hear metal coming apart."), 2)
+ O.show_message("\blue The table was sliced apart by [user]!", 1, "\red You hear metal coming apart.", 2)
new /obj/item/weapon/table_parts( src.loc )
del(src)
return
@@ -191,7 +191,7 @@ TABLE AND RACK OBJECT INTERATIONS
G.affecting.Weaken(5)
for(var/mob/O in viewers(world.view, src))
if (O.client)
- O << text("\red [] puts [] on the wooden table.", G.assailant, G.affecting)
+ O << "\red [G.assailant] puts [G.affecting] on the wooden table."
del(W)
return
if (istype(W, /obj/item/weapon/wrench))
@@ -211,7 +211,7 @@ TABLE AND RACK OBJECT INTERATIONS
playsound(src.loc, 'blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
for(var/mob/O in viewers(user, 4))
- O.show_message(text("\blue The wooden table was sliced apart by []!", user), 1, text("\red You hear wood coming apart."), 2)
+ O.show_message("\blue The wooden table was sliced apart by [user]!", 1, "\red You hear wood coming apart.", 2)
new /obj/item/weapon/table_parts/wood( src.loc )
del(src)
return
@@ -233,7 +233,7 @@ TABLE AND RACK OBJECT INTERATIONS
G.affecting.Weaken(5)
for(var/mob/O in viewers(world.view, src))
if (O.client)
- O << text("\red [] puts [] on the reinforced table.", G.assailant, G.affecting)
+ O << "\red [G.assailant] puts [G.affecting] on the reinforced table."
del(W)
return
@@ -241,6 +241,7 @@ TABLE AND RACK OBJECT INTERATIONS
if(W:welding == 1)
if(src.status == 2)
W:welding = 2
+ W:eyecheck(user)
user << "\blue Now weakening the reinforced table"
playsound(src.loc, 'Welder.ogg', 50, 1)
if (do_after(user, 50))
@@ -281,7 +282,7 @@ TABLE AND RACK OBJECT INTERATIONS
playsound(src.loc, 'blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
for(var/mob/O in viewers(user, 4))
- O.show_message(text("\blue The reinforced table was sliced apart by []!", user), 1, text("\red You hear metal coming apart."), 2)
+ O.show_message("\blue The reinforced table was sliced apart by [user]!", 1, "\red You hear metal coming apart.", 2)
new /obj/item/weapon/table_parts/reinforced( src.loc )
del(src)
return
diff --git a/code/game/objects/tank.dm b/code/game/objects/tank.dm
index 64080063c1a..ce8beaa4731 100644
--- a/code/game/objects/tank.dm
+++ b/code/game/objects/tank.dm
@@ -35,7 +35,7 @@
set src in usr
..()
if(air_contents.oxygen < 1 && loc==usr)
- usr << text("\red The meter on the [src.name] indicates you are almost out of air!")
+ usr << "\red The meter on the [src.name] indicates you are almost out of air!"
usr << sound('alert.ogg')
@@ -44,6 +44,7 @@
desc = "Contains dangerous plasma. Do not inhale."
icon_state = "plasma"
flags = FPRINT | TABLEPASS | CONDUCT
+ slot_flags = null //they have no straps!
/obj/item/weapon/tank/blob_act()
if(prob(50))
@@ -282,7 +283,7 @@
else
descriptive = "furiously hot"
- usr << text("\blue \The \icon[][src] feels []", icon, descriptive)
+ usr << "\blue \The \icon[icon][src] feels [descriptive]"
return
diff --git a/code/game/objects/watercloset.dm b/code/game/objects/watercloset.dm
index 0d85f851c8d..4a8b7e33220 100644
--- a/code/game/objects/watercloset.dm
+++ b/code/game/objects/watercloset.dm
@@ -177,7 +177,7 @@
else
C.clean_blood() //other things that can't wear gloves should just wash the mob.
for(var/mob/V in viewers(src, null))
- V.show_message(text("\blue [M] washes their hands using \the [src]."))
+ V.show_message("\blue [M] washes their hands using \the [src].")
/obj/structure/sink/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(busy)
diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm
index fd1515fdb87..c5dd47c82f2 100644
--- a/code/game/objects/weapons.dm
+++ b/code/game/objects/weapons.dm
@@ -84,7 +84,7 @@
if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey))
for(var/mob/O in viewers(world.view, src.loc))
- O << text("[M] triggered the \icon[] [src]", src)
+ O << "[M] triggered the \icon[src] [src]"
triggered = 1
call(src,triggerproc)(M)
@@ -164,7 +164,7 @@
for(var/mob/O in viewers(user, null))
if(O == user)
continue
- O.show_message(text("\red [user] accidentally sets off the mousetrap, breaking their fingers."), 1)
+ O.show_message("\red [user] accidentally sets off the mousetrap, breaking their fingers.", 1)
return
user << "\blue You disarm the mousetrap."
armed = !armed
@@ -181,7 +181,7 @@
for(var/mob/O in viewers(user, null))
if(O == user)
continue
- O.show_message(text("\red [user] accidentally sets off the mousetrap, breaking their fingers."), 1)
+ O.show_message("\red [user] accidentally sets off the mousetrap, breaking their fingers.", 1)
return
..()
@@ -194,12 +194,12 @@
for(var/mob/O in viewers(H, null))
if(O == H)
continue
- O.show_message(text("\red [H] accidentally steps on the mousetrap."), 1)
+ O.show_message("\red [H] accidentally steps on the mousetrap.", 1)
..()
/obj/item/weapon/mousetrap/hitby(A as mob|obj)
if(!armed)
return ..()
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red The mousetrap is triggered by [A]."), 1)
+ O.show_message("\red The mousetrap is triggered by [A].", 1)
src.triggered(null)
diff --git a/code/game/objects/window.dm b/code/game/objects/window.dm
index 2abfc03ad71..af9ad794a46 100644
--- a/code/game/objects/window.dm
+++ b/code/game/objects/window.dm
@@ -68,7 +68,7 @@
..()
for(var/mob/O in viewers(src, null))
- O.show_message(text("\red [src] was hit by [AM]."), 1)
+ O.show_message("\red [src] was hit by [AM].", 1)
var/tforce = 0
if(ismob(AM))
tforce = 40
@@ -90,12 +90,14 @@
..()
return
+//These all need to be rewritten to use visiblemessage()
+
/obj/structure/window/attack_hand()
if ((usr.mutations & HULK))
- usr << text("\blue You smash through the window.")
+ usr << "\blue You smash through the window."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes through the window!", usr)
+ O << "\red [usr] smashes through the window!"
src.health = 0
new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/stack/rods( src.loc)
@@ -105,10 +107,10 @@
/obj/structure/window/attack_paw()
if ((usr.mutations & HULK))
- usr << text("\blue You smash through the window.")
+ usr << "\blue You smash through the window."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes through the window!", usr)
+ O << "\red [usr] smashes through the window!"
src.health = 0
new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/stack/rods( src.loc)
@@ -119,17 +121,17 @@
/obj/structure/window/attack_alien()
if (istype(usr, /mob/living/carbon/alien/larva))//Safety check for larva. /N
return
- usr << text("\green You smash against the window.")
+ usr << "\green You smash against the window."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes against the window.", usr)
+ O << "\red [usr] smashes against the window."
playsound(src.loc, 'Glasshit.ogg', 100, 1)
src.health -= 15
if(src.health <= 0)
- usr << text("\green You smash through the window.")
+ usr << "\green You smash through the window."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes through the window!", usr)
+ O << "\red [usr] smashes through the window!"
src.health = 0
new /obj/item/weapon/shard(src.loc)
if(reinf)
@@ -143,17 +145,17 @@
/obj/structure/window/attack_animal(mob/living/simple_animal/M as mob)
if (M.melee_damage_upper == 0)
return
- M << text("\green You smash against the window.")
+ M << "\green You smash against the window."
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes against the window.", M)
+ O << "\red [M] smashes against the window."
playsound(src.loc, 'Glasshit.ogg', 100, 1)
src.health -= M.melee_damage_upper
if(src.health <= 0)
- M << text("\green You smash through the window.")
+ M << "\green You smash through the window."
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes through the window!", M)
+ O << "\red [M] smashes through the window!"
src.health = 0
new /obj/item/weapon/shard(src.loc)
if(reinf)
@@ -167,17 +169,17 @@
if(!istype(usr, /mob/living/carbon/metroid/adult))
return
- usr<< text("\green You smash against the window.")
+ usr<< "\green You smash against the window."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes against the window.", usr)
+ O << "\red [usr] smashes against the window."
playsound(src.loc, 'Glasshit.ogg', 100, 1)
src.health -= rand(10,15)
if(src.health <= 0)
- usr << text("\green You smash through the window.")
+ usr << "\green You smash through the window."
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
- O << text("\red [] smashes through the window!", usr)
+ O << "\red [usr] smashes through the window!"
src.health = 0
new /obj/item/weapon/shard(src.loc)
if(reinf)
diff --git a/code/modules/clothing/spacesuits/engineer.dm b/code/modules/clothing/spacesuits/engineer.dm
new file mode 100644
index 00000000000..3e69f3aac1a
--- /dev/null
+++ b/code/modules/clothing/spacesuits/engineer.dm
@@ -0,0 +1,36 @@
+/obj/item/clothing/head/helmet/space/engineer
+ name = "environment suit helmet"
+ desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
+ flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES
+ see_face = 1
+ flags_inv = HIDEEARS
+ icon_state = "engspace_helmet"
+ item_state = "engspace_helmet"
+ protective_temperature = 5000
+ armor = list(melee = 20, bullet = 5, laser = 10,energy = 5, bomb = 15, bio = 100, rad = 75)
+
+/obj/item/clothing/head/helmet/space/engineer/ce
+ name = "chief engineer's environment suit helmet"
+ desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
+ icon_state = "cespace_helmet"
+ item_state = "cespace_helmet"
+
+/obj/item/clothing/suit/space/engineer
+ name = "environment suit"
+ desc = "An environment suit that protects against hazardous, low pressure environments. Has radiation shielding."
+ icon_state = "engspace_suit"
+ item_state = "engspace_suit"
+ protective_temperature = 5000 //For not dieing near a fire, but still not being great in a full inferno
+ slowdown = 2
+ armor = list(melee = 20, bullet = 5, laser = 10,energy = 5, bomb = 15, bio = 100, rad = 75)
+ allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/crowbar, \
+ /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/wirecutters, /obj/item/weapon/wrench, /obj/item/device/multitool, \
+ /obj/item/device/radio, /obj/item/device/analyzer)
+ //yes, you can fit everything and your dog in it.
+ //i figure this might mitigate some of the inevitable bitching about it being a downgrade from the rig.
+
+/obj/item/clothing/suit/space/engineer/ce
+ name = "chief engineer's environment suit"
+ desc = "An environment suit that protects against hazardous, low pressure environments. Has radiation shielding and Chief Engineer colours."
+ icon_state = "cespace_suit"
+ item_state = "cespace_suit"
\ No newline at end of file
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 0b5f86bbb21..d01b871670c 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -58,7 +58,8 @@
set category = "Object"
set src in usr
- if ((usr.mutations & CLUMSY) && prob(50))usr << "\red You cut yourself on the paper."
+ if ((usr.mutations & CLUMSY) && prob(50))
+ usr << "\red You cut yourself on the paper."
return
var/n_name = copytext(sanitize(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text),1,MAX_NAME_LEN)
if ((loc == usr && usr.stat == 0))
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 579354c184e..42249409e2c 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 e5df6819612..c29f93a3dce 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 ba323f96f1b..a2205e4c3e5 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 10b489f77ab..7cfb82c6318 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/atmospherics/mixer.dmi b/icons/obj/atmospherics/mixer.dmi
index f592d73e8be..79b62c87df2 100644
Binary files a/icons/obj/atmospherics/mixer.dmi and b/icons/obj/atmospherics/mixer.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index d4256b76b2c..0a9a645a9de 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 2a65b2fccea..60ed625d3c4 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/maps/tgstation.2.0.9.dmm b/maps/tgstation.2.0.9.dmm
index 9d16f22a34a..961b568362e 100644
--- a/maps/tgstation.2.0.9.dmm
+++ b/maps/tgstation.2.0.9.dmm
@@ -5392,7 +5392,7 @@
"bZJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/chiefs_office)
"bZK" = (/obj/machinery/computer/atmos_alert,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/chiefs_office)
"bZL" = (/turf/simulated/floor,/area/engine/chiefs_office)
-"bZM" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light{dir = 1},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/head/helmet/space/rig/elite,/turf/simulated/floor,/area/engine/chiefs_office)
+"bZM" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light{dir = 1},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/engineer/ce,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/engineer/ce,/turf/simulated/floor,/area/engine/chiefs_office)
"bZN" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/filingcabinet,/turf/simulated/floor,/area/engine/chiefs_office)
"bZO" = (/obj/machinery/power/apc{dir = 1; name = "CE office APC"; pixel_x = 0; pixel_y = 25},/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/chiefs_office)
"bZP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office)
@@ -5480,7 +5480,7 @@
"cbt" = (/obj/machinery/power/apc{dir = 8; name = "Aft Maintenance APC"; pixel_x = -25; pixel_y = 0},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/aft)
"cbu" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/camera{c_tag = "Engineering SMES Room"; dir = 4; network = "SS13"},/turf/simulated/floor,/area/engine/engineering)
"cbv" = (/obj/structure/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/module/power_control,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/engine/engineering)
-"cbw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/engineering)
+"cbw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/engineer,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/engineer,/turf/simulated/floor,/area/engine/engineering)
"cbx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/table,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/clothing/gloves/yellow,/turf/simulated/floor,/area/engine/engineering)
"cby" = (/obj/machinery/dispenser,/turf/simulated/floor,/area/engine/engineering)
"cbz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/engine/engineering)
diff --git a/tgstation.dme b/tgstation.dme
index d6d9dc1dc5e..b1a59d520a7 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -792,6 +792,7 @@
#include "code\modules\clothing\glasses\glasses.dm"
#include "code\modules\clothing\glasses\hud.dm"
#include "code\modules\clothing\spacesuits\captain.dm"
+#include "code\modules\clothing\spacesuits\engineer.dm"
#include "code\modules\clothing\spacesuits\miscellaneous.dm"
#include "code\modules\clothing\spacesuits\ninja.dm"
#include "code\modules\clothing\spacesuits\rig.dm"