diff --git a/baystation12.dme b/baystation12.dme
index 13f0147d9f7..69a61b42524 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -622,6 +622,7 @@
#include "code\game\objects\items\weapons\cigs_lighters.dm"
#include "code\game\objects\items\weapons\clown_items.dm"
#include "code\game\objects\items\weapons\dna_injector.dm"
+#include "code\game\objects\items\weapons\evidence.dm"
#include "code\game\objects\items\weapons\explosives.dm"
#include "code\game\objects\items\weapons\flamethrower.dm"
#include "code\game\objects\items\weapons\grenades.dm"
@@ -670,6 +671,7 @@
#include "code\game\objects\storage\belt.dm"
#include "code\game\objects\storage\bible.dm"
#include "code\game\objects\storage\briefcase.dm"
+#include "code\game\objects\storage\coat.dm"
#include "code\game\objects\storage\crates.dm"
#include "code\game\objects\storage\firstaid.dm"
#include "code\game\objects\storage\kit.dm"
diff --git a/code/WorkInProgress/detective_work.dm b/code/WorkInProgress/detective_work.dm
index e74ba63c4a3..673c81bbb78 100644
--- a/code/WorkInProgress/detective_work.dm
+++ b/code/WorkInProgress/detective_work.dm
@@ -132,9 +132,14 @@ obj/machinery/computer/forensic_scanning
var/mob/M = usr
var/obj/item/I = M.equipped()
if(I && istype(I))
- scanning = I
- M.drop_item()
- I.loc = src
+ if(istype(I, /obj/item/weapon/evidencebag))
+ scanning = I.contents[1]
+ scanning.loc = src
+ I.underlays -= scanning
+ else
+ scanning = I
+ M.drop_item()
+ I.loc = src
else
temp = "Invalid Object Rejected."
if("scan")
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 6ca6ff8e0c5..ea080c637bc 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -625,7 +625,8 @@ datum/mind
var/mob/living/carbon/human/H = current
del(H.belt)
del(H.back)
- del(H.ears)
+ del(H.l_ear)
+ del(H.r_ear)
del(H.gloves)
del(H.head)
del(H.shoes)
diff --git a/code/defines/obj/clothing/costume.dm b/code/defines/obj/clothing/costume.dm
index d495a549902..21bb6172afd 100644
--- a/code/defines/obj/clothing/costume.dm
+++ b/code/defines/obj/clothing/costume.dm
@@ -15,7 +15,7 @@
/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
- new /obj/item/clothing/suit/labcoat/mad(src.loc)
+ new /obj/item/clothing/suit/storage/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
del(src)
@@ -39,7 +39,7 @@
del(src)
/obj/effect/landmark/costume/butler/New()
- new /obj/item/clothing/suit/wcoat(src.loc)
+ new /obj/item/clothing/suit/storage/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
del(src)
@@ -58,7 +58,7 @@
del(src)
/obj/effect/landmark/costume/prig/New()
- new /obj/item/clothing/suit/wcoat(src.loc)
+ new /obj/item/clothing/suit/storage/wcoat(src.loc)
new /obj/item/clothing/glasses/monocle(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/bowler, /obj/item/clothing/head/that)
new CHOICE(src.loc)
@@ -82,7 +82,7 @@
new /obj/item/clothing/under/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
- new /obj/item/clothing/suit/apron(src.loc)
+ new /obj/item/clothing/suit/storage/apron(src.loc)
del(src)
/obj/effect/landmark/costume/pirate/New()
diff --git a/code/defines/obj/clothing/ears.dm b/code/defines/obj/clothing/ears.dm
index adfb51e4373..c89edc1cd22 100644
--- a/code/defines/obj/clothing/ears.dm
+++ b/code/defines/obj/clothing/ears.dm
@@ -4,10 +4,59 @@
name = "ears"
w_class = 1.0
throwforce = 2
+ var/twoeared = 0
+
+/obj/item/clothing/ears/attack_hand(mob/user as mob)
+ if (!user) return
+
+ if (src.loc != user || !istype(user,/mob/living/carbon/human))
+ ..()
+ return
+ var/mob/living/carbon/human/H = user
+ if(H.l_ear != src && H.r_ear != src)
+ ..()
+ return
+
+ if(!canremove)
+ return
+
+ var/obj/item/clothing/ears/O
+ if(twoeared)
+ O = (H.l_ear == src ? H.r_ear : H.l_ear)
+ user.u_equip(O)
+ if(!istype(src,/obj/item/clothing/ears/offear))
+ del(O)
+ O = src
+ else
+ O = src
+
+ user.u_equip(src)
+
+ if (O)
+ user.put_in_hand(O)
+ O.add_fingerprint(user)
+
+ if(istype(src,/obj/item/clothing/ears/offear))
+ del(src)
+
+/obj/item/clothing/ears/offear
+ name = "Other ear"
+ w_class = 5.0
+ icon = 'screen1_old.dmi'
+ icon_state = "block"
+ twoeared = 1
+
+ New(var/obj/O)
+ name = O.name
+ desc = O.desc
+ icon = O.icon
+ icon_state = O.icon_state
+ dir = O.dir
/obj/item/clothing/ears/earmuffs
name = "earmuffs"
desc = "Protects your hearing from loud noises, and quiet ones as well."
icon_state = "earmuffs"
protective_temperature = 500
- item_state = "earmuffs"
\ No newline at end of file
+ item_state = "earmuffs"
+ twoeared = 1
\ No newline at end of file
diff --git a/code/defines/obj/clothing/gloves.dm b/code/defines/obj/clothing/gloves.dm
index 294d56063ce..55315576777 100644
--- a/code/defines/obj/clothing/gloves.dm
+++ b/code/defines/obj/clothing/gloves.dm
@@ -140,11 +140,13 @@
color="orange"
/obj/item/clothing/gloves/red
- name = "Red Gloves"
- desc = "A pair of gloves, they don't look special in any way."
+ desc = "Heavily padded heavy-duty red gloves."
+ name = "red gloves"
icon_state = "red"
item_state = "redgloves"
- color = "red"
+ siemens_coefficient = 0.30
+
+ protective_temperature = 1100
/obj/item/clothing/gloves/rainbow
name = "Rainbow Gloves"
diff --git a/code/defines/obj/computer.dm b/code/defines/obj/computer.dm
index 082c8381839..6a1a62134d7 100644
--- a/code/defines/obj/computer.dm
+++ b/code/defines/obj/computer.dm
@@ -191,6 +191,8 @@
var/temp = null
var/printing = null
var/can_change_id = 0
+ var/list/Perp
+ var/tempname = null
/obj/machinery/computer/secure_data/detective_computer
diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm
index df7f67c5971..bd711a54b88 100644
--- a/code/defines/obj/supplypacks.dm
+++ b/code/defines/obj/supplypacks.dm
@@ -285,7 +285,7 @@
"/obj/item/weapon/minihoe",
"/obj/item/device/analyzer/plant_analyzer",
"/obj/item/clothing/gloves/botanic_leather",
- "/obj/item/clothing/suit/apron") // Updated with new things
+ "/obj/item/clothing/suit/storage/apron") // Updated with new things
cost = 10
containertype = /obj/structure/closet/crate/hydroponics
containername = "Hydroponics crate"
diff --git a/code/defines/obj/vending.dm b/code/defines/obj/vending.dm
index 58350621369..3c9838d0df5 100644
--- a/code/defines/obj/vending.dm
+++ b/code/defines/obj/vending.dm
@@ -158,8 +158,8 @@
icon_state = "sec"
icon_deny = "sec-deny"
req_access_txt = "1"
- product_paths = "/obj/item/weapon/handcuffs;/obj/item/weapon/flashbang;/obj/item/device/flash;/obj/item/weapon/reagent_containers/food/snacks/donut"
- product_amounts = "8;4;5;12"
+ product_paths = "/obj/item/weapon/handcuffs;/obj/item/weapon/flashbang;/obj/item/device/flash;/obj/item/weapon/reagent_containers/food/snacks/donut;/obj/item/weapon/evidencebag"
+ product_amounts = "8;4;5;12;6"
product_hidden = "/obj/item/clothing/glasses/sunglasses;/obj/item/kitchen/donut_box"
product_hideamt = "2;2"
charge_type = "security"
@@ -205,7 +205,7 @@
name = "Dinnerware"
desc = "A kitchen and restaurant equipment vendor"
icon_state = "dinnerware"
- product_paths = "/obj/item/weapon/tray;/obj/item/weapon/kitchen/utensil/fork;/obj/item/weapon/kitchenknife;/obj/item/weapon/reagent_containers/food/drinks/drinkingglass;/obj/item/clothing/suit/chef/classic"
+ product_paths = "/obj/item/weapon/tray;/obj/item/weapon/kitchen/utensil/fork;/obj/item/weapon/kitchenknife;/obj/item/weapon/reagent_containers/food/drinks/drinkingglass;/obj/item/clothing/suit/storage/chef/classic"
product_amounts = "8;6;3;8;2"
//product_amounts = "8;5;4" Old totals
product_hidden = "/obj/item/weapon/kitchen/utensil/spoon;/obj/item/weapon/kitchen/utensil/knife;/obj/item/weapon/kitchen/rollingpin;/obj/item/weapon/butch"
diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm
index cb52e0c0ac2..b27bc90b2fa 100644
--- a/code/defines/procs/helpers.dm
+++ b/code/defines/procs/helpers.dm
@@ -1185,7 +1185,8 @@ proc/listclearnulls(list/list)
if(hasvar(src,"back")) if(src:back) items += src:back
if(hasvar(src,"belt")) if(src:belt) items += src:belt
- if(hasvar(src,"ears")) if(src:ears) items += src:ears
+ if(hasvar(src,"l_ear")) if(src:l_ear) items += src:l_ear
+ if(hasvar(src,"r_ear")) if(src:r_ear) items += src:r_ear
if(hasvar(src,"glasses")) if(src:glasses) items += src:glasses
if(hasvar(src,"gloves")) if(src:gloves) items += src:gloves
if(hasvar(src,"head")) if(src:head) items += src:head
diff --git a/code/game/algorithm.dm b/code/game/algorithm.dm
index 9169d049652..92cbd2dde55 100644
--- a/code/game/algorithm.dm
+++ b/code/game/algorithm.dm
@@ -113,8 +113,11 @@ proc/countJob(rank)
src.wear_id = W
equipped = 1
if(slot_ears)
- if(!src.ears)
- src.ears = W
+ if(!src.l_ear)
+ src.l_ear = W
+ equipped = 1
+ else if(!src.r_ear)
+ src.r_ear = W
equipped = 1
if(slot_glasses)
if(!src.glasses)
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 7d113523346..3a361fd10c4 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -230,8 +230,11 @@
if (!R && traitor_mob.w_uniform && istype(traitor_mob.belt, /obj/item/device/radio))
R = traitor_mob.belt
loc = "on your belt"
- if (!R && istype(traitor_mob.ears, /obj/item/device/radio))
- R = traitor_mob.ears
+ if (!R && istype(traitor_mob.l_ear, /obj/item/device/radio))
+ R = traitor_mob.l_ear
+ loc = "on your head"
+ if (!R && istype(traitor_mob.r_ear, /obj/item/device/radio))
+ R = traitor_mob.r_ear
loc = "on your head"
if (!R)
traitor_mob << "Unfortunately, the Syndicate wasn't able to get you a radio."
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index dc92ea836b9..9da0da4711b 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -14,7 +14,7 @@
dat += "The number after the spell name is the cooldown time.
"
dat += "Magic Missile (10)
"
dat += "Fireball (10)
"
- dat += "Disintegrate (60)
"
+// dat += "Disintegrate (60)
"
dat += "Disable Technology (60)
"
dat += "Smoke (10)
"
dat += "Blind (30)
"
@@ -54,10 +54,10 @@
usr.verbs += /client/proc/fireball
usr.mind.special_verbs += /client/proc/fireball
src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you."
- if ("3")
- usr.verbs += /mob/proc/kill
- usr.mind.special_verbs += /mob/proc/kill
- src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
+// if ("3")
+// usr.verbs += /mob/proc/kill
+// usr.mind.special_verbs += /mob/proc/kill
+// src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
if ("4")
usr.verbs += /mob/proc/tech
usr.mind.special_verbs += /mob/proc/tech
@@ -114,9 +114,9 @@
if ("2")
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/projectile/fireball(usr)
src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you."
- if ("3")
- usr.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate(usr)
- src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
+// if ("3")
+// usr.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate(usr)
+// src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
if ("4")
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech(usr)
src.temp = "This spell disables all weapons, cameras and most other technology in range."
@@ -183,7 +183,7 @@
dat += "Each item costs 1 telecrystal. The number afterwards is the cooldown time.
"
dat += "Magic Missile (10)
"
dat += "Fireball (10)
"
- dat += "Disintegrate (60)
"
+// dat += "Disintegrate (60)
"
dat += "Disable Technology (60)
"
dat += "Smoke (10)
"
dat += "Blind (30)
"
@@ -224,12 +224,12 @@
usr.verbs += /client/proc/fireball
usr.mind.special_verbs += /client/proc/fireball
src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you."
- else if (href_list["spell_disintegrate"])
- if (src.uses >= 1)
- src.uses -= 1
- usr.verbs += /mob/proc/kill
- usr.mind.special_verbs += /mob/proc/kill
- src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
+// else if (href_list["spell_disintegrate"])
+// if (src.uses >= 1)
+// src.uses -= 1
+// usr.verbs += /mob/proc/kill
+// usr.mind.special_verbs += /mob/proc/kill
+// src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
else if (href_list["spell_emp"])
if (src.uses >= 1)
src.uses -= 1
diff --git a/code/game/gamemodes/wizard/spells.dm b/code/game/gamemodes/wizard/spells.dm
index bbc1e54c331..a10739c4103 100644
--- a/code/game/gamemodes/wizard/spells.dm
+++ b/code/game/gamemodes/wizard/spells.dm
@@ -229,6 +229,7 @@
//KILL
+/*
/mob/proc/kill(mob/living/M as mob in oview(1))
set category = "Spells"
set name = "Disintegrate"
@@ -249,6 +250,7 @@
s.start()
M.dust()
+*/
//DISABLE TECH
diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm
index 3c15ee72bbd..1d6b3dcea03 100644
--- a/code/game/gamemodes/wizard/wizard.dm
+++ b/code/game/gamemodes/wizard/wizard.dm
@@ -243,7 +243,7 @@
M.verbs -= /client/proc/jaunt
M.verbs -= /client/proc/magicmissile
M.verbs -= /client/proc/fireball
- M.verbs -= /mob/proc/kill
+// M.verbs -= /mob/proc/kill
M.verbs -= /mob/proc/tech
M.verbs -= /client/proc/smokecloud
M.verbs -= /client/proc/blind
@@ -257,7 +257,7 @@
M.mind.special_verbs -= /client/proc/jaunt
M.mind.special_verbs -= /client/proc/magicmissile
M.mind.special_verbs -= /client/proc/fireball
- M.mind.special_verbs -= /mob/proc/kill
+// M.mind.special_verbs -= /mob/proc/kill
M.mind.special_verbs -= /mob/proc/tech
M.mind.special_verbs -= /client/proc/smokecloud
M.mind.special_verbs -= /client/proc/blind
diff --git a/code/game/hud.dm b/code/game/hud.dm
index 4c2433642bf..10cad02d49a 100644
--- a/code/game/hud.dm
+++ b/code/game/hud.dm
@@ -14,8 +14,9 @@
#define ui_hstore1 "SOUTH+1,5"
#define ui_resist "EAST+1,SOUTH-1"
#define ui_gloves "SOUTH,5"
-#define ui_glasses "SOUTH,7"
-#define ui_ears "SOUTH,6"
+#define ui_glasses "SOUTH+1,6"
+#define ui_lear "SOUTH,7"
+#define ui_rear "SOUTH,6"
#define ui_head "SOUTH+1,2"
#define ui_shoes "SOUTH,4"
#define ui_belt "SOUTH-1,3"
@@ -56,7 +57,8 @@ obj/hud/New(var/type = 0)
if(show_otherinventory)
if(mymob:shoes) mymob:shoes:screen_loc = ui_shoes
if(mymob:gloves) mymob:gloves:screen_loc = ui_gloves
- if(mymob:ears) mymob:ears:screen_loc = ui_ears
+ if(mymob:l_ear) mymob:l_ear:screen_loc = ui_lear
+ if(mymob:r_ear) mymob:r_ear:screen_loc = ui_rear
if(mymob:s_store) mymob:s_store:screen_loc = ui_sstore1
if(mymob:glasses) mymob:glasses:screen_loc = ui_glasses
if(mymob:h_store) mymob:h_store:screen_loc = ui_hstore1
@@ -64,7 +66,8 @@ obj/hud/New(var/type = 0)
if(istype(mymob, /mob/living/carbon/human))
if(mymob:shoes) mymob:shoes:screen_loc = null
if(mymob:gloves) mymob:gloves:screen_loc = null
- if(mymob:ears) mymob:ears:screen_loc = null
+ if(mymob:l_ear) mymob:l_ear:screen_loc = null
+ if(mymob:r_ear) mymob:r_ear:screen_loc = null
if(mymob:s_store) mymob:s_store:screen_loc = null
if(mymob:glasses) mymob:glasses:screen_loc = null
if(mymob:h_store) mymob:h_store:screen_loc = null
diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm
index 42680a51d58..6452fc3f495 100644
--- a/code/game/jobs/job/civilian.dm
+++ b/code/game/jobs/job/civilian.dm
@@ -39,7 +39,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
H.equip_if_possible(new /obj/item/clothing/under/rank/chef(H), H.slot_w_uniform)
- H.equip_if_possible(new /obj/item/clothing/suit/chef(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/chef(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/clothing/head/chefhat(H), H.slot_head)
return 1
@@ -60,7 +60,7 @@
H.equip_if_possible(new /obj/item/clothing/under/rank/hydroponics(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/clothing/gloves/botanic_leather(H), H.slot_gloves)
- H.equip_if_possible(new /obj/item/clothing/suit/apron(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/apron(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/device/analyzer/plant_analyzer(H), H.slot_s_store)
return 1
diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm
index a0af39e115e..11686275443 100644
--- a/code/game/jobs/job/engineering.dm
+++ b/code/game/jobs/job/engineering.dm
@@ -80,7 +80,7 @@
H.equip_if_possible(new /obj/item/clothing/under/rank/roboticist(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_belt)
- H.equip_if_possible(new /obj/item/clothing/suit/labcoat(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves)
H.equip_if_possible(new /obj/item/weapon/storage/toolbox/mechanical(H), H.slot_l_hand)
return 1
\ No newline at end of file
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index 175502ebaba..24ae2576f99 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -14,7 +14,7 @@
H.equip_if_possible(new /obj/item/clothing/under/rank/chief_medical_officer(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/heads/cmo(H), H.slot_belt)
- H.equip_if_possible(new /obj/item/clothing/suit/labcoat/cmo(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/cmo(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(H), H.slot_l_hand)
H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store)
return 1
@@ -37,7 +37,7 @@
H.equip_if_possible(new /obj/item/clothing/under/rank/medical(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt)
- H.equip_if_possible(new /obj/item/clothing/suit/labcoat(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(H), H.slot_l_hand)
H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store)
return 1
@@ -60,7 +60,7 @@
H.equip_if_possible(new /obj/item/clothing/under/rank/geneticist(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt)
- H.equip_if_possible(new /obj/item/clothing/suit/labcoat/genetics(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/genetics(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store)
return 1
@@ -83,7 +83,7 @@
H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt)
H.equip_if_possible(new /obj/item/clothing/mask/surgical(H), H.slot_wear_mask)
H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes)
- H.equip_if_possible(new /obj/item/clothing/suit/labcoat/virologist(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/virologist(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store)
return 1
diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm
index 283501e2ca8..9549c1536b2 100644
--- a/code/game/jobs/job/science.dm
+++ b/code/game/jobs/job/science.dm
@@ -13,7 +13,7 @@
H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/clothing/under/rank/research_director(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/device/pda/heads/rd(H), H.slot_belt)
- H.equip_if_possible(new /obj/item/clothing/suit/labcoat(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/weapon/clipboard(H), H.slot_r_hand)
return 1
@@ -34,7 +34,7 @@
H.equip_if_possible(new /obj/item/clothing/under/rank/scientist(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/toxins(H), H.slot_belt)
- H.equip_if_possible(new /obj/item/clothing/suit/labcoat/science(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/science(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/mask/gas(H), H.slot_wear_mask)
H.equip_if_possible(new /obj/item/weapon/tank/oxygen(H), H.slot_l_hand)
return 1
@@ -56,5 +56,5 @@
H.equip_if_possible(new /obj/item/clothing/under/rank/chemist(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/toxins(H), H.slot_belt)
- H.equip_if_possible(new /obj/item/clothing/suit/labcoat/chemist(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/chemist(H), H.slot_wear_suit)
return 1
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index fc2feda15b7..f9463337cc6 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -12,10 +12,12 @@
H.equip_if_possible(new /obj/item/weapon/storage/backpack/security (H), H.slot_back)
H.equip_if_possible(new /obj/item/device/radio/headset/heads/hos(H), H.slot_ears)
H.equip_if_possible(new /obj/item/clothing/under/rank/head_of_security(H), H.slot_w_uniform)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/armourrigvest(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/shoes/jackboots(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/heads/hos(H), H.slot_belt)
- H.equip_if_possible(new /obj/item/clothing/suit/armor/hos(H), H.slot_wear_suit)
- H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves)
+// H.equip_if_possible(new /obj/item/clothing/suit/armor/hos(H), H.slot_wear_suit)
+//We're Bay12, not Goon. We don't need armor 24/7
+ H.equip_if_possible(new /obj/item/clothing/gloves/red(H), H.slot_gloves)
H.equip_if_possible(new /obj/item/clothing/head/helmet/HoS(H), H.slot_head)
H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses)
H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack)
@@ -45,7 +47,7 @@
H.equip_if_possible(new /obj/item/device/pda/security(H), H.slot_belt)
H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/head/helmet/warden(H), H.slot_head)
- H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves)
+ H.equip_if_possible(new /obj/item/clothing/gloves/red(H), H.slot_gloves)
H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses)
H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack)
H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store)
@@ -69,6 +71,7 @@
if(!H) return 0
H.equip_if_possible(new /obj/item/device/radio/headset/headset_sec(H), H.slot_ears)
H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back)
+ H.equip_if_possible(new /obj/item/weapon/storage/box/evidence(H.back), H.slot_in_backpack)
H.equip_if_possible(new /obj/item/clothing/under/det(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/detective(H), H.slot_belt)
@@ -80,7 +83,7 @@
H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves)
H.equip_if_possible(new /obj/item/weapon/storage/fcard_kit(H.back), H.slot_in_backpack)
H.equip_if_possible(new /obj/item/weapon/fcardholder(H), H.slot_in_backpack)
- H.equip_if_possible(new /obj/item/clothing/suit/det_suit(H), H.slot_wear_suit)
+ H.equip_if_possible(new /obj/item/clothing/suit/storage/det_suit(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/device/detective_scanner(H), H.slot_in_backpack)
H.equip_if_possible(new /obj/item/weapon/zippo(H), H.slot_l_store)
// H.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/candy_corn(H), H.slot_h_store)
@@ -111,6 +114,7 @@
H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/head/helmet(H), H.slot_head)
H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack)
+ H.equip_if_possible(new /obj/item/clothing/gloves/red(H), H.slot_gloves)
H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_s_store)
H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store)
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm
index 39f28cc5a72..b9cc67ce45a 100644
--- a/code/game/jobs/job_controller.dm
+++ b/code/game/jobs/job_controller.dm
@@ -225,9 +225,12 @@ var/global/datum/controller/occupations/job_master
H.Robotize()
return 1
- H.equip_if_possible(new /obj/item/device/radio/headset(H), H.slot_ears)
+ // make sure we don't already have one on 1 ear :p
+ if(!istype(H.r_ear,/obj/item/device/radio/headset) && !istype(H.l_ear,/obj/item/device/radio/headset))
+ H.equip_if_possible(new /obj/item/device/radio/headset(H), H.slot_ears)
var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack(H)
H.equip_if_possible(BPK, H.slot_back,1)
+ H.equip_if_possible(new /obj/item/weapon/storage/box(H.back), H.slot_in_backpack)
return 1
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index 0a88095bde0..303febedba2 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -18,6 +18,7 @@
dat += {"
Search Records
List Records
+
Search DNA
Virus Database
Medbot Tracking
@@ -404,6 +405,24 @@
P.name = "paper- 'Medical Record'"
src.printing = null
+ if (href_list["search_dna"])
+ var/t1 = input("Search String: (DNA)", "Medical records", null, null) as text
+ if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || (!in_range(src, usr)) && (!istype(usr, /mob/living/silicon))))
+ return
+ active1 = null
+ active2 = null
+ t1 = lowertext(t1)
+ for(var/datum/data/record/R in data_core.medical)
+ if (lowertext(R.fields["b_dna"]) == t1)
+ active2 = R
+ if (!( active2 ))
+ temp = text("Could not locate record [].", t1)
+ else
+ for(var/datum/data/record/E in data_core.general)
+ if ((E.fields["name"] == active2.fields["name"] || E.fields["id"] == active2.fields["id"]))
+ active1 = E
+ screen = 4
+
src.add_fingerprint(usr)
src.updateUsrDialog()
return
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index 3d7902590d0..3fe19ce1762 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -9,6 +9,7 @@
if(..())
return
var/dat
+
if (temp)
dat = text("[]
Clear Screen", temp, src)
else
@@ -16,20 +17,29 @@
if (authenticated)
switch(screen)
if(1.0)
- dat += text("Search Records
\nList Records
\nSearch Fingerprints
\nNew General Record
\n
\nRecord Maintenance
\n{Log Out}
\n", src, src, src, src, src, src)
- if(2.0)
- dat += {"Record List:
-
-
- | Name (ID#) |
- Rank |
- Fingerprints |
- Criminal Status |
-
"}
+ dat += {"
+"}
+ dat += text("Search Records
", src)
+ dat += text("New Record
", src)
+ dat += {"
+
+
+
+
+| Name |
+ID |
+Rank |
+Fingerprints |
+Criminal Status |
+
"}
for(var/datum/data/record/R in data_core.general)
var/crimstat = ""
for(var/datum/data/record/E in data_core.security)
- if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
+ if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"]))
crimstat = E.fields["criminal"]
var/background
switch(crimstat)
@@ -43,14 +53,20 @@
background = "'background-color:#3BB9FF;'"
if("None")
background = "'background-color:#00FF7F;'"
- dat += text("| [] (ID:[]) | ", background, src, R, R.fields["name"], R.fields["id"])
+ if("")
+ background = "'background-color:#FFFFFF;'"
+ crimstat = "No Record."
+ dat += text("
| [] | ", background, src, R, R.fields["name"])
+ dat += text("[] | ", R.fields["id"])
dat += text("[] | ", R.fields["rank"])
dat += text("[] | ", R.fields["fingerprint"])
dat += text("[] |
", crimstat)
- dat += text("
Back", src)
- if(3.0)
+ dat += "
"
+ dat += text("Record Maintenance
", src)
+ dat += text("{Log Out}",src)
+ if(2.0)
dat += text("Records Maintenance
\nDelete All Records
\n
\nBack", src, src)
- if(4.0)
+ if(3.0)
dat += "Security Record
"
if ((istype(active1, /datum/data/record) && data_core.general.Find(active1)))
dat += text("Name: [] ID: []
\nSex: []
\nAge: []
\nRank: []
\nFingerprint: []
\nPhysical Status: []
\nMental Status: []
", src, active1.fields["name"], src, active1.fields["id"], src, active1.fields["sex"], src, active1.fields["age"], src, active1.fields["rank"], src, active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"])
@@ -68,10 +84,57 @@
dat += "Security Record Lost!
"
dat += text("New Security Record
", src)
dat += text("\nDelete Record (ALL)
\nPrint Record
\nBack
", src, src, src)
+ if(4.0)
+ if(!Perp.len)
+ dat += text("ERROR. String could not be located.
Back", src)
+ else
+ dat += {"
+
+ "}
+ dat += text("| Search Results for '[]': | ", tempname)
+ dat += {"
+
+
+
+
+| Name |
+ID |
+Rank |
+Fingerprints |
+Criminal Status |
+
"}
+ for(var/i=1, i<=Perp.len, i += 2)
+ var/crimstat = ""
+ var/datum/data/record/R = Perp[i]
+ if(istype(Perp[i+1],/datum/data/record/))
+ var/datum/data/record/E = Perp[i+1]
+ crimstat = E.fields["criminal"]
+ var/background
+ switch(crimstat)
+ if("*Arrest*")
+ background = "'background-color:#DC143C;'"
+ if("Incarcerated")
+ background = "'background-color:#CD853F;'"
+ if("Parolled")
+ background = "'background-color:#CD853F;'"
+ if("Released")
+ background = "'background-color:#3BB9FF;'"
+ if("None")
+ background = "'background-color:#00FF7F;'"
+ if("")
+ background = "'background-color:#FFFFFF;'"
+ crimstat = "No Record."
+ dat += text("| [] | ", background, src, R, R.fields["name"])
+ dat += text("[] | ", R.fields["id"])
+ dat += text("[] | ", R.fields["rank"])
+ dat += text("[] | ", R.fields["fingerprint"])
+ dat += text("[] |
", crimstat)
+ dat += "
"
+ dat += text("
Return to index.", src)
else
else
dat += text("{Log In}", src)
- user << browse(text("Security Records[]", dat), "window=secure_rec")
+ user << browse(text("Security Records[]", dat), "window=secure_rec;size=550x400")
onclose(user, "secure_rec")
return
@@ -129,31 +192,28 @@ What a mess.*/
rank = scan.assignment
screen = 1
//RECORD FUNCTIONS
- if("List Records")
- screen = 2
- active1 = null
- active2 = null
-
if("Search Records")
- var/t1 = input("Search String: (Name or ID)", "Secure. records", null, null) as text
+ var/t1 = input("Search String: (Partial Name or ID or Fingerprints)", "Secure. records", null, null) as text
if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || !in_range(src, usr)))
return
- active1 = null
- active2 = null
+ Perp = new/list()
t1 = lowertext(t1)
for(var/datum/data/record/R in data_core.general)
- if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"])))
- active1 = R
- if (!( active1 ))
- temp = text("Could not locate record [].", t1)
- else
+ var/temptext = R.fields["name"] + " " + R.fields["id"] + " " + R.fields["fingerprint"]
+ if(findtext(temptext,t1))
+ var/prelist = new/list(2)
+ prelist[1] = R
+ Perp += prelist
+ for(var/i = 1, i<=Perp.len, i+=2)
for(var/datum/data/record/E in data_core.security)
- if ((E.fields["name"] == active1.fields["name"] || E.fields["id"] == active1.fields["id"]))
- active2 = E
- screen = 4
+ var/datum/data/record/R = Perp[i]
+ if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"]))
+ Perp[i+1] = E
+ tempname = t1
+ screen = 4
if("Record Maintenance")
- screen = 3
+ screen = 2
active1 = null
active2 = null
@@ -168,9 +228,9 @@ What a mess.*/
S = E
active1 = R
active2 = S
- screen = 4
+ screen = 3
- if ("Search Fingerprints")
+/* if ("Search Fingerprints")
var/t1 = input("Search String: (Fingerprint)", "Secure. records", null, null) as text
if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || (!in_range(src, usr)) && (!istype(usr, /mob/living/silicon))))
return
@@ -186,7 +246,7 @@ What a mess.*/
for(var/datum/data/record/E in data_core.security)
if ((E.fields["name"] == active1.fields["name"] || E.fields["id"] == active1.fields["id"]))
active2 = E
- screen = 4
+ screen = 3 */
if ("Print Record")
if (!( printing ))
@@ -263,7 +323,7 @@ What a mess.*/
R.fields["notes"] = "No notes."
data_core.security += R
active2 = R
- screen = 4
+ screen = 3
if ("New Record (General)")
var/datum/data/record/G = new /datum/data/record()
@@ -278,6 +338,7 @@ What a mess.*/
data_core.general += G
active1 = G
active2 = null
+
//FIELD FUNCTIONS
if ("Edit Field")
var/a1 = active1
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 14b0794bf6a..869a99142e8 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -122,7 +122,7 @@
for(var/mob/living/carbon/M in ohearers(6, chassis))
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
- if(istype(H.ears, /obj/item/clothing/ears/earmuffs))
+ if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs))
continue
M << "HONK"
if(!M.sleeping_willingly)
diff --git a/code/game/objects/closets/gmcloset.dm b/code/game/objects/closets/gmcloset.dm
index 3f3aadd70be..a4f286ba915 100644
--- a/code/game/objects/closets/gmcloset.dm
+++ b/code/game/objects/closets/gmcloset.dm
@@ -7,7 +7,7 @@
new /obj/item/clothing/under/sl_suit(src)
new /obj/item/clothing/under/rank/bartender(src)
new /obj/item/clothing/under/rank/bartender(src)
- new /obj/item/clothing/suit/wcoat(src)
- new /obj/item/clothing/suit/wcoat(src)
+ new /obj/item/clothing/suit/storage/wcoat(src)
+ new /obj/item/clothing/suit/storage/wcoat(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
diff --git a/code/game/objects/closets/secure/medical.dm b/code/game/objects/closets/secure/medical.dm
index 1bf9f9bd9a0..43fa5f4616b 100644
--- a/code/game/objects/closets/secure/medical.dm
+++ b/code/game/objects/closets/secure/medical.dm
@@ -63,7 +63,7 @@
new /obj/item/clothing/under/rank/nursesuit (src)
new /obj/item/clothing/head/nursehat (src)
new /obj/item/clothing/under/rank/medical(src)
- new /obj/item/clothing/suit/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/device/radio/headset/headset_med(src)
new /obj/item/weapon/storage/belt/medical(src)
@@ -82,7 +82,7 @@
new /obj/item/clothing/suit/bio_suit/cmo(src)
new /obj/item/clothing/head/bio_hood/general(src)
new /obj/item/clothing/under/rank/chief_medical_officer(src)
- new /obj/item/clothing/suit/labcoat/cmo(src)
+ new /obj/item/clothing/suit/storage/labcoat/cmo(src)
new /obj/item/clothing/gloves/latex(src)
new /obj/item/clothing/shoes/brown (src)
new /obj/item/device/radio/headset/heads/cmo(src)
diff --git a/code/game/objects/closets/secure/scientist.dm b/code/game/objects/closets/secure/scientist.dm
index 7e959155243..52461d4ccac 100644
--- a/code/game/objects/closets/secure/scientist.dm
+++ b/code/game/objects/closets/secure/scientist.dm
@@ -7,7 +7,7 @@
..()
sleep(2)
new /obj/item/clothing/under/rank/scientist(src)
- new /obj/item/clothing/suit/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/device/radio/headset/headset_sci(src)
new /obj/item/weapon/tank/air(src)
@@ -27,7 +27,7 @@
new /obj/item/clothing/suit/bio_suit/scientist(src)
new /obj/item/clothing/head/bio_hood/scientist(src)
new /obj/item/clothing/under/rank/research_director(src)
- new /obj/item/clothing/suit/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/gloves/latex(src)
new /obj/item/device/radio/headset/heads/rd(src)
diff --git a/code/game/objects/closets/secure/security.dm b/code/game/objects/closets/secure/security.dm
index fc5d24bdeff..0f88397d045 100644
--- a/code/game/objects/closets/secure/security.dm
+++ b/code/game/objects/closets/secure/security.dm
@@ -6,7 +6,7 @@
New()
..()
sleep(2)
- new /obj/item/clothing/suit/captunic(src)
+ new /obj/item/clothing/suit/storage/captunic(src)
new /obj/item/clothing/head/helmet/cap(src)
new /obj/item/clothing/under/rank/captain(src)
new /obj/item/clothing/suit/armor/vest(src)
@@ -76,7 +76,9 @@
sleep(2)
new /obj/item/clothing/under/rank/warden(src)
new /obj/item/clothing/suit/armor/vest(src)
+ new /obj/item/clothing/suit/storage/gearharness(src)
new /obj/item/clothing/head/helmet/warden(src)
+ new /obj/item/clothing/gloves/red(src)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/weapon/storage/flashbang_kit(src)
new /obj/item/weapon/storage/belt/security(src)
@@ -96,7 +98,9 @@
..()
sleep(2)
new /obj/item/clothing/suit/armor/vest(src)
+ new /obj/item/clothing/suit/storage/gearharness(src)
new /obj/item/clothing/head/helmet(src)
+ new /obj/item/clothing/gloves/red(src)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/weapon/flashbang(src)
@@ -125,7 +129,7 @@
sleep(2)
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/suit/det_suit/armor(src)
- new /obj/item/clothing/suit/det_suit(src)
+ new /obj/item/clothing/suit/storage/det_suit(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/head/det_hat(src)
new /obj/item/clothing/shoes/brown(src)
@@ -135,6 +139,7 @@
new /obj/item/weapon/clipboard(src)
new /obj/item/device/detective_scanner(src)
new /obj/item/weapon/pepperspray/small(src)
+ new /obj/item/weapon/storage/box/evidence(src)
return
diff --git a/code/game/objects/closets/wardrobe.dm b/code/game/objects/closets/wardrobe.dm
index eaded55bf1d..199733359a4 100644
--- a/code/game/objects/closets/wardrobe.dm
+++ b/code/game/objects/closets/wardrobe.dm
@@ -48,7 +48,7 @@
new /obj/item/clothing/under/rank/chaplain(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/suit/nun(src)
- new /obj/item/clothing/suit/chaplain_hoodie(src)
+ new /obj/item/clothing/suit/storage/chaplain_hoodie(src)
new /obj/item/clothing/head/chaplain_hood(src)
new /obj/item/clothing/suit/holidaypriest(src)
new /obj/item/clothing/suit/hastur (src)
@@ -116,9 +116,9 @@
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/under/rank/scientist(src)
- new /obj/item/clothing/suit/labcoat(src)
- new /obj/item/clothing/suit/labcoat(src)
- new /obj/item/clothing/suit/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
@@ -133,9 +133,9 @@
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/weapon/storage/stma_kit(src)
- new /obj/item/clothing/suit/labcoat(src)
- new /obj/item/clothing/suit/labcoat(src)
- new /obj/item/clothing/suit/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
+ new /obj/item/clothing/suit/storage/labcoat(src)
return
/obj/structure/closet/wardrobe/grey/New()
diff --git a/code/game/objects/effect_system.dm b/code/game/objects/effect_system.dm
index 3e46dde648a..677e26b9612 100644
--- a/code/game/objects/effect_system.dm
+++ b/code/game/objects/effect_system.dm
@@ -618,7 +618,7 @@ steam.start() -- spawns the effect
/obj/effect/effect/mustard_gas/Move()
..()
for(var/mob/living/carbon/human/R in get_turf(src))
- if (R.internal != null && usr.wear_mask && (R.wear_mask.flags & MASKINTERNALS) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor)))
+ if (R.internal != null && usr.wear_mask && (R.wear_mask.flags & MASKINTERNALS) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/storage/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor)))
else
R.burn_skin(0.75)
if (R.coughedtime != 1)
@@ -632,7 +632,7 @@ steam.start() -- spawns the effect
/obj/effect/effect/mustard_gas/HasEntered(mob/living/carbon/human/R as mob )
..()
if (istype(R, /mob/living/carbon/human))
- if (R.internal != null && usr.wear_mask && (R.wear_mask.flags & MASKINTERNALS) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor)))
+ if (R.internal != null && usr.wear_mask && (R.wear_mask.flags & MASKINTERNALS) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/storage/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor)))
return
R.burn_skin(0.75)
if (R.coughedtime != 1)
diff --git a/code/game/objects/items/clothing.dm b/code/game/objects/items/clothing.dm
index ca6f4b16159..fa6b407f8e8 100644
--- a/code/game/objects/items/clothing.dm
+++ b/code/game/objects/items/clothing.dm
@@ -302,7 +302,7 @@ THERMAL GLASSES
else
usr << "Sorry! The suit you're wearing doesn't have buttons!"
-/obj/item/clothing/suit/labcoat/verb/toggle()
+/obj/item/clothing/suit/storage/labcoat/verb/toggle()
set name = "Toggle Labcoat Buttons"
set category = "Object"
if(src.icon_state == "labcoat_open")
diff --git a/code/game/objects/items/weapons/evidence.dm b/code/game/objects/items/weapons/evidence.dm
new file mode 100644
index 00000000000..cdd4a661ece
--- /dev/null
+++ b/code/game/objects/items/weapons/evidence.dm
@@ -0,0 +1,54 @@
+//CONTAINS:
+//Evidence bags and stuff
+///////////
+//Shamelessly ripped from Mini's old code.
+
+/obj/item/weapon/evidencebag
+ name = "evidence bag"
+ desc = "An empty evidence bag."
+ icon = 'storage.dmi'
+ icon_state = "evidenceobj"
+
+/* buggy and stuff
+/obj/item/weapon/evidencebag/attackby(obj/item/weapon/O, mob/user as mob)
+ return src.afterattack(O, user)
+*/
+
+/obj/item/weapon/evidencebag/afterattack(obj/item/O, mob/user as mob)
+
+//Now you can put it into a briefcase, if it is in your hand. Otherwise, if it is evidence on the ground, it picks it up.
+ if(istype(O, /obj/item/weapon/storage) && O in user)
+ user << "You put the evidence bag into the [O]."
+ return ..()
+ if(!(O && istype(O)) || O.anchored == 1)
+ user << "You can't put that inside the [src]!"
+ return ..()
+ if(src.contents.len > 0)
+ user << "The [src] already has something inside it."
+ return ..()
+ user << "You put the [O] inside the [src]."
+ O.loc = src
+ icon_state = "evidence"
+ src.underlays += O
+ desc = "An evidence bag containing \a [O]. [O.desc]"
+
+/obj/item/weapon/evidencebag/attack_self(mob/user as mob)
+ var/obj/item/I = src.contents[1]
+ user << "You take the [I] out of the [src]."
+ I.loc = user.loc
+ src.underlays -= I
+ icon_state = "evidenceobj"
+
+/obj/item/weapon/storage/box/evidence
+ name = "evidence bag box"
+ desc = "A box claiming to contain evidence bags."
+ New()
+ new /obj/item/weapon/evidencebag(src)
+ new /obj/item/weapon/evidencebag(src)
+ new /obj/item/weapon/evidencebag(src)
+ new /obj/item/weapon/evidencebag(src)
+ new /obj/item/weapon/evidencebag(src)
+ new /obj/item/weapon/evidencebag(src)
+ new /obj/item/weapon/evidencebag(src)
+ ..()
+ return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/grenades.dm b/code/game/objects/items/weapons/grenades.dm
index afbdc688913..38402a2366f 100644
--- a/code/game/objects/items/weapons/grenades.dm
+++ b/code/game/objects/items/weapons/grenades.dm
@@ -161,7 +161,7 @@ FLASHBANG
if(iscarbon(M))
eye_safety = M.eyecheck()
if(ishuman(M))
- if(istype(M:ears, /obj/item/clothing/ears/earmuffs))
+ if(istype(M:l_ear, /obj/item/clothing/ears/earmuffs) || istype(M:r_ear, /obj/item/clothing/ears/earmuffs))
ear_safety += 2
if(M.mutations & HULK)
ear_safety += 1
diff --git a/code/game/objects/storage/coat.dm b/code/game/objects/storage/coat.dm
new file mode 100644
index 00000000000..4fd6ec8ebc6
--- /dev/null
+++ b/code/game/objects/storage/coat.dm
@@ -0,0 +1,215 @@
+
+/obj/item/clothing/suit/storage/
+ var/obj/screen/storage/boxes
+ var/obj/screen/close/closer
+ var/obj/slot1
+ var/obj/slot2
+
+/obj/item/clothing/suit/storage/New()
+ src.boxes = new /obj/screen/storage( )
+ src.boxes.name = "storage"
+ src.boxes.master = src
+ src.boxes.icon_state = "block"
+ src.boxes.screen_loc = "7,7 to 9,7"
+ src.boxes.layer = 19
+ src.closer = new /obj/screen/close( )
+ src.closer.master = src
+ src.closer.icon_state = "x"
+ src.closer.layer = 20
+ src.closer.screen_loc = "9,7"
+
+/obj/item/clothing/suit/storage/proc/view_inv(mob/user as mob)
+ if(!user)
+ return
+ user.client.screen += src.boxes
+ user.client.screen += src.closer
+ user.client.screen += src.contents
+ var/xs = 7
+ var/ys = 7
+ for(var/obj/O in src.contents)
+ O.screen_loc = "[xs],[ys]"
+ O.layer = 20
+ xs++
+
+/obj/item/clothing/suit/storage/proc/close(mob/user as mob)
+ if(!user)
+ return
+ user.s_active = src
+ user.client.screen -= src.boxes
+ user.client.screen -= src.closer
+ user.client.screen -= src.contents
+
+/obj/item/clothing/suit/storage/MouseDrop(atom/A)
+ if(istype(A,/mob/living/carbon))
+ src.view_inv(A)
+
+/obj/item/clothing/suit/storage/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(W.w_class > 2 || src.loc == W )
+ return
+ if(src.contents.len >= 2)
+ user << "You have nowhere to place that"
+ return
+ user.u_equip(W)
+ W.loc = src
+ if ((user.client && user.s_active != src))
+ user.client.screen -= W
+ else if(user.s_active == src)
+ close(user)
+ view_inv(user)
+ W.dropped(user)
+/*/obj/item/clothing/suit/storage/New()
+
+ src.boxes = new /obj/screen/storage( )
+ src.boxes.name = "storage"
+ src.boxes.master = src
+ src.boxes.icon_state = "block"
+ src.boxes.screen_loc = "7,7 to 10,8"
+ src.boxes.layer = 19
+ src.closer = new /obj/screen/close( )
+ src.closer.master = src
+ src.closer.icon_state = "x"
+ src.closer.layer = 20
+ spawn( 5 )
+ src.orient_objs(7, 8, 10, 7)
+ return
+ return
+
+/obj/item/clothing/suit/storage/attackby(obj/item/weapon/W as obj, mob/user as mob)
+
+ if(can_hold.len)
+ var/ok = 0
+ for(var/A in can_hold)
+ if(istype(W, text2path(A) )) ok = 1
+ if(!ok)
+ user << "\red This container cannot hold [W]."
+ return
+
+ if (src.contents.len >= 7)
+ return
+ if ((W.w_class >= 3 || istype(W, /obj/item/weapon/storage) || src.loc == W))
+ return
+ user.u_equip(W)
+ W.loc = src
+ if ((user.client && user.s_active != src))
+ user.client.screen -= W
+ src.orient2hud(user)
+ W.dropped(user)
+ add_fingerprint(user)
+ if (istype(W, /obj/item/weapon/gun/energy/crossbow)) return //STEALTHY
+ for(var/mob/O in viewers(user, null))
+ O.show_message(text("\blue [] has added [] to []!", user, W, src), 1)
+ //Foreach goto(139)
+ return
+
+/obj/item/clothing/suit/storage/dropped(mob/user as mob)
+ src.orient_objs(7, 8, 10, 7)
+ return
+
+/obj/item/clothing/suit/storage/MouseDrop(over_object, src_location, over_location)
+ ..()
+ if ((over_object == usr && (in_range(src, usr) || usr.contents.Find(src))))
+ if (usr.s_active)
+ usr.s_active.close(usr)
+ src.show_to(usr)
+ return
+
+/obj/item/clothing/suit/storage/attack_paw(mob/user as mob)
+ playsound(src.loc, "rustle", 50, 1, -5)
+ return src.attack_hand(user)
+ return
+
+/obj/item/clothing/suit/storage/attack_hand(mob/user as mob)
+ playsound(src.loc, "rustle", 50, 1, -5)
+ if (src.loc == user)
+ if (user.s_active)
+ user.s_active.close(user)
+ src.show_to(user)
+ else
+ ..()
+ for(var/mob/M in range(1))
+ if (M.s_active == src)
+ src.close(M)
+ //Foreach goto(76)
+ src.orient2hud(user)
+ src.add_fingerprint(user)
+ return
+
+/obj/item/clothing/suit/storage/proc/return_inv()
+
+ var/list/L = list( )
+
+ L += src.contents
+
+ for(var/obj/item/weapon/storage/S in src)
+ L += S.return_inv()
+ for(var/obj/item/weapon/gift/G in src)
+ L += G.gift
+ if (istype(G.gift, /obj/item/weapon/storage))
+ L += G.gift:return_inv()
+ return L
+
+/obj/item/clothing/suit/storage/proc/show_to(mob/user as mob)
+ for(var/obj/item/weapon/mousetrap/MT in src)
+ if(MT.armed)
+ for(var/mob/O in viewers(user, null))
+ if(O == user)
+ user.show_message(text("\red You reach into the [src.name], but there was a live mousetrap in there!"), 1)
+ else
+ user.show_message(text("\red [user] reaches into the [src.name] and sets off a hidden mousetrap!"), 1)
+ MT.loc = user.loc
+ MT.triggered(user, user.hand ? "l_hand" : "r_hand")
+ MT.layer = OBJ_LAYER
+ return
+ user.client.screen -= src.boxes
+ user.client.screen -= src.closer
+ user.client.screen -= src.contents
+ user.client.screen += src.boxes
+ user.client.screen += src.closer
+ user.client.screen += src.contents
+ user.s_active = src
+ return
+
+/obj/item/clothing/suit/storage/proc/hide_from(mob/user as mob)
+
+ if(!user.client)
+ return
+ user.client.screen -= src.boxes
+ user.client.screen -= src.closer
+ user.client.screen -= src.contents
+ return
+
+/obj/item/clothing/suit/storage/proc/close(mob/user as mob)
+
+ src.hide_from(user)
+ user.s_active = null
+ return
+
+/obj/item/weapon/storage/proc/orient_objs(tx, ty, mx, my)
+
+ var/cx = tx
+ var/cy = ty
+ src.boxes.screen_loc = text("[],[] to [],[]", tx, ty, mx, my)
+ for(var/obj/O in src.contents)
+ O.screen_loc = text("[],[]", cx, cy)
+ O.layer = 20
+ cx++
+ if (cx > mx)
+ cx = tx
+ cy--
+ //Foreach goto(56)
+ src.closer.screen_loc = text("[],[]", mx, my)
+ return
+
+/obj/item/weapon/storage/proc/orient2hud(mob/user as mob)
+
+ if (src == user.l_hand)
+ src.orient_objs(3, 11, 3, 4)
+ else
+ if (src == user.r_hand)
+ src.orient_objs(1, 11, 1, 4)
+ else
+ if (src == user.back)
+ src.orient_objs(4, 10, 4, 3)
+ else
+ src.orient_objs(4, 10, 4, 3)
+ return*/
\ No newline at end of file
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 6d455d3f9fe..8effc5a1f28 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -427,7 +427,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_if_possible(new /obj/item/clothing/under/det(M), M.slot_w_uniform)
M.equip_if_possible(new /obj/item/clothing/shoes/black(M), M.slot_shoes)
- M.equip_if_possible(new /obj/item/clothing/suit/det_suit(M), M.slot_wear_suit)
+ M.equip_if_possible(new /obj/item/clothing/suit/storage/det_suit(M), M.slot_wear_suit)
M.equip_if_possible(new /obj/item/clothing/glasses/thermal/monocle(M), M.slot_glasses)
M.equip_if_possible(new /obj/item/clothing/head/det_hat(M), M.slot_head)
@@ -438,7 +438,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if ("tournament chef") //Steven Seagal FTW
M.equip_if_possible(new /obj/item/clothing/under/rank/chef(M), M.slot_w_uniform)
- M.equip_if_possible(new /obj/item/clothing/suit/chef(M), M.slot_wear_suit)
+ M.equip_if_possible(new /obj/item/clothing/suit/storage/chef(M), M.slot_wear_suit)
M.equip_if_possible(new /obj/item/clothing/shoes/black(M), M.slot_shoes)
M.equip_if_possible(new /obj/item/clothing/head/chefhat(M), M.slot_head)
@@ -501,7 +501,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_if_possible(new /obj/item/clothing/head/chaplain_hood(M), M.slot_head)
M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears)
M.equip_if_possible(new /obj/item/clothing/glasses/thermal/monocle(M), M.slot_glasses)
- M.equip_if_possible(new /obj/item/clothing/suit/chaplain_hoodie(M), M.slot_wear_suit)
+ M.equip_if_possible(new /obj/item/clothing/suit/storage/chaplain_hoodie(M), M.slot_wear_suit)
M.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(M), M.slot_l_store)
M.equip_if_possible(new /obj/item/weapon/bikehorn(M), M.slot_r_store)
@@ -524,7 +524,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_if_possible(new /obj/item/clothing/head/helmet/welding(M), M.slot_head)
M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears)
M.equip_if_possible(new /obj/item/clothing/glasses/thermal/monocle(M), M.slot_glasses)
- M.equip_if_possible(new /obj/item/clothing/suit/apron(M), M.slot_wear_suit)
+ M.equip_if_possible(new /obj/item/clothing/suit/storage/apron(M), M.slot_wear_suit)
M.equip_if_possible(new /obj/item/weapon/kitchenknife(M), M.slot_l_store)
M.equip_if_possible(new /obj/item/weapon/scalpel(M), M.slot_r_store)
@@ -542,7 +542,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_if_possible(new /obj/item/clothing/gloves/black(M), M.slot_gloves)
M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears)
M.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(M), M.slot_glasses)
- M.equip_if_possible(new /obj/item/clothing/suit/wcoat(M), M.slot_wear_suit)
+ M.equip_if_possible(new /obj/item/clothing/suit/storage/wcoat(M), M.slot_wear_suit)
M.equip_if_possible(new /obj/item/weapon/melee/energy/sword(M), M.slot_l_store)
M.equip_if_possible(new /obj/item/weapon/cloaking_device(M), M.slot_r_store)
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 57c7c756e9b..59b311bfa84 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -55,6 +55,21 @@
item_state = "armor_reflec"
armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0)
+/obj/item/clothing/suit/storage/gearharness
+ name = "gear harness"
+ desc = "A simple security harness, used for storing small objects"
+ icon_state = "gearharness"
+ item_state = "gearharness"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+ flags = FPRINT | TABLEPASS | ONESIZEFITSALL
+
+/obj/item/clothing/suit/storage/armourrigvest
+ name = "armour rig vest"
+ desc = "An important looking armoured vest, outfitted with pockets."
+ icon_state = "armourrigvest"
+ item_state = "armourrigvest"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+ flags = FPRINT | TABLEPASS | ONESIZEFITSALL
diff --git a/code/modules/clothing/suits/detective.dm b/code/modules/clothing/suits/detective.dm
index a904edbb958..bceefa513b7 100644
--- a/code/modules/clothing/suits/detective.dm
+++ b/code/modules/clothing/suits/detective.dm
@@ -6,7 +6,7 @@
armor = list(melee = 50, bullet = 5, laser = 25,energy = 10, bomb = 0, bio = 0, rad = 0)
-/obj/item/clothing/suit/det_suit
+/obj/item/clothing/suit/storage/det_suit
name = "coat"
desc = "An 18th-century multi-purpose trenchcoat. Someone who wears this means serious business."
icon_state = "detective"
diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm
index 3b4923ceba7..111d74e0644 100644
--- a/code/modules/clothing/suits/labcoat.dm
+++ b/code/modules/clothing/suits/labcoat.dm
@@ -1,5 +1,5 @@
-/obj/item/clothing/suit/labcoat
+/obj/item/clothing/suit/storage/labcoat
name = "labcoat"
desc = "A suit that protects against minor chemical spills."
icon_state = "labcoat_open"
@@ -10,34 +10,34 @@
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
-/obj/item/clothing/suit/labcoat/cmo
+/obj/item/clothing/suit/storage/labcoat/cmo
name = "chief medical officer's labcoat"
desc = "Bluer than the standard model."
icon_state = "labcoat_cmo_open"
item_state = "labcoat_cmo"
-/obj/item/clothing/suit/labcoat/mad
+/obj/item/clothing/suit/storage/labcoat/mad
name = "The Mad's labcoat"
desc = "It makes you look capable of konking someone on the noggin and shooting them into space."
icon_state = "labgreen_open"
item_state = "labgreen"
-/obj/item/clothing/suit/labcoat/genetics
+/obj/item/clothing/suit/storage/labcoat/genetics
name = "Geneticist Labcoat"
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
icon_state = "labcoat_gen_open"
-/obj/item/clothing/suit/labcoat/chemist
+/obj/item/clothing/suit/storage/labcoat/chemist
name = "Chemist Labcoat"
desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder."
icon_state = "labcoat_chem_open"
-/obj/item/clothing/suit/labcoat/virologist
+/obj/item/clothing/suit/storage/labcoat/virologist
name = "Virologist Labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder."
icon_state = "labcoat_vir_open"
-/obj/item/clothing/suit/labcoat/science
+/obj/item/clothing/suit/storage/labcoat/science
name = "Scientist Labcoat"
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
icon_state = "labcoat_tox_open"
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 766b6fd65b9..547c57d1997 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -6,7 +6,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
-/obj/item/clothing/suit/wcoat
+/obj/item/clothing/suit/storage/wcoat
name = "waistcoat"
desc = "For some classy, murderous fun."
icon_state = "vest"
@@ -14,18 +14,18 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-/obj/item/clothing/suit/apron
+/obj/item/clothing/suit/storage/apron
name = "apron"
- desc = "A basic blue apron."
+ desc = "A basic blue apron. It has a large pocket you can store things in."
icon_state = "apron"
item_state = "apron"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
allowed = list (/obj/item/weapon/plantbgone,/obj/item/device/analyzer/plant_analyzer,/obj/item/seeds,/obj/item/nutrient,/obj/item/weapon/minihoe)
-/obj/item/clothing/suit/chef
+/obj/item/clothing/suit/storage/chef
name = "Chef's apron"
- desc = "An apron used by a high class chef."
+ desc = "An apron used by a high class chef. Has a few pockets for nic-naks."
icon_state = "chef"
item_state = "chef"
gas_transfer_coefficient = 0.90
@@ -36,7 +36,7 @@
allowed = list (/obj/item/weapon/kitchenknife,/obj/item/weapon/butch)
-/obj/item/clothing/suit/chef/classic
+/obj/item/clothing/suit/storage/chef/classic
name = "A classic chef's apron."
desc = "A basic, dull, white chef's apron."
icon_state = "apronchef"
@@ -68,7 +68,7 @@
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy)
-/obj/item/clothing/suit/captunic
+/obj/item/clothing/suit/storage/captunic
name = "captain's parade tunic"
desc = "Worn by a Captain to show their class."
icon_state = "captunic"
@@ -84,7 +84,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
-/obj/item/clothing/suit/chaplain_hoodie
+/obj/item/clothing/suit/storage/chaplain_hoodie
name = "chaplain hoodie"
desc = "This suit says to you 'hush'!"
icon_state = "chaplain_hoodie"
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 0501f148595..06f9fa3b394 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -30,8 +30,11 @@
else
usr << "\blue [src.name] has a \icon[src.wear_suit] [src.wear_suit.name] on."
- if (src.ears)
- usr << "\blue [src.name] has a \icon[src.ears] [src.ears.name] by [t_his] mouth."
+ if (src.l_ear)
+ usr << "\blue [src.name] has a \icon[src.l_ear] [src.l_ear.name] by [t_his] mouth."
+
+ if (src.r_ear)
+ usr << "\blue [src.name] has a \icon[src.r_ear] [src.r_ear.name] by [t_his] mouth."
if (src.wear_mask)
if (src.wear_mask.blood_DNA)
diff --git a/code/modules/mob/living/carbon/human/hud.dm b/code/modules/mob/living/carbon/human/hud.dm
index 1cafa5e6043..632220c09bb 100644
--- a/code/modules/mob/living/carbon/human/hud.dm
+++ b/code/modules/mob/living/carbon/human/hud.dm
@@ -271,10 +271,20 @@
src.other += using
using = new src.h_type( src )
- using.name = "ears"
+ using.name = "l_ear"
+ using.dir = EAST
using.icon = ui_style
using.icon_state = "ears"
- using.screen_loc = ui_ears
+ using.screen_loc = ui_lear
+ using.layer = 19
+ src.other += using
+
+ using = new src.h_type( src )
+ using.name = "r_ear"
+ using.dir = WEST
+ using.icon = ui_style
+ using.icon_state = "ears"
+ using.screen_loc = ui_rear
using.layer = 19
src.other += using
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 3a9274450bd..0fa6fbb9eae 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -30,7 +30,8 @@
var/obj/item/clothing/gloves/gloves = null
var/obj/item/clothing/glasses/glasses = null
var/obj/item/clothing/head/head = null
- var/obj/item/clothing/ears/ears = null
+ var/obj/item/clothing/ears/l_ear = null
+ var/obj/item/clothing/ears/r_ear = null
var/obj/item/weapon/card/id/wear_id = null
var/obj/item/weapon/r_store = null
var/obj/item/weapon/l_store = null
@@ -252,7 +253,7 @@
b_loss = b_loss/1.5
f_loss = f_loss/1.5
- if (!istype(ears, /obj/item/clothing/ears/earmuffs))
+ if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
ear_damage += 30
ear_deaf += 120
@@ -260,7 +261,7 @@
b_loss += 30
if (!prob(getarmor(null, "bomb")))
b_loss = b_loss/2
- if (!istype(ears, /obj/item/clothing/ears/earmuffs))
+ if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
ear_damage += 15
ear_deaf += 60
if (prob(50) && !shielded)
@@ -363,8 +364,10 @@
del(face_standing)
del(face_lying)
- else if (W == ears)
- ears = null
+ else if (W == l_ear)
+ l_ear = null
+ else if (W == r_ear)
+ r_ear = null
else if (W == shoes)
shoes = null
else if (W == belt)
@@ -523,15 +526,41 @@
if(istype(W,/obj/item/clothing/head/kitty))
W.update_icon(src)
W.equipped(src, text)
- if("ears")
- if (ears)
+ if("l_ear")
+ if (l_ear)
if (emptyHand)
- ears.DblClick()
+ l_ear.DblClick()
return
- if (!( istype(W, /obj/item/clothing/ears) ) && !( istype(W, /obj/item/device/radio/headset) ))
+ else if(emptyHand)
+ return
+ if (!( istype(W, /obj/item/clothing/ears) ) && !( istype(W, /obj/item/device/radio/headset) ) && W.w_class != 1)
+ return
+ if(istype(W,/obj/item/clothing/ears) && W:twoeared && r_ear)
return
u_equip(W)
- ears = W
+ l_ear = W
+ if(istype(W,/obj/item/clothing/ears) && W:twoeared)
+ var/obj/item/clothing/ears/offear/O = new(W)
+ O.loc = src
+ equip_if_possible(O, slot_ears)
+ W.equipped(src, text)
+ if("r_ear")
+ if (r_ear)
+ if (emptyHand)
+ r_ear.DblClick()
+ return
+ else if(emptyHand)
+ return
+ if (!( istype(W, /obj/item/clothing/ears) ) && !( istype(W, /obj/item/device/radio/headset) ) && W.w_class != 1)
+ return
+ if(istype(W,/obj/item/clothing/ears) && W:twoeared && l_ear)
+ return
+ u_equip(W)
+ r_ear = W
+ if(istype(W,/obj/item/clothing/ears) && W:twoeared)
+ var/obj/item/clothing/ears/offear/O = new(W)
+ O.loc = src
+ equip_if_possible(O, slot_ears)
W.equipped(src, text)
if("i_clothing")
if (w_uniform)
@@ -865,8 +894,11 @@
var/t1 = glasses.icon_state
overlays += image("icon" = 'eyes.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
// Ears
- if (ears)
- var/t1 = ears.icon_state
+ if (l_ear)
+ var/t1 = l_ear.icon_state
+ overlays += image("icon" = 'ears.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
+ if (r_ear)
+ var/t1 = r_ear.icon_state
overlays += image("icon" = 'ears.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
// Shoes
if (shoes)
@@ -928,9 +960,9 @@
if (wear_suit)
if (wear_suit.blood_DNA)
var/icon/stain_icon = null
- if (istype(wear_suit, /obj/item/clothing/suit/armor/vest || /obj/item/clothing/suit/wcoat))
+ if (istype(wear_suit, /obj/item/clothing/suit/armor/vest || /obj/item/clothing/suit/storage/wcoat))
stain_icon = icon('blood.dmi', "armorblood[!lying ? "" : "2"]")
- else if (istype(wear_suit, /obj/item/clothing/suit/det_suit || /obj/item/clothing/suit/labcoat))
+ else if (istype(wear_suit, /obj/item/clothing/suit/storage/det_suit || /obj/item/clothing/suit/storage/labcoat))
stain_icon = icon('blood.dmi', "coatblood[!lying ? "" : "2"]")
else
stain_icon = icon('blood.dmi', "suitblood[!lying ? "" : "2"]")
@@ -1413,11 +1445,16 @@
message = text("\red [] fails to take off \a [] from []'s body!", source, target.glasses, target)
else
message = text("\red [] is trying to take off the [] from []'s eyes!", source, target.glasses, target)
- if("ears")
- if(istype(target.ears, /obj/item/clothing)&&!target.ears:canremove)
- message = text("\red [] fails to take off \a [] from []'s body!", source, target.ears, target)
+ if("l_ear")
+ if(istype(target.l_ear, /obj/item/clothing)&&!target.l_ear:canremove)
+ message = text("\red [] fails to take off \a [] from []'s body!", source, target.l_ear, target)
else
- message = text("\red [] is trying to take off the [] from []'s ears!", source, target.ears, target)
+ message = text("\red [] is trying to take off the [] from []'s left ear!", source, target.l_ear, target)
+ if("r_ear")
+ if(istype(target.r_ear, /obj/item/clothing)&&!target.r_ear:canremove)
+ message = text("\red [] fails to take off \a [] from []'s body!", source, target.r_ear, target)
+ else
+ message = text("\red [] is trying to take off the [] from []'s right ear!", source, target.r_ear, target)
if("head")
if(istype(target.head, /obj/item/clothing)&&!target.head:canremove)
message = text("\red [] fails to take off \a [] from []'s body!", source, target.head, target)
@@ -1643,12 +1680,19 @@ It can still be worn/put on as normal.
item.layer = 20
target.head = item
item.loc = target
- if("ears")
- if (target.ears)
- if(istype(target.ears, /obj/item/clothing)&& !target.ears:canremove)
+ if("l_ear")
+ if (target.l_ear)
+ if(istype(target.l_ear, /obj/item/clothing)&& !target.l_ear:canremove)
return
- var/obj/item/W = target.ears
+ var/obj/item/W = target.l_ear
target.u_equip(W)
+
+ if(istype(W,/obj/item/clothing/ears/offear))
+ W = target.r_ear
+ if(istype(W, /obj/item/clothing/ears) && W:twoeared)
+ if (target.client)
+ target.client.screen -= target.r_ear
+ target.u_equip(target.r_ear)
if (target.client)
target.client.screen -= W
if (W)
@@ -1657,18 +1701,53 @@ It can still be worn/put on as normal.
W.layer = initial(W.layer)
W.add_fingerprint(source)
else
- if (istype(item, /obj/item/clothing/ears))
+ if (istype(item, /obj/item/clothing/ears) || istype(item, /obj/item/device/radio/headset) || item.w_class == 1)
source.drop_item()
- loc = target
- item.layer = 20
- target.ears = item
- item.loc = target
- else if (istype(item, /obj/item/device/radio/headset))
+ if(istype(item, /obj/item/clothing/ears) && item:twoeared && target.r_ear)
+ loc = target.loc
+ else
+ loc = target
+ item.layer = 20
+ target.l_ear = item
+ item.loc = target
+ if(istype(item, /obj/item/clothing/ears) && item:twoeared)
+ var/obj/item/clothing/ears/offear/O = new(item)
+ O.loc = target
+ target.equip_if_possible(O, target.slot_ears)
+ if("r_ear")
+ if (target.r_ear)
+ if(istype(target.r_ear, /obj/item/clothing)&& !target.r_ear:canremove)
+ return
+ var/obj/item/W = target.r_ear
+ target.u_equip(W)
+
+ if(istype(W,/obj/item/clothing/ears/offear))
+ W = target.l_ear
+ if(istype(W, /obj/item/clothing/ears) && W:twoeared)
+ if (target.client)
+ target.client.screen -= target.r_ear
+ target.u_equip(target.l_ear)
+ if (target.client)
+ target.client.screen -= W
+ if (W)
+ W.loc = target.loc
+ W.dropped(target)
+ W.layer = initial(W.layer)
+ W.add_fingerprint(source)
+ else
+ if (istype(item, /obj/item/clothing/ears) || istype(item, /obj/item/device/radio/headset) || item.w_class == 1)
source.drop_item()
- loc = target
- item.layer = 20
- target.ears = item
- item.loc = target
+ if(istype(item, /obj/item/clothing/ears) && item:twoeared && target.r_ear)
+ loc = target.loc
+ else
+ loc = target
+ item.layer = 20
+ target.r_ear = item
+ item.loc = target
+ if(istype(item, /obj/item/clothing/ears) && item:twoeared)
+ var/obj/item/clothing/ears/offear/O = new/obj/item/clothing/ears/offear(item)
+ O.loc = target
+ target.equip_if_possible(O, target.slot_ears)
if("shoes")
if (target.shoes)
if(istype(target.shoes, /obj/item/clothing)&& !target.shoes:canremove)
@@ -1975,7 +2054,8 @@ It can still be worn/put on as normal.
Right Hand: [(r_hand ? r_hand : "Nothing")]
Gloves: [(gloves ? gloves : "Nothing")]
Eyes: [(glasses ? glasses : "Nothing")]
-
Ears: [(ears ? ears : "Nothing")]
+
Left Ear: [(l_ear ? l_ear : "Nothing")]
+
Right Ear: [(r_ear ? r_ear : "Nothing")]
Head: [(head ? head : "Nothing")]
Shoes: [(shoes ? shoes : "Nothing")]
Belt: [(belt ? belt : "Nothing")]
@@ -2199,7 +2279,7 @@ It can still be worn/put on as normal.
/mob/living/carbon/human/abiotic(var/full_body = 0)
- if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.ears || src.gloves)))
+ if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.l_ear || src.r_ear || src.gloves)))
return 1
if((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )))
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 02e0c2785da..77ab230be5d 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -551,9 +551,12 @@
if(glasses)
if(glasses.protective_temperature > temp)
fire_prot += (glasses.protective_temperature/10)
- if(ears)
- if(ears.protective_temperature > temp)
- fire_prot += (ears.protective_temperature/10)
+ if(l_ear)
+ if(l_ear.protective_temperature > temp)
+ fire_prot += (l_ear.protective_temperature/10)
+ if(r_ear)
+ if(r_ear.protective_temperature > temp)
+ fire_prot += (r_ear.protective_temperature/10)
if(wear_suit)
if(wear_suit.protective_temperature > temp)
fire_prot += (wear_suit.protective_temperature/10)
@@ -730,7 +733,7 @@
if ((sdisabilities & 1 || istype(glasses, /obj/item/clothing/glasses/blindfold)))
blinded = 1
- if ((sdisabilities & 4 || istype(ears, /obj/item/clothing/ears/earmuffs)))
+ if ((sdisabilities & 4 || istype(l_ear, /obj/item/clothing/ears/earmuffs) || istype(r_ear, /obj/item/clothing/ears/earmuffs)))
ear_deaf = 1
if (eye_blurry > 0)
diff --git a/code/modules/mob/living/carbon/monkey/hud.dm b/code/modules/mob/living/carbon/monkey/hud.dm
index 6ead2fd432b..645e93c2da7 100644
--- a/code/modules/mob/living/carbon/monkey/hud.dm
+++ b/code/modules/mob/living/carbon/monkey/hud.dm
@@ -248,10 +248,19 @@
src.other += using
using = new src.h_type( src )
- using.name = "ears"
+ using.name = "left ear"
using.icon = ui_style
using.icon_state = "ears"
- using.screen_loc = ui_ears
+ using.screen_loc = ui_lear
+ using.layer = 19
+ using.overlays += blocked
+ src.other += using
+
+ using = new src.h_type( src )
+ using.name = "right ear"
+ using.icon = ui_style
+ using.icon_state = "ears"
+ using.screen_loc = ui_rear
using.layer = 19
using.overlays += blocked
src.other += using
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 4fbf6a1e051..72e10af6faa 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -3,8 +3,12 @@
if (issilicon(src)) return 1
if (!ishuman(src)) return
var/mob/living/carbon/human/H = src
- if (H.ears)
- var/obj/item/device/radio/headset/dongle = H.ears
+ if (H.l_ear || H.r_ear)
+ var/obj/item/device/radio/headset/dongle
+ if(istype(H.l_ear,/obj/item/device/radio/headset))
+ dongle = H.l_ear
+ else
+ dongle = H.r_ear
if(!istype(dongle)) return
if(dongle.translate_binary) return 1
@@ -12,8 +16,12 @@
if (isalien(src)) return 1
if (!ishuman(src)) return
var/mob/living/carbon/human/H = src
- if (H.ears)
- var/obj/item/device/radio/headset/dongle = H.ears
+ if (H.l_ear || H.r_ear)
+ var/obj/item/device/radio/headset/dongle
+ if(istype(H.l_ear,/obj/item/device/radio/headset))
+ dongle = H.l_ear
+ else
+ dongle = H.r_ear
if(!istype(dongle)) return
if(dongle.translate_hive) return 1
@@ -75,8 +83,8 @@
var/channel_prefix = copytext(message, 1, 3)
var/list/keys = list(
- ":r" = "right hand",
- ":l" = "left hand",
+ ":r" = "right ear",
+ ":l" = "left ear",
":i" = "intercom",
":h" = "department",
":c" = "Command",
@@ -156,33 +164,39 @@
switch (message_mode)
if ("headset")
- if (src:ears)
- src:ears.talk_into(src, message)
- used_radios += src:ears
+ if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
+ src:l_ear.talk_into(src, message)
+ used_radios += src:l_ear
+ else if (src:r_ear)
+ src:r_ear.talk_into(src, message)
+ used_radios += src:r_ear
message_range = 1
italics = 1
if ("secure headset")
- if (src:ears)
- src:ears.talk_into(src, message, 1)
- used_radios += src:ears
+ if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
+ src:l_ear.talk_into(src, message, 1)
+ used_radios += src:l_ear
+ else if (src:r_ear)
+ src:r_ear.talk_into(src, message, 1)
+ used_radios += src:r_ear
message_range = 1
italics = 1
- if ("right hand")
- if (r_hand)
- r_hand.talk_into(src, message)
- used_radios += src:r_hand
+ if ("right ear")
+ if (src:r_ear)
+ src:r_ear.talk_into(src, message)
+ used_radios += src:r_ear
message_range = 1
italics = 1
- if ("left hand")
- if (l_hand)
- l_hand.talk_into(src, message)
- used_radios += src:l_hand
+ if ("left ear")
+ if (src:l_ear)
+ src:l_ear.talk_into(src, message)
+ used_radios += src:l_ear
message_range = 1
italics = 1
@@ -213,9 +227,12 @@
return
if ("department")
- if (src:ears)
- src:ears.talk_into(src, message, message_mode)
- used_radios += src:ears
+ if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
+ src:l_ear.talk_into(src, message, message_mode)
+ used_radios += src:l_ear
+ else if (src:r_ear)
+ src:r_ear.talk_into(src, message, message_mode)
+ used_radios += src:r_ear
message_range = 1
italics = 1
if ("pAI")
@@ -234,9 +251,12 @@
else
//world << "SPECIAL HEADSETS"
if (message_mode in radiochannels)
- if (src:ears)
- src:ears.talk_into(src, message, message_mode)
- used_radios += src:ears
+ if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
+ src:l_ear.talk_into(src, message, message_mode)
+ used_radios += src:l_ear
+ else if (src:r_ear)
+ src:r_ear.talk_into(src, message, message_mode)
+ used_radios += src:r_ear
message_range = 1
italics = 1
/////SPECIAL HEADSETS END
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index fa41cdc8bb5..745c6d8f2d7 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -809,6 +809,8 @@
else
gibs(loc, viruses)
sleep(15)
+ for(var/obj/item/I in src.contents)
+ I.loc = get_turf(src)
del(src)
/*
@@ -844,6 +846,8 @@ Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N
sleep(15)
if(isrobot(src)&&src:mmi)//Is a robot and it has an mmi.
del(src:mmi)//Delete the MMI first so that it won't go popping out.
+ for(var/obj/item/I in src.contents)
+ I.loc = get_turf(src)
del(src)
/*
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index 4a80978d786..ee4ed93f46d 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -9,7 +9,7 @@
special_check(var/mob/living/carbon/human/M)
/* if(ishuman(M))
- if(istype(M.w_uniform, /obj/item/clothing/under/det) && istype(M.head, /obj/item/clothing/head/det_hat) && istype(M.wear_suit, /obj/item/clothing/suit/det_suit))
+ if(istype(M.w_uniform, /obj/item/clothing/under/det) && istype(M.head, /obj/item/clothing/head/det_hat) && istype(M.wear_suit, /obj/item/clothing/suit/storage/det_suit))
return 1
M << "\red You just don't feel cool enough to use this gun looking like that."
return 0 */
diff --git a/icons/mob/screen1.dmi b/icons/mob/screen1.dmi
index c91a553540b..d631ff02ce2 100644
Binary files a/icons/mob/screen1.dmi and b/icons/mob/screen1.dmi differ
diff --git a/icons/mob/screen1_alien.dmi b/icons/mob/screen1_alien.dmi
index 900feb86025..188d9f16d0d 100644
Binary files a/icons/mob/screen1_alien.dmi and b/icons/mob/screen1_alien.dmi differ
diff --git a/icons/mob/screen1_old.dmi b/icons/mob/screen1_old.dmi
index ae9ed11ff79..1918ebce9fe 100644
Binary files a/icons/mob/screen1_old.dmi and b/icons/mob/screen1_old.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 7e49957f9f1..09bf6b65599 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi
index abead579d61..9ae49fadf1f 100644
Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 8a03e11c9d5..8791d7266f3 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm
index 726b1420b8d..b8dcfc9e5be 100644
--- a/maps/tgstation.2.0.8.dmm
+++ b/maps/tgstation.2.0.8.dmm
@@ -6143,7 +6143,7 @@
"cog" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"coh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
"coi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
-"coj" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/suit/wcoat,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
+"coj" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/suit/storage/wcoat,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"cok" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
"col" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"com" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)