diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm
index 782ee6584e0..08f8a1b94d3 100644
--- a/code/game/objects/structures/coathanger.dm
+++ b/code/game/objects/structures/coathanger.dm
@@ -4,8 +4,8 @@
icon = 'icons/obj/coatrack.dmi'
icon_state = "coatrack0"
var/obj/item/clothing/suit/coat
- var/list/allowed = list(/obj/item/clothing/suit/storage/toggle/labcoat, /obj/item/clothing/suit/storage/det_trench,
- /obj/item/clothing/suit/storage/forensics, /obj/item/clothing/suit/storage/trench)
+ var/list/allowed = list(/obj/item/clothing/suit/storage/toggle/labcoat, /obj/item/clothing/suit/storage/toggle/det_trench,
+ /obj/item/clothing/suit/storage/forensics, /obj/item/clothing/suit/storage/toggle/trench)
/obj/structure/coatrack/attack_hand(mob/user as mob)
if (!ishuman(user))
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index 28048588293..7479bfb90b7 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -129,7 +129,7 @@
new /obj/item/weapon/storage/backpack/satchel_sec(src)
new /obj/item/clothing/under/rank/head_of_security/jensen(src)
new /obj/item/clothing/under/rank/head_of_security/corp(src)
- new /obj/item/clothing/suit/armor/hos/jensen(src)
+ new /obj/item/clothing/suit/storage/toggle/armor/hos/jensen(src)
new /obj/item/clothing/suit/armor/hos(src)
new /obj/item/clothing/suit/storage/vest/hos(src)
new /obj/item/clothing/head/helmet/HoS/dermal(src)
@@ -334,11 +334,15 @@
fill()
//Appearance
+ new /obj/item/clothing/under/det(src)
+ new /obj/item/clothing/under/det/black(src)
+ new /obj/item/clothing/under/det/slob(src)
+ new /obj/item/clothing/suit/storage/toggle/det_trench(src)
+ new /obj/item/clothing/suit/storage/toggle/det_trench/technicolor(src)
+ new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/head/det(src)
new /obj/item/clothing/head/det/technicolor(src)
new /obj/item/clothing/gloves/black(src)
- new /obj/item/clothing/suit/storage/det_trench(src)
- new /obj/item/clothing/suit/storage/det_trench/technicolor(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/under/det/black(src)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 6b90977c96b..1fc7e65e45e 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -468,7 +468,7 @@
M.equip_to_slot_or_del(new /obj/item/clothing/under/det(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
- M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/det_trench(M), slot_wear_suit)
+ M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/det_trench(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/monocle(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/head/det(M), slot_head)
diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm
index b875da15627..50e9800a4ac 100644
--- a/code/modules/client/preference_setup/loadout/loadout_suit.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm
@@ -99,11 +99,11 @@
/datum/gear/suit/trenchcoat
display_name = "trenchcoat, brown"
- path = /obj/item/clothing/suit/storage/trench
+ path = /obj/item/clothing/suit/storage/toggle/trench
/datum/gear/suit/trenchcoatgrey
display_name = "trenchcoat, grey"
- path = /obj/item/clothing/suit/storage/trench/grey
+ path = /obj/item/clothing/suit/storage/toggle/trench/grey
/datum/gear/suit/ian
display_name = "worn shirt"
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index b5bcdcf4410..c704ef48027 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -96,7 +96,7 @@
name = "captains beret"
desc = "A white beret adorned with the shield - a silver kite shield with an engraved sword - of the NanoTrasen security forces."
icon_state = "centcomcaptain"
-
+
/obj/item/clothing/head/beret/centcom/commander
name = "commanders beret"
desc = "A white beret adorned with the crest of an ERT detachment. Worn by commanders of Nanotrasen response teams."
@@ -146,7 +146,7 @@
/obj/item/clothing/head/det/technicolor
desc = "A 23rd-century fedora. It's fibres are hyper-absorbent."
- icon = 'icons/obj/clothing/coloured_detective_coats.dmi'
+ icon = 'icons/obj/clothing/coloured_detective_hats.dmi'
icon_state = "hat_detective_black"
item_state = "hat_detective_black"
var/hat_color
@@ -164,6 +164,7 @@
if(istype(O, /obj/item/weapon/reagent_containers/glass/paint))
var/obj/item/weapon/reagent_containers/glass/paint/P = O
hat_color = P.paint_type
+ name = "[hat_color] fedora"
user.visible_message("[user] soaks \the [src] into [P]!")
icon_state = "hat_detective_[hat_color]"
item_state = "hat_detective_[hat_color]"
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index fbac90e3094..7e1713a86e7 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -94,11 +94,22 @@
armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
pocket_slots = 4//More slots because coat
-/obj/item/clothing/suit/armor/hos/jensen
+/obj/item/clothing/suit/storage/toggle/armor/hos/jensen
name = "armored trenchcoat"
desc = "A trenchcoat augmented with a special alloy for some protection and style."
icon_state = "jensencoat"
item_state = "jensencoat"
+ icon_open = "jensencoat_open"
+ icon_closed = "jensencoat"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
+ armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
+
+/obj/item/clothing/suit/storage/toggle/armor/hos/jensen/Initialize()
+ . = ..()
+ pockets = new/obj/item/weapon/storage/internal(src)
+ pockets.storage_slots = 4
+ pockets.max_w_class = 2
+ pockets.max_storage_space = 8
/obj/item/clothing/suit/armor/riot
name = "riot suit"
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index b395241b445..4a86ed8c5fc 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -12,13 +12,13 @@
body_parts_covered = 0
allowed = list (/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/analyzer/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/fertilizer,/obj/item/weapon/material/minihoe)
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS
-
+
/obj/item/clothing/suit/apron/overalls
name = "coveralls"
desc = "A set of denim overalls."
icon_state = "overalls"
item_state = "overalls"
-
+
/obj/item/clothing/suit/apron/surgery
name = "surgical apron"
desc = "To keep their blood off while you knife them."
@@ -26,7 +26,7 @@
item_state = "surgeon"
allowed = list(/obj/item/stack/medical, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/hypospray, /obj/item/weapon/reagent_containers/syringe, \
/obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen)
-
+
//Captain
/obj/item/clothing/suit/captunic
name = "captain's parade tunic"
@@ -108,45 +108,55 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
//Detective
-/obj/item/clothing/suit/storage/det_trench
+/obj/item/clothing/suit/storage/toggle/det_trench
name = "brown trenchcoat"
desc = "A rugged canvas trenchcoat, designed and created by TX Fabrication Corp. The coat is externally impact resistant - perfect for your next act of autodefenestration!"
icon_state = "detective"
- item_state = "det_suit"
+ item_state = "detective"
blood_overlay_type = "coat"
+ icon_open = "detective_open"
+ icon_closed = "detective"
body_parts_covered = UPPER_TORSO|ARMS
allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter,/obj/item/device/taperecorder)
armor = list(melee = 50, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
sprite_sheets = list("Vox" = 'icons/mob/species/vox/suit.dmi')
siemens_coefficient = 0.7
-/obj/item/clothing/suit/storage/det_trench/black
+/obj/item/clothing/suit/storage/toggle/det_trench/black
icon_state = "detective2"
+ icon_open = "detective2_open"
+ icon_closed = "detective2"
-/obj/item/clothing/suit/storage/det_trench/technicolor
+/obj/item/clothing/suit/storage/toggle/det_trench/technicolor
desc = "A 23rd-century multi-purpose trenchcoat. It's fibres are hyper-absorbent."
- icon = 'icons/obj/clothing/coloured_detective_coats.dmi'
icon_state = "suit_detective_black"
item_state = "suit_detective_black"
+ icon_open = "suit_detective_black_open"
+ icon_closed = "suit_detective_black"
var/suit_color
- contained_sprite = 1
-/obj/item/clothing/suit/storage/det_trench/technicolor/Initialize()
+/obj/item/clothing/suit/storage/toggle/det_trench/technicolor/Initialize()
if(prob(5))
var/list/colors = list("yellow"=2,"red"=1,"white"=1,"orange"=1,"purple"=1,"green"=1,"blue"=1 )
var/color = pickweight(colors)
+ name = "[color] trenchcoat"
icon_state = "suit_detective_[color]"
item_state = "suit_detective_[color]"
+ icon_open = "suit_detective_[color]_open"
+ icon_closed = "suit_detective_[color]"
. = ..()
-/obj/item/clothing/suit/storage/det_trench/technicolor/attackby(obj/item/weapon/O as obj, mob/user as mob)
+/obj/item/clothing/suit/storage/toggle/det_trench/technicolor/attackby(obj/item/weapon/O as obj, mob/user as mob)
if(istype(O, /obj/item/weapon/reagent_containers/glass/paint))
var/obj/item/weapon/reagent_containers/glass/paint/P = O
suit_color = P.paint_type
+ name = "[suit_color] trenchcoat" // Added name change, why was it never here?!
user.visible_message("[user] soaks \the [src] into [P]!")
icon_state = "suit_detective_[suit_color]"
item_state = "suit_detective_[suit_color]"
- ..()
+ icon_open = "suit_detective_[suit_color]_open"
+ icon_closed = "suit_detective_[suit_color]"
+ . = ..()
//Forensics
/obj/item/clothing/suit/storage/forensics
@@ -178,7 +188,7 @@
/obj/item/weapon/crowbar, /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/wirecutters, /obj/item/weapon/wrench, /obj/item/weapon/tank/emergency_oxygen, \
/obj/item/clothing/mask/gas, /obj/item/taperoll/engineering)
body_parts_covered = UPPER_TORSO
-
+
/obj/item/clothing/suit/storage/hazardvest/blue
name = "blue hazard vest"
desc = "A high-visibility vest used in work zones. This one is blue."
@@ -190,7 +200,7 @@
desc = "A high-visibility vest used in work zones. This one is white."
icon_state = "hazard_w"
item_state = "hazard_w"
-
+
/obj/item/clothing/suit/storage/hazardvest/green
name = "green hazard vest"
desc = "A high-visibility vest used in work zones. This one is green."
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 44a9d41f4ff..643f1756ed4 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -305,7 +305,7 @@
item_state = "black_hoodie"
icon_open = "black_hoodie_open"
icon_closed = "black_hoodie"
-
+
/obj/item/clothing/suit/storage/toggle/tracksuit
name = "track jacket"
desc = "An athletic black and white track jacket."
@@ -345,14 +345,14 @@
item_state = "flannel_gray"
icon_open = "flannel_gray_open"
icon_closed = "flannel_gray"
-
+
/obj/item/clothing/suit/storage/toggle/flannel/purple
name = "purple flannel shirt"
icon_state = "flannel_purple"
item_state = "flannel_purple"
icon_open = "flannel_purple_open"
icon_closed = "flannel_purple"
-
+
/obj/item/clothing/suit/storage/toggle/flannel/yellow
name = "yellow flannel shirt"
icon_state = "flannel_yellow"
@@ -360,15 +360,20 @@
icon_open = "flannel_yellow_open"
icon_closed = "flannel_yellow"
-/obj/item/clothing/suit/storage/trench
+/obj/item/clothing/suit/storage/toggle/trench
name = "brown trenchcoat"
desc = "A rugged canvas trenchcoat."
icon_state = "trench"
item_state = "trench"
+ icon_open = "trench_open"
+ icon_closed = "trench"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
-
-/obj/item/clothing/suit/storage/trench/grey
+
+/obj/item/clothing/suit/storage/toggle/trench/grey
name = "grey trenchcoat"
icon_state = "trench2"
item_state = "trench2"
+ icon_open = "trench2_open"
+ icon_closed = "trench2"
+ blood_overlay_type = "coat"
\ No newline at end of file
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index bae2d3152c5..7ea340d2fc4 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -105,11 +105,21 @@
icon_state = "psyamp"
item_state = "psyamp"
-/obj/item/clothing/suit/wizrobe/gentlecoat
+/obj/item/clothing/suit/storage/toggle/wizrobe/gentlecoat
name = "gentlemans coat"
desc = "A heavy threaded tweed gray jacket. For a different sort of Gentleman."
icon_state = "gentlecoat"
item_state = "gentlecoat"
+ icon_open = "gentlecoat_open"
+ icon_closed = "gentlecoat"
+ gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE
+ permeability_coefficient = 0.01
+ armor = list(melee = 30, bullet = 20, laser = 20,energy = 20, bomb = 20, bio = 20, rad = 20)
+ allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/teleportation_scroll,/obj/item/weapon/scrying,/obj/item/weapon/spellbook,/obj/item/device/soulstone,/obj/item/weapon/material/knife/ritual)
+ flags_inv = HIDEJUMPSUIT
+ siemens_coefficient = 0.7
+ wizard_garb = 1
+
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
flags_inv = 0
diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm
index 3030525602a..48b5ac103a4 100644
--- a/code/modules/item_worth/worths_list.dm
+++ b/code/modules/item_worth/worths_list.dm
@@ -493,6 +493,7 @@ var/list/worths = list(
/obj/item/clothing/suit/armor/centcomm = 2000,
/obj/item/clothing/suit/armor/heavy = 1000,
/obj/item/clothing/suit/armor/hos = 1000,
+ /obj/item/clothing/suit/storage/toggle/armor/hos/jensen = 1000,
/obj/item/clothing/suit/armor/tactical = 1500,
/obj/item/clothing/suit/armor = 500,
/obj/item/clothing/suit/bio_suit = 150,
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
index 05ba6b95a74..d9a39bbe85d 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
@@ -75,7 +75,7 @@
var/obj/machinery/light/L = O
L.brightness_color = color
L.update()
- else if(istype(O, /obj/item/clothing/suit/storage/det_trench/technicolor) || istype(O, /obj/item/clothing/head/det/technicolor))
+ else if(istype(O, /obj/item/clothing/suit/storage/toggle/det_trench/technicolor) || istype(O, /obj/item/clothing/head/det/technicolor))
return
else if(istype(O))
diff --git a/html/changelogs/Sindorman-coats.yml b/html/changelogs/Sindorman-coats.yml
new file mode 100644
index 00000000000..720683ff76f
--- /dev/null
+++ b/html/changelogs/Sindorman-coats.yml
@@ -0,0 +1,5 @@
+author: PoZe, AndurilFlame
+
+delete-after: True
+changes:
+ - rscadd: "Trench coat, detective's coat, coloured detective's coats, and gentlecoat are now able to be buttoned up and unbottoned."
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index eb5f5fad58c..15b5c08a5a9 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/coloured_detective_coats.dmi b/icons/obj/clothing/coloured_detective_coats.dmi
deleted file mode 100644
index 388c59eadaa..00000000000
Binary files a/icons/obj/clothing/coloured_detective_coats.dmi and /dev/null differ
diff --git a/icons/obj/clothing/coloured_detective_hats.dmi b/icons/obj/clothing/coloured_detective_hats.dmi
new file mode 100644
index 00000000000..82f50f062e2
Binary files /dev/null and b/icons/obj/clothing/coloured_detective_hats.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 946b2b6179c..b73cc027223 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ