diff --git a/code/datums/trading/misc.dm b/code/datums/trading/misc.dm
index 903673274ff..b98be73595c 100644
--- a/code/datums/trading/misc.dm
+++ b/code/datums/trading/misc.dm
@@ -144,7 +144,6 @@
/obj/item/clothing/glasses/monocle = TRADER_THIS_TYPE,
/obj/item/clothing/mask/smokable/pipe = TRADER_THIS_TYPE,
/obj/item/clothing/mask/gas/plaguedoctor = TRADER_THIS_TYPE,
- /obj/item/clothing/suit/hastur = TRADER_THIS_TYPE,
/obj/item/clothing/suit/imperium_monk = TRADER_THIS_TYPE,
/obj/item/clothing/suit/judgerobe = TRADER_THIS_TYPE,
/obj/item/clothing/suit/wizrobe/magusred = TRADER_THIS_TYPE,
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index e21815376ab..9dac634e270 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -135,7 +135,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/storage/toggle/labcoat/mad(src.loc)
+ new /obj/item/clothing/suit/storage/toggle/labcoat(src.loc)
new /obj/item/clothing/glasses/regular(src.loc)
delete_me = 1
diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm
index c79a22f2c3c..86dc703e9d3 100644
--- a/code/game/objects/structures/coathanger.dm
+++ b/code/game/objects/structures/coathanger.dm
@@ -53,7 +53,5 @@
if (coat)
if(istype(coat, /obj/item/clothing/suit/storage/toggle))
var/obj/item/clothing/suit/storage/toggle/T = coat
- if(T.icon_state == T.icon_open) // avoid icon conflicts
- T.icon_state = T.icon_closed
- T.item_state = T.icon_closed
+ T.icon_state = initial(T.icon_state)
add_overlay("coat_[coat.icon_state]")
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 6bf2ea4213f..95c45dfbdf5 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -348,7 +348,7 @@
/obj/structure/closet/secure_closet/detective/fill()
//Appearance
- new /obj/item/clothing/suit/storage/toggle/det_jacket(src)
+ new /obj/item/clothing/suit/storage/det_jacket(src)
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/under/det/black(src)
new /obj/item/clothing/under/det/classic(src)
diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm
index 85938bfd899..88bcd6cb527 100644
--- a/code/modules/client/preference_setup/loadout/loadout_suit.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm
@@ -163,7 +163,6 @@
var/coat = list()
coat["brown trenchcoat (Detective)"] = /obj/item/clothing/suit/storage/toggle/det_trench
coat["black trenchcoat (Detective)"] = /obj/item/clothing/suit/storage/toggle/det_trench/black
- coat["technicolor trenchcoat (Detective)"] = /obj/item/clothing/suit/storage/toggle/det_trench/technicolor
gear_tweaks += new/datum/gear_tweak/path(coat)
diff --git a/code/modules/clothing/factions/dominia.dm b/code/modules/clothing/factions/dominia.dm
index 3337c448fb9..3c777da2934 100644
--- a/code/modules/clothing/factions/dominia.dm
+++ b/code/modules/clothing/factions/dominia.dm
@@ -55,23 +55,17 @@
icon = 'icons/clothing/suits/coats/dominia_noble_red.dmi'
icon_state = "dominia_noble_red"
item_state = "dominia_noble_red"
- icon_open = "dominia_noble_red_open"
- icon_closed = "dominia_noble_red"
contained_sprite = TRUE
/obj/item/clothing/suit/storage/toggle/dominia/gold
icon = 'icons/clothing/suits/coats/dominia_noble_gold.dmi'
icon_state = "dominia_noble_gold"
item_state = "dominia_noble_gold"
- icon_open = "dominia_noble_gold_open"
- icon_closed = "dominia_noble_gold"
/obj/item/clothing/suit/storage/toggle/dominia/black
icon = 'icons/clothing/suits/coats/dominia_noble_black.dmi'
icon_state = "dominia_noble_black"
item_state = "dominia_noble_black"
- icon_open = "dominia_noble_black_open"
- icon_closed = "dominia_noble_black"
/obj/item/clothing/suit/storage/toggle/dominia/bomber
name = "dominia bomber jacket"
@@ -79,8 +73,6 @@
icon = 'icons/clothing/suits/coats/dominia_bomber.dmi'
icon_state = "dominia_bomber"
item_state = "dominia_bomber"
- icon_open = "dominia_bomber_open"
- icon_closed = "dominia_bomber"
/obj/item/clothing/under/dominia
name = "dominia suit"
diff --git a/code/modules/clothing/factions/himeo.dm b/code/modules/clothing/factions/himeo.dm
index 055c4a233ce..8c2dd8ba97f 100644
--- a/code/modules/clothing/factions/himeo.dm
+++ b/code/modules/clothing/factions/himeo.dm
@@ -5,8 +5,6 @@
icon = 'icons/clothing/suits/coats/himeo_coat.dmi'
icon_state = "coat_himeo"
item_state = "coat_himeo"
- icon_open = "coat_himeo_open"
- icon_closed = "coat_himeo"
contained_sprite = TRUE
/obj/item/clothing/head/soft/himeo
@@ -17,4 +15,4 @@
icon = 'icons/clothing/head/himeo_cap.dmi'
icon_state = "cap_himeo"
item_state = "cap_himeo"
- contained_sprite = TRUE
\ No newline at end of file
+ contained_sprite = TRUE
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index 10e3dec7750..e5eb333acc4 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -199,29 +199,3 @@
/obj/item/clothing/head/det/grey
icon_state = "grey_fedora"
desc = "A grey fedora - either the cornerstone of a detective's style or a poor attempt at looking cool, depending on the person wearing it."
-
-/obj/item/clothing/head/det/technicolor
- desc = "A 23rd-century fedora. It's fibres are hyper-absorbent."
- icon = 'icons/obj/clothing/coloured_detective_hats.dmi'
- icon_state = "hat_detective_black"
- item_state = "hat_detective_black"
- var/hat_color
- contained_sprite = 1
-
-/obj/item/clothing/head/det/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)
- icon_state = "hat_detective_[color]"
- item_state = "hat_detective_[color]"
- . = ..()
-
-/obj/item/clothing/head/det/technicolor/attackby(obj/item/O as obj, mob/user as mob)
- if(istype(O, /obj/item/reagent_containers/glass/paint))
- var/obj/item/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 84efb6c0987..593a1e7996c 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -105,8 +105,6 @@
desc = "A trenchcoat lined with a protective alloy and some slick leather."
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)
allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/device/flashlight)
@@ -205,7 +203,6 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
-
//Reactive armor
//When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!)
/obj/item/clothing/suit/armor/reactive
@@ -413,8 +410,6 @@
desc = "A sturdy high-visibility vest intended for in training security personnel."
icon_state = "hazard_cadet"
item_state = "hazard_cadet"
- icon_open = "hazard_cadet_open"
- icon_closed = "hazard_cadet"
allowed = list(/obj/item/gun,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/device/flashlight)
armor = list(melee = 10, bullet = 0, laser = 10, energy = 10, bomb = 10, bio = 0, rad = 0)
siemens_coefficient = 0.5
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index d6ec63322e1..0910afbe949 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -29,7 +29,7 @@ obj/item/clothing/suit/apron/colored
/obj/item/clothing/suit/apron/overalls/random/Initialize()
. = ..()
color = get_random_colour(lower = 150)
-
+
obj/item/clothing/suit/apron/overalls/blue
color = "#3429d1"
@@ -123,10 +123,9 @@ obj/item/clothing/suit/apron/overalls/blue
//Detective
-/obj/item/clothing/suit/storage/toggle/det_jacket
+/obj/item/clothing/suit/storage/det_jacket
name = "detective's jacket"
- desc = "Stylish yet comfortable professional jacket manufactured by CL corporation for NT detectives. Unique fiber structure will offer moderate protection from various hazards investigators may encounter in the line of duty"
- icon = 'icons/obj/clothing/detective.dmi'
+ desc = "Stylish yet comfortable professional jacket manufactured by CL corporation for NT detectives. Unique fiber structure will offer moderate protection from various hazards investigators may encounter in the line of duty."
icon_state = "det"
item_state = "det"
blood_overlay_type = "coat"
@@ -142,8 +141,6 @@ obj/item/clothing/suit/apron/overalls/blue
icon_state = "detective"
item_state = "detective"
blood_overlay_type = "coat"
- icon_open = "detective_open"
- icon_closed = "detective"
body_parts_covered = UPPER_TORSO|ARMS
allowed = list(/obj/item/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/gun/energy,/obj/item/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/box/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/device/taperecorder)
armor = list(melee = 50, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
@@ -153,40 +150,6 @@ obj/item/clothing/suit/apron/overalls/blue
/obj/item/clothing/suit/storage/toggle/det_trench/black
name = "black trenchcoat"
icon_state = "detective2"
- icon_open = "detective2_open"
- icon_closed = "detective2"
-
-/obj/item/clothing/suit/storage/toggle/det_trench/technicolor
- name = "black trenchcoat"
- desc = "A 23rd-century multi-purpose trenchcoat. It's fibres are hyper-absorbent."
- icon_state = "suit_detective_black"
- item_state = "suit_detective_black"
- icon_open = "suit_detective_black_open"
- icon_closed = "suit_detective_black"
- var/suit_color
-
-/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/toggle/det_trench/technicolor/attackby(obj/item/O as obj, mob/user as mob)
- if(istype(O, /obj/item/reagent_containers/glass/paint))
- var/obj/item/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
@@ -213,31 +176,26 @@ obj/item/clothing/suit/apron/overalls/blue
desc = "A high-visibility vest used in work zones."
icon_state = "hazard"
item_state = "hazard"
- var/icon_open = "hazard_open"
- var/icon_closed = "hazard"
blood_overlay_type = "armor"
allowed = list (/obj/item/device/analyzer, /obj/item/device/flashlight, /obj/item/device/multitool, /obj/item/device/pipe_painter, /obj/item/device/radio, /obj/item/device/t_scanner, \
/obj/item/crowbar, /obj/item/screwdriver, /obj/item/weldingtool, /obj/item/wirecutters, /obj/item/wrench, /obj/item/tank/emergency_oxygen, \
/obj/item/clothing/mask/gas, /obj/item/taperoll/engineering)
body_parts_covered = UPPER_TORSO
+ var/opened
/obj/item/clothing/suit/storage/hazardvest/verb/Toggle() //copied from storage toggle
set name = "Toggle Hazard Vest"
set category = "Object"
set src in usr
+
if(use_check_and_message(usr))
- return FALSE
- if(icon_state == icon_open)
- item_state = icon_closed
- icon_state = icon_closed
- to_chat(usr, SPAN_NOTICE("You zip up the hazard vest."))
- else if(icon_state == icon_closed)
- item_state = icon_open
- icon_state = icon_open
- to_chat(usr, SPAN_NOTICE("You unzip the hazard vest."))
- else
- to_chat(usr, SPAN_NOTICE("You attempt to zip up your [src], before promptly realising how silly you are."))
- return
+ return 0
+
+ opened = !opened
+ to_chat(usr, SPAN_NOTICE("You [opened ? "unzip" : "zip"] \the [src]."))
+ playsound(src, 'sound/items/zip.ogg', EQUIP_SOUND_VOLUME, TRUE)
+ icon_state = "[initial(icon_state)][opened ? "_open" : ""]"
+ item_state = icon_state
update_clothing_icon()
/obj/item/clothing/suit/storage/hazardvest/blue
@@ -245,8 +203,6 @@ obj/item/clothing/suit/apron/overalls/blue
desc = "A high-visibility vest used in work zones. This one is blue."
icon_state = "hazard_b"
item_state = "hazard_b"
- icon_open = "hazard_b_open"
- icon_closed = "hazard_b"
/obj/item/clothing/suit/storage/hazardvest/blue/atmos
name = "atmospheric hazard vest"
@@ -257,88 +213,76 @@ obj/item/clothing/suit/apron/overalls/blue
desc = "A high-visibility vest used in work zones. This one is white."
icon_state = "hazard_w"
item_state = "hazard_w"
- icon_open = "hazard_w_open"
- icon_closed = "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."
icon_state = "hazard_g"
item_state = "hazard_g"
- icon_open = "hazard_g_open"
- icon_closed = "hazard_g"
//Lawyer
/obj/item/clothing/suit/storage/toggle/lawyer/bluejacket
- name = "blue suit Jacket"
+ name = "blue suit jacket"
desc = "A snappy dress jacket."
- icon_state = "suitjacket_blue_open"
- item_state = "suitjacket_blue_open"
- icon_open = "suitjacket_blue_open"
- icon_closed = "suitjacket_blue"
+ icon_state = "suitjacket_blue"
+ item_state = "suitjacket_blue"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
+ opened = TRUE
/obj/item/clothing/suit/storage/lawyer/purpjacket
- name = "blue suit Jacket"
+ name = "purple suit jacket"
desc = "A snappy dress jacket."
icon_state = "suitjacket_purp"
item_state = "suitjacket_purp"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
-
//Internal Affairs
/obj/item/clothing/suit/storage/toggle/liaison
name = "liaison jacket"
desc = "A smooth black jacket."
- icon_state = "ia_jacket_open"
+ icon_state = "ia_jacket"
item_state = "ia_jacket"
- icon_open = "ia_jacket_open"
- icon_closed = "ia_jacket"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
+ opened = TRUE
//Resprited from IAA jacket
/obj/item/clothing/suit/storage/toggle/suitjacket
name = "suit jacket"
desc = "A snappy dress jacket."
- icon_state = "suitjacket_open"
- item_state = "suitjacket_open"
- icon_open = "suitjacket_open"
- icon_closed = "suitjacket"
+ icon_state = "suitjacket"
+ item_state = "suitjacket"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
+ opened = TRUE
/obj/item/clothing/suit/storage/toggle/suitjacket/blazer
name = "blazer"
desc = "A charming jacket."
desc_fluff = "for when you want to play ball sports like an aristocrat."
- icon_state = "blazer_open"
- item_state = "blazer_open"
- icon_open = "blazer_open"
- icon_closed = "blazer"
+ icon_state = "blazer"
+ item_state = "blazer"
+ opened = TRUE
//Medical
/obj/item/clothing/suit/storage/toggle/fr_jacket
name = "first responder jacket"
desc = "A high-visibility jacket worn by medical first responders."
- icon_state = "fr_jacket_open"
+ icon_state = "fr_jacket"
item_state = "fr_jacket"
- icon_open = "fr_jacket_open"
- icon_closed = "fr_jacket"
blood_overlay_type = "armor"
allowed = list(/obj/item/stack/medical, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/syringe, \
/obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/tank/emergency_oxygen, /obj/item/device/breath_analyzer, /obj/item/reagent_containers/blood)
body_parts_covered = UPPER_TORSO|ARMS
+ opened = TRUE
/obj/item/clothing/suit/storage/toggle/fr_jacket/ems
name = "\improper EMS jacket"
desc = "A dark blue, martian-pattern, EMS jacket. It sports high-visibility reflective stripes and a star of life on the back."
- icon_state = "ems_jacket_closed"
- item_state = "ems_jacket_closed"
- icon_open = "ems_jacket_open"
- icon_closed = "ems_jacket_closed"
+ icon_state = "ems_jacket"
+ item_state = "ems_jacket"
/obj/item/clothing/suit/storage/medical_chest_rig
name = "medic chest-rig"
@@ -374,5 +318,3 @@ obj/item/clothing/suit/apron/overalls/blue
contained_sprite = TRUE
icon_state = "emtjacket"
item_state = "emtjacket"
- icon_open = "emtjacket-open"
- icon_closed = "emtjacket"
\ No newline at end of file
diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm
index 4e62bae6900..fb8b9148e19 100644
--- a/code/modules/clothing/suits/labcoat.dm
+++ b/code/modules/clothing/suits/labcoat.dm
@@ -1,154 +1,83 @@
/obj/item/clothing/suit/storage/toggle/labcoat
name = "labcoat"
desc = "A suit that protects against minor chemical spills."
- icon_state = "labcoat_open"
- item_state = "labcoat" //Is this even used for anything?
- icon_open = "labcoat_open"
- icon_closed = "labcoat"
+ icon_state = "labcoat"
+ item_state = "labcoat" // used for inhands and onmobs. ESPECIALLY FOR CONTAINED SPRITES
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper, /obj/item/device/breath_analyzer)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
-
-/obj/item/clothing/suit/storage/toggle/labcoat/red
- name = "red labcoat"
- desc = "A suit that protects against minor chemical spills. This one is red."
- icon_state = "red_labcoat_open"
- item_state = "red_labcoat"
- icon_open = "red_labcoat_open"
- icon_closed = "red_labcoat"
-
-/obj/item/clothing/suit/storage/toggle/labcoat/blue
- name = "blue labcoat"
- desc = "A suit that protects against minor chemical spills. This one is blue."
- icon_state = "blue_labcoat_open"
- item_state = "blue_labcoat"
- icon_open = "blue_labcoat_open"
- icon_closed = "blue_labcoat"
-
-/obj/item/clothing/suit/storage/toggle/labcoat/purple
- name = "purple labcoat"
- desc = "A suit that protects against minor chemical spills. This one is purple."
- icon_state = "purple_labcoat_open"
- item_state = "purple_labcoat"
- icon_open = "purple_labcoat_open"
- icon_closed = "purple_labcoat"
-
-/obj/item/clothing/suit/storage/toggle/labcoat/orange
- name = "orange labcoat"
- desc = "A suit that protects against minor chemical spills. This one is orange."
- icon_state = "orange_labcoat_open"
- item_state = "orange_labcoat"
- icon_open = "orange_labcoat_open"
- icon_closed = "orange_labcoat"
-
-/obj/item/clothing/suit/storage/toggle/labcoat/green
- name = "green labcoat"
- desc = "A suit that protects against minor chemical spills. This one is green."
- icon_state = "green_labcoat_open"
- item_state = "green_labcoat"
- icon_open = "green_labcoat_open"
- icon_closed = "green_labcoat"
+ opened = TRUE // spawns opened
/obj/item/clothing/suit/storage/toggle/labcoat/cmo
name = "chief medical officer's labcoat"
desc = "Bluer than the standard model."
- icon_state = "labcoat_cmo_open"
+ icon_state = "labcoat_cmo"
item_state = "labcoat_cmo"
- icon_open = "labcoat_cmo_open"
- icon_closed = "labcoat_cmo"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt
name = "chief medical officer labcoat"
desc = "A labcoat with command blue highlights."
- icon_state = "labcoat_cmoalt_open"
- icon_open = "labcoat_cmoalt_open"
- icon_closed = "labcoat_cmoalt"
+ icon_state = "labcoat_cmoalt"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt2
name = "chief medical officer labcoat"
desc = "A labcoat with command gold highlights."
- icon_state = "labcoat_cmoalt2_open"
- icon_open = "labcoat_cmoalt2_open"
- icon_closed = "labcoat_cmoalt2"
+ icon_state = "labcoat_cmoalt2"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
-/obj/item/clothing/suit/storage/toggle/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"
- icon_open = "labgreen_open"
- icon_closed = "labgreen"
-
/obj/item/clothing/suit/storage/toggle/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"
- icon_open = "labcoat_gen_open"
- icon_closed = "labcoat_gen"
+ icon_state = "labcoat_gen"
/obj/item/clothing/suit/storage/toggle/labcoat/medical
name = "medical 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_med_open"
- icon_open = "labcoat_med_open"
- icon_closed = "labcoat_med"
+ icon_state = "labcoat_med"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/pharmacist
name = "pharmacist labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has an orange stripe on the shoulder."
- icon_state = "labcoat_chem_open"
- icon_open = "labcoat_chem_open"
- icon_closed = "labcoat_chem"
+ icon_state = "labcoat_chem"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/biochemist
name = "protective labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a red stripe on the shoulder."
- icon_state = "labcoat_vir_open"
- icon_open = "labcoat_vir_open"
- icon_closed = "labcoat_vir"
+ icon_state = "labcoat_vir"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/psych
name = "psychiatrist labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a teal stripe on the shoulder."
- icon_state = "labcoat_psych_open"
- icon_open = "labcoat_psych_open"
- icon_closed = "labcoat_psych"
+ icon_state = "labcoat_psych"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/surgeon
name = "surgeon labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a light blue stripe on the shoulder."
- icon_state = "labcoat_surgeon_open"
- icon_open = "labcoat_surgeon_open"
- icon_closed = "labcoat_surgeon"
+ icon_state = "labcoat_surgeon"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/trauma
name = "trauma physician labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a black stripe on the shoulder."
- icon_state = "labcoat_trauma_open"
- icon_open = "labcoat_trauma_open"
- icon_closed = "labcoat_trauma"
+ icon_state = "labcoat_trauma"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/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"
- icon_open = "labcoat_tox_open"
- icon_closed = "labcoat_tox"
+ icon_state = "labcoat_tox"
/obj/item/clothing/suit/storage/iacvest
desc = "It's a lightweight vest. Made of a dark, navy mesh with highly-reflective white material, designed to be worn by the Interstellar Aid Corps as a high-visibility vest, over any other clothing. The I.A.C. logo is prominently displayed on the back of the vest, between the shoulders."
name = "IAC vest"
- icon_state = "iac_vest_s"
+ icon_state = "iac_vest"
item_state = "iac_vest"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 5, rad = 0)
@@ -156,23 +85,17 @@
/obj/item/clothing/suit/storage/toggle/labcoat/zeng
name = "zeng-hu labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Zeng-Hu colours."
- icon_state = "labcoat_zeng_open"
- icon_open = "labcoat_zeng_open"
- icon_closed = "labcoat_zeng"
+ icon_state = "labcoat_zeng"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi
name = "Zavodskoi Interstellar labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Zavodskoi Interstellar colours."
- icon_state = "labcoat_necro_open"
- icon_open = "labcoat_necro_open"
- icon_closed = "labcoat_necro"
+ icon_state = "labcoat_necro"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/heph
name = "hephaestus labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Hephaestus colours."
- icon_state = "labcoat_heph_open"
- icon_open = "labcoat_heph_open"
- icon_closed = "labcoat_heph"
+ icon_state = "labcoat_heph"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 3b535b72178..bde567292a4 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -99,15 +99,6 @@
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|HANDS|LEGS|FEET
-/obj/item/clothing/suit/hastur
- name = "hastur's robes"
- desc = "Robes not meant to be worn by man"
- icon_state = "hastur"
- item_state = "hastur"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
-
-
/obj/item/clothing/suit/imperium_monk
name = "imperium monk"
desc = "Have YOU killed a xenos today?"
@@ -213,8 +204,6 @@
desc = "A thick, well-worn WW2 leather bomber jacket."
icon_state = "bomber"
item_state = "bomber"
- icon_open = "bomber_open"
- icon_closed = "bomber"
body_parts_covered = UPPER_TORSO|ARMS
cold_protection = UPPER_TORSO|ARMS
min_cold_protection_temperature = T0C - 20
@@ -225,23 +214,17 @@
desc = "A black leather coat."
icon_state = "leather_jacket"
item_state = "leather_jacket"
- icon_open = "leather_jacket_open"
- icon_closed = "leather_jacket"
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen
desc = "A black leather coat. A corporate logo is proudly displayed on the back."
icon_state = "leather_jacket_nt"
- icon_open = "leather_jacket_nt_open"
- icon_closed = "leather_jacket_nt"
/obj/item/clothing/suit/storage/toggle/leather_vest
name = "leather vest"
desc = "A black leather vest."
icon_state = "leather_jacket_sleeveless"
item_state = "leather_jacket_sleeveless"
- icon_open = "leather_jacket_sleeveless_open"
- icon_closed = "leather_jacket_sleeveless"
body_parts_covered = UPPER_TORSO
/obj/item/clothing/suit/storage/toggle/leather_jacket/biker
@@ -249,56 +232,40 @@
desc = "A thick, black leather jacket with silver zippers and buttons, crafted to evoke the image of rebellious space-biker gangs."
icon_state = "biker"
item_state = "biker"
- icon_open = "biker_open"
- icon_closed = "biker"
/obj/item/clothing/suit/storage/toggle/leather_jacket/designer
name = "designer leather jacket"
desc = "A sophisticated, stylish leather jacket. It doesn't look cheap."
icon_state = "designer_jacket"
item_state = "designer_jacket"
- icon_open = "designer_jacket_open"
- icon_closed = "designer_jacket"
/obj/item/clothing/suit/storage/toggle/leather_jacket/designer/black
icon_state = "blackdesigner_jacket"
item_state = "blackdesigner_jacket"
- icon_open = "blackdesigner_jacket_open"
- icon_closed = "blackdesigner_jacket"
/obj/item/clothing/suit/storage/toggle/leather_jacket/designer/red
icon_state = "reddesigner_jacket"
item_state = "reddesigner_jacket"
- icon_open = "reddesigner_jacket_open"
- icon_closed = "reddesigner_jacket"
/obj/item/clothing/suit/storage/toggle/leather_jacket/flight
name = "flight jacket"
desc = "A modern pilot's jacket made from a silky, shiny nanonylon material. Not to be confused with the vintage stylings of a bomber jacket."
icon_state = "flight"
item_state = "flight"
- icon_open = "flight_open"
- icon_closed = "flight"
/obj/item/clothing/suit/storage/toggle/leather_jacket/flight/green
icon_state = "gflight"
item_state = "gflight"
- icon_open = "gflight_open"
- icon_closed = "gflight"
/obj/item/clothing/suit/storage/toggle/leather_jacket/flight/white
icon_state = "wflight"
item_state = "wflight"
- icon_open = "wflight_open"
- icon_closed = "wflight"
/obj/item/clothing/suit/storage/toggle/leather_jacket/flight/legion
name = "tcfl flight jacket"
desc = "A Tau Ceti Foreign Legion pilot's jacket. This is the more common, less durable variety, which typically finds itself percolating amongst all ranks of the TCFL."
icon_state = "lflight"
item_state = "lflight"
- icon_open = "lflight_open"
- icon_closed = "lflight"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
siemens_coefficient = 0.75
@@ -312,15 +279,11 @@
desc = "A military-styled jacket made from thick, distressed canvas. Popular among Martian punks. Patches not included."
icon_state = "mgreen"
item_state = "mgreen"
- icon_open = "mgreen_open"
- icon_closed = "mgreen"
allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/device/flashlight, /obj/item/tank/emergency_oxygen, /obj/item/storage/box/fancy/matches, /obj/item/reagent_containers/food/drinks/flask)
/obj/item/clothing/suit/storage/toggle/leather_jacket/military/tan
icon_state = "mtan"
item_state = "mtan"
- icon_open = "mtan_open"
- icon_closed = "mtan"
/obj/item/clothing/suit/storage/toggle/leather_jacket/military/old
name = "old military jacket"
@@ -338,8 +301,6 @@
desc = "A brown leather coat."
icon_state = "brown_jacket"
item_state = "brown_jacket"
- icon_open = "brown_jacket_open"
- icon_closed = "brown_jacket"
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless
@@ -347,67 +308,49 @@
desc = "A brown leather vest."
icon_state = "brown_jacket_sleeveless"
item_state = "brown_jacket_sleeveless"
- icon_open = "brown_jacket_sleeveless_open"
- icon_closed = "brown_jacket_sleeveless"
body_parts_covered = UPPER_TORSO
/obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen
desc = "A brown leather coat. A corporate logo is proudly displayed on the back."
icon_state = "brown_jacket_nt"
- icon_open = "brown_jacket_nt_open"
- icon_closed = "brown_jacket_nt"
/obj/item/clothing/suit/storage/toggle/flannel
name = "green flannel shirt"
desc = "A flannel shirt, for all your space hipster needs."
icon_state = "flannel_green"
item_state = "flannel_green"
- icon_open = "flannel_green_open"
- icon_closed = "flannel_green"
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/toggle/flannel/red
name = "red flannel shirt"
icon_state = "flannel_red"
item_state = "flannel_red"
- icon_open = "flannel_red_open"
- icon_closed = "flannel_red"
/obj/item/clothing/suit/storage/toggle/flannel/blue
name = "blue flannel shirt"
icon_state = "flannel_blue"
item_state = "flannel_blue"
- icon_open = "flannel_blue_open"
- icon_closed = "flannel_blue"
/obj/item/clothing/suit/storage/toggle/flannel/gray
name = "grey flannel shirt"
icon_state = "flannel_gray"
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"
item_state = "flannel_yellow"
- icon_open = "flannel_yellow_open"
- icon_closed = "flannel_yellow"
/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
@@ -415,8 +358,6 @@
name = "grey trenchcoat"
icon_state = "trench2"
item_state = "trench2"
- icon_open = "trench2_open"
- icon_closed = "trench2"
blood_overlay_type = "coat"
/obj/item/clothing/suit/storage/toggle/trench/alt
@@ -424,24 +365,18 @@
desc = "A sleek canvas trenchcoat"
icon_state = "trenchcoat_brown"
item_state = "trenchcoat_brown"
- icon_open = "trenchcoat_brown_open"
- icon_closed = "trenchcoat_brown"
/obj/item/clothing/suit/storage/toggle/trench/grey_alt
name = "grey trenchcoat"
desc = "A sleek canvas trenchcoat"
icon_state = "trenchcoat_grey"
item_state = "trenchcoat_grey"
- icon_open = "trenchcoat_grey_open"
- icon_closed = "trenchcoat_grey"
/obj/item/clothing/suit/storage/toggle/trench/colorable
name = "trenchcoat"
desc = "A sleek canvas trenchcoat"
icon_state = "trench_colorable"
item_state = "trench_colorable"
- icon_open = "trench_colorable_open"
- icon_closed = "trench_colorable"
/obj/item/clothing/suit/storage/toggle/trench/colorable/random/Initialize()
. = ..()
@@ -453,91 +388,64 @@
icon = 'icons/obj/tracksuit.dmi'
icon_state = "trackjacket"
item_state = "trackjacket"
- icon_open = "trackjacket_open"
- icon_closed = "trackjacket"
allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/device/flashlight, /obj/item/tank/emergency_oxygen, /obj/item/storage/box/fancy/cigarettes, /obj/item/storage/box/fancy/matches, /obj/item/reagent_containers/food/drinks/flask)
- contained_sprite = 1
+ contained_sprite = TRUE
/obj/item/clothing/suit/storage/toggle/track/blue
name = "blue track jacket"
icon = 'icons/obj/tracksuit.dmi'
icon_state = "trackjacketblue"
item_state = "trackjacketblue"
- icon_open = "trackjacketblue_open"
- icon_closed = "trackjacketblue"
- contained_sprite = 1
/obj/item/clothing/suit/storage/toggle/track/green
name = "green track jacket"
icon = 'icons/obj/tracksuit.dmi'
icon_state = "trackjacketgreen"
item_state = "trackjacketgreen"
- icon_open = "trackjacketgreen_open"
- icon_closed = "trackjacketgreen"
- contained_sprite = 1
/obj/item/clothing/suit/storage/toggle/track/red
name = "red track jacket"
icon = 'icons/obj/tracksuit.dmi'
icon_state = "trackjacketred"
item_state = "trackjacketred"
- icon_open = "trackjacketred_open"
- icon_closed = "trackjacketred"
- contained_sprite = 1
/obj/item/clothing/suit/storage/toggle/track/white
name = "white track jacket"
icon = 'icons/obj/tracksuit.dmi'
icon_state = "trackjacketwhite"
item_state = "trackjacketwhite"
- icon_open = "trackjacketwhite_open"
- icon_closed = "trackjacketwhite"
- contained_sprite = 1
/obj/item/clothing/suit/storage/toggle/varsity
name = "black varsity jacket"
desc = "A favorite of jocks everywhere from Sol to the Coalition."
icon_state = "varsity"
item_state = "varsity"
- icon_open = "varsity_open"
- icon_closed = "varsity"
allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/device/flashlight, /obj/item/tank/emergency_oxygen, /obj/item/storage/box/fancy/matches, /obj/item/reagent_containers/food/drinks/flask)
/obj/item/clothing/suit/storage/toggle/varsity/red
name = "red varsity jacket"
icon_state = "varsity_red"
item_state = "varsity_red"
- icon_open = "varsity_red_open"
- icon_closed = "varsity_red"
/obj/item/clothing/suit/storage/toggle/varsity/purple
name = "purple varsity jacket"
icon_state = "varsity_purple"
item_state = "varsity_purple"
- icon_open = "varsity_purple_open"
- icon_closed = "varsity_purple"
/obj/item/clothing/suit/storage/toggle/varsity/green
name = "green varsity jacket"
icon_state = "varsity_green"
item_state = "varsity_green"
- icon_open = "varsity_green_open"
- icon_closed = "varsity_green"
/obj/item/clothing/suit/storage/toggle/varsity/blue
name = "blue varsity jacket"
icon_state = "varsity_blue"
item_state = "varsity_blue"
- icon_open = "varsity_blue_open"
- icon_closed = "varsity_blue"
/obj/item/clothing/suit/storage/toggle/varsity/brown
name = "brown varsity jacket"
icon_state = "varsity_brown"
item_state = "varsity_brown"
- icon_open = "varsity_brown_open"
- icon_closed = "varsity_brown"
-
/obj/item/clothing/suit/storage/legion
name = "tcfl jacket"
desc = "A pale blue canvas jacket embossed with the insignia of the Tau Ceti Foreign Legion."
@@ -561,8 +469,6 @@
desc = "A well-tailored, stylish peacoat."
icon_state = "peacoat"
item_state = "peacoat"
- icon_open = "peacoat_open"
- icon_closed = "peacoat"
/*
* Department Jackets
@@ -572,48 +478,36 @@
desc = "A cozy jacket in engineering's colors, featuring spacious pockets you won't even use."
icon_state = "engi_dep_jacket"
item_state = "engi_dep_jacket"
- icon_open = "engi_dep_jacket_open"
- icon_closed = "engi_dep_jacket"
/obj/item/clothing/suit/storage/toggle/supply_dep_jacket
name = "supply department jacket"
desc = "A cozy jacket in supply's colors, perfect for folding up and forgetting bounty lists."
icon_state = "supply_dep_jacket"
item_state = "supply_dep_jacket"
- icon_open = "supply_dep_jacket_open"
- icon_closed = "supply_dep_jacket"
/obj/item/clothing/suit/storage/toggle/sci_dep_jacket
name = "science department jacket"
desc = "A cozy jacket in science's colors, offering the latest in a complete lack of protection against chemical spills."
icon_state = "sci_dep_jacket"
item_state = "sci_dep_jacket"
- icon_open = "sci_dep_jacket_open"
- icon_closed = "sci_dep_jacket"
/obj/item/clothing/suit/storage/toggle/med_dep_jacket
name = "medical department jacket"
desc = "A cozy jacket in medical's colors, guaranteed not to leak the latest gossip."
icon_state = "med_dep_jacket"
item_state = "med_dep_jacket"
- icon_open = "med_dep_jacket_open"
- icon_closed = "med_dep_jacket"
/obj/item/clothing/suit/storage/toggle/sec_dep_jacket
name = "security department jacket"
desc = "A cozy jacket in security's colors, luckily able to be easily cleaned of blood stains"
icon_state = "sec_dep_jacket"
item_state = "sec_dep_jacket"
- icon_open = "sec_dep_jacket_open"
- icon_closed = "sec_dep_jacket"
/obj/item/clothing/suit/storage/toggle/serv_dep_jacket
name = "service department jacket"
desc = "A cozy jacket in service's colors, reminding many employees that even service has colors."
icon_state = "serv_dep_jacket"
item_state = "serv_dep_jacket"
- icon_open = "serv_dep_jacket_open"
- icon_closed = "serv_dep_jacket"
/obj/item/clothing/suit/storage/fib
name = "\improper FIB agent jacket"
@@ -629,8 +523,6 @@
desc_fluff = "Only slightly worse than a blanket."
icon_state = "cardigan"
item_state = "cardigan"
- icon_open = "cardigan_open"
- icon_closed = "cardigan"
/obj/item/clothing/suit/storage/toggle/cardigan/sweater
name = "sweater cardigan"
@@ -638,8 +530,6 @@
desc_fluff = "Half as warm as a sweater, and half as fashionable as a cardigan. Not like it matters for coffee-house dwelling beatniks like yourself."
icon_state = "cardigansweater"
item_state = "cardigansweater"
- icon_open = "cardigansweater_open"
- icon_closed = "cardigansweater"
/obj/item/clothing/suit/storage/toggle/cardigan/argyle
name = "argyle cardigan"
@@ -647,9 +537,6 @@
desc_fluff = "You'll never get dumped if you never get in a relationship in the first place. With this, you'll never have to worry again."
icon_state = "cardiganargyle"
item_state = "cardiganargyle"
- icon_open = "cardiganargyle_open"
- icon_closed = "cardiganargyle"
-
/obj/item/clothing/suit/fake_cultrobes
name = "occultist robes"
diff --git a/code/modules/clothing/suits/storage.dm b/code/modules/clothing/suits/storage.dm
index 81f4b82067e..765d07c11ca 100644
--- a/code/modules/clothing/suits/storage.dm
+++ b/code/modules/clothing/suits/storage.dm
@@ -37,29 +37,31 @@
//Jackets with buttons
/obj/item/clothing/suit/storage/toggle
- var/icon_open
- var/icon_closed
+ var/opened = FALSE
/obj/item/clothing/suit/storage/toggle/verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
set src in usr
- if(!usr.canmove || usr.stat || usr.restrained())
+
+ if(use_check_and_message(usr))
return 0
- if(icon_state == icon_open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
- icon_state = icon_closed
- item_state = icon_closed
- to_chat(usr, "You button up \the [src].")
- else if(icon_state == icon_closed)
- icon_state = icon_open
- item_state = icon_open
- to_chat(usr, "You unbutton \the [src].")
- else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
- to_chat(usr, "You attempt to button-up the velcro on \the [src], before promptly realising how silly you are.")
- return
- update_clothing_icon() //so our overlays update
+ toggle_open()
+/obj/item/clothing/suit/storage/toggle/proc/toggle_open()
+ opened = !opened
+ to_chat(usr, SPAN_NOTICE("You [opened ? "unbutton" : "button up"] \the [src]."))
+ playsound(src, /decl/sound_category/rustle_sound, EQUIP_SOUND_VOLUME, TRUE)
+ icon_state = "[initial(icon_state)][opened ? "_open" : ""]"
+ item_state = icon_state
+ update_clothing_icon()
+
+/obj/item/clothing/suit/storage/toggle/Initialize()
+ . = ..()
+ if(opened) // for stuff that's supposed to spawn opened, like labcoats.
+ icon_state = "[initial(icon_state)][opened ? "_open" : ""]"
+ item_state = icon_state
/obj/item/clothing/suit/storage/vest/merc/Initialize()
. = ..()
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index 1dc90e985c8..e251011badb 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -107,8 +107,6 @@
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)
diff --git a/code/modules/clothing/suits/xeno/tajara.dm b/code/modules/clothing/suits/xeno/tajara.dm
index 82716a419ac..1da100292d7 100644
--- a/code/modules/clothing/suits/xeno/tajara.dm
+++ b/code/modules/clothing/suits/xeno/tajara.dm
@@ -4,8 +4,6 @@
icon = 'icons/obj/tajara_items.dmi'
icon_state = "medcoat"
item_state = "medcoat"
- icon_open = "medcoat_open"
- icon_closed = "medcoat"
contained_sprite = TRUE
desc_fluff = "Today the fashion that dominates Adhomai shares few similarities to the clothing of old Furs, linen, hemp, silk and other such fabrics were traded for \
synthetic versions, creating a massive boom in the nylon industry and textile industry in the cities. Jeans, overcoats, army uniforms, parade uniforms, flags, pants, shirts, ties, \
@@ -46,8 +44,6 @@
icon = 'icons/obj/tajara_items.dmi'
icon_state = "navalcoat"
item_state = "navalcoat"
- icon_open = "navalcoat_open"
- icon_closed = "navalcoat"
contained_sprite = TRUE
desc_fluff = "Today the fashion that dominates Adhomai shares few similarities to the clothing of old Furs, linen, hemp, silk and other such fabrics were traded for \
synthetic versions, creating a massive boom in the nylon industry and textile industry in the cities. Jeans, overcoats, army uniforms, parade uniforms, flags, pants, shirts, ties, \
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index cb8d4355503..65832fe379a 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -313,8 +313,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/ryan_jacket.dmi'
icon_state = "ryan_jacket"
item_state = "ryan_jacket"
- icon_open = "ryan_jacket_open"
- icon_closed = "ryan_jacket"
contained_sprite = TRUE
@@ -380,14 +378,12 @@ All custom items with worn sprites must follow the contained sprite system: http
item_state = "leo_hat"
contained_sprite = TRUE
-/obj/item/clothing/suit/storage/toggle/det_trench/fluff/leo_coat //Tagged brown coat - Leo Wyatt - keinto
+/obj/item/clothing/suit/storage/det_trench/fluff/leo_coat //Tagged brown coat - Leo Wyatt - keinto
name = "tagged brown coat"
desc = "A worn mid 20th century brown trenchcoat. If you look closely at bottom of the back, you can see an embedded tag from the \"Museum of Terran Culture and Technology\"."
icon = 'icons/obj/custom_items/leo_coat.dmi'
icon_state = "leo_coat"
item_state = "leo_coat"
- icon_open = "leo_coat"
- icon_closed = "leo_coat"
contained_sprite = TRUE
@@ -782,8 +778,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/nelson_jacket.dmi'
icon_state = "nelson_jacket"
item_state = "nelson_jacket"
- icon_open = "nelson_jacket_open"
- icon_closed = "nelson_jacket"
contained_sprite = TRUE
@@ -899,8 +893,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/volvalaad_items.dmi'
icon_state = "volvalaad_jacket"
item_state = "volvalaad_jacket"
- icon_open = "volvalaad_jacket_open"
- icon_closed = "volvalaad_jacket"
contained_sprite = TRUE
/obj/item/clothing/suit/storage/toggle/fluff/volvalaad_coat //Dominian Noble Coat - Richard Volvalaad - t1gws
@@ -909,8 +901,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/volvalaad_items.dmi'
icon_state = "volvalaad_coat"
item_state = "volvalaad_coat"
- icon_open = "volvalaad_coat_open"
- icon_closed = "volvalaad_coat"
contained_sprite = TRUE
@@ -1269,8 +1259,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/talon_coat.dmi'
icon_state = "talon_coat"
item_state = "talon_coat"
- icon_open = "talon_coat_open"
- icon_closed = "talon_coat"
contained_sprite = TRUE
@@ -1431,8 +1419,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/mira_clothing.dmi'
icon_state = "mira_robes"
item_state = "mira_robes"
- icon_open = "mira_robes_open"
- icon_closed = "mira_robes"
contained_sprite = TRUE
/obj/item/clothing/shoes/fluff/mira_boots //Mira Boots - Mira Akhandi - drwago
@@ -1775,8 +1761,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/likho_labcoat.dmi'
icon_state = "likho_labcoat"
item_state = "likho_labcoat"
- icon_open = "likho_labcoat_open"
- icon_closed = "likho_labcoat"
contained_sprite = TRUE
@@ -1786,8 +1770,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/ramit_jacket.dmi'
icon_state = "ramit_jacket"
item_state = "ramit_jacket"
- icon_open = "ramit_jacket_open"
- icon_closed = "ramit_jacket"
contained_sprite = TRUE
@@ -1806,8 +1788,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/takahashi_uniform.dmi'
icon_state = "takahashi_coat"
item_state = "takahashi_coat"
- icon_open = "takahashi_coat_open"
- icon_closed = "takahashi_coat"
contained_sprite = TRUE
@@ -2198,8 +2178,6 @@ All custom items with worn sprites must follow the contained sprite system: http
icon = 'icons/obj/custom_items/mekesatis_holocoat.dmi'
icon_state = "mekesatis_labcoat"
item_state = "mekesatis_labcoat"
- icon_open = "mekesatis_labcoat_open"
- icon_closed = "mekesatis_labcoat"
contained_sprite = TRUE
var/changed = FALSE
var/changing = FALSE
@@ -2221,31 +2199,30 @@ All custom items with worn sprites must follow the contained sprite system: http
graduation. - Teremun A. M."))
return
+/obj/item/clothing/suit/storage/toggle/labcoat/fluff/mekesatis_labcoat/toggle_open()
+ if(!changing)
+ opened = !opened
+ to_chat(usr, SPAN_NOTICE("You [opened ? "unbutton" : "button up"] \the [src]."))
+ playsound(src, /decl/sound_category/rustle_sound, EQUIP_SOUND_VOLUME, TRUE)
+ icon_state = "mekesatis_[changed ? "holocoat" : "labcoat"][opened ? "_open" : ""]"
+ item_state = icon_state
+ update_clothing_icon()
+
/obj/item/clothing/suit/storage/toggle/labcoat/fluff/mekesatis_labcoat/verb/activate_holocoat()
set name = "Toggle Holocoat"
set category = "Object"
set src in usr
- if (use_check_and_message(usr))
+ if(use_check_and_message(usr))
return
if(changing)
return
- if(!changed)
- usr.visible_message("With a subtle gesture, the labcoat flickers activate!")
- icon_state = "mekesatis_holocoat_t"
- item_state = "mekesatis_holocoat_t"
- icon_open = "mekesatis_holocoat_t_open"
- icon_closed = "mekesatis_holocoat_t"
- flick("mekesatis_holocoat_t", src)
-
- else
- usr.visible_message("With a subtle gesture, the holocoat fades to a normal labcoat.")
- icon_state = "mekesatis_labcoat_r"
- item_state = "mekesatis_labcoat_r"
- icon_open = "mekesatis_labcoat_r_open"
- icon_closed = "mekesatis_labcoat_r"
+ usr.visible_message("With a subtle gesture, [changed ? "the holocoat fades to a normal labcoat." : "the labcoat flickers in activity!"]")
+ icon_state = "mekesatis_[changed ? "labcoat_r" : "holocoat_t"][opened ? "_open" : ""]"
+ item_state = icon_state
+ flick("mekesatis_[changed ? "labcoat_r" : "holocoat_t"][opened ? "_open" : ""]", src)
update_icon()
usr.update_inv_wear_suit()
@@ -2253,24 +2230,13 @@ All custom items with worn sprites must follow the contained sprite system: http
addtimer(CALLBACK(src, .proc/finish_toggle, usr), 10 SECONDS)
/obj/item/clothing/suit/storage/toggle/labcoat/fluff/mekesatis_labcoat/proc/finish_toggle(mob/user)
- if(!changed)
- icon_state = "mekesatis_holocoat"
- item_state = "mekesatis_holocoat"
- icon_open = "mekesatis_holocoat_open"
- icon_closed = "mekesatis_holocoat"
-
- else
- icon_state = "mekesatis_labcoat"
- item_state = "mekesatis_labcoat"
- icon_open = "mekesatis_labcoat_open"
- icon_closed = "mekesatis_labcoat"
-
+ changed = !changed
+ icon_state = "mekesatis_[changed ? "holocoat" : "labcoat"][opened ? "_open" : ""]"
+ item_state = icon_state
update_icon()
user.update_inv_wear_suit()
- changed = !changed
changing = FALSE
-
/obj/item/device/megaphone/fluff/akinyi_mic //Resonance Microphone - Akinyi Idowu - kyres1
name = "resonance microphone"
desc = "A rather costly voice amplifier disguised as a microphone. A button on the side permits the user to dial their vocal volume with ease."
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
index 9edcd529456..0f80b8b17a3 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
@@ -75,9 +75,6 @@
var/obj/machinery/light/L = O
L.brightness_color = color
L.update()
- 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))
O.color = color
diff --git a/html/changelogs/wezzy_buttonfix.yml b/html/changelogs/wezzy_buttonfix.yml
new file mode 100644
index 00000000000..9c041cd65a9
--- /dev/null
+++ b/html/changelogs/wezzy_buttonfix.yml
@@ -0,0 +1,47 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: Wowzewow (Wezzy)
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Refactors how button toggling on coats work."
+ - bugfix: "You can now unbutton/button your coats while buckled to a chair."
+ - tweak: "Labcoat open/close item states have been aligned."
+ - rscdel: "Detective technicolor trenchcoat has been removed for being criminally unused and outclassed by other trenchcoats."
+ - rscdel: "Detective technicolor hat has been removed as well for the same reasons."
+ - rscdel: "Hastur hood has been removed."
+ - rscdel: "Paint buckets have been removed for being practically unused."
diff --git a/icons/clothing/kit/emt.dmi b/icons/clothing/kit/emt.dmi
index 1ddeab11c8e..ca1a21dbdc5 100644
Binary files a/icons/clothing/kit/emt.dmi and b/icons/clothing/kit/emt.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 53458b4cdeb..0d1c63f8caa 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/coloured_detective_hats.dmi b/icons/obj/clothing/coloured_detective_hats.dmi
deleted file mode 100644
index 82f50f062e2..00000000000
Binary files a/icons/obj/clothing/coloured_detective_hats.dmi and /dev/null differ
diff --git a/icons/obj/clothing/detective.dmi b/icons/obj/clothing/detective.dmi
deleted file mode 100644
index 1b58bcf0e28..00000000000
Binary files a/icons/obj/clothing/detective.dmi and /dev/null differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 20b16874c48..573b165dbfc 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/custom_items/leo_coat.dmi b/icons/obj/custom_items/leo_coat.dmi
index 569630b8916..ef48e99ac0a 100644
Binary files a/icons/obj/custom_items/leo_coat.dmi and b/icons/obj/custom_items/leo_coat.dmi differ