From 2caaaa6f5e2dc8af637995aac473b033010fb3d7 Mon Sep 17 00:00:00 2001
From: "Wowzewow (Wezzy)" <42310821+alsoandanswer@users.noreply.github.com>
Date: Mon, 7 Sep 2020 16:27:33 +0800
Subject: [PATCH] Suit refactor, fixes and general cleanup (#9862)
---
code/datums/trading/misc.dm | 1 -
code/game/objects/effects/landmarks.dm | 2 +-
code/game/objects/structures/coathanger.dm | 4 +-
.../crates_lockers/closets/secure/security.dm | 2 +-
.../preference_setup/loadout/loadout_suit.dm | 1 -
code/modules/clothing/factions/dominia.dm | 8 --
code/modules/clothing/factions/himeo.dm | 4 +-
code/modules/clothing/head/jobs.dm | 26 ----
code/modules/clothing/suits/armor.dm | 5 -
code/modules/clothing/suits/jobs.dm | 116 +++++-------------
code/modules/clothing/suits/labcoat.dm | 113 +++--------------
code/modules/clothing/suits/miscellaneous.dm | 115 +----------------
code/modules/clothing/suits/storage.dm | 32 ++---
code/modules/clothing/suits/wiz_robe.dm | 2 -
code/modules/clothing/suits/xeno/tajara.dm | 4 -
code/modules/customitems/item_defines.dm | 70 +++--------
.../Chemistry-Reagents-Other.dm | 3 -
html/changelogs/wezzy_buttonfix.yml | 47 +++++++
icons/clothing/kit/emt.dmi | Bin 5501 -> 5500 bytes
icons/mob/suit.dmi | Bin 439788 -> 377185 bytes
.../obj/clothing/coloured_detective_hats.dmi | Bin 2081 -> 0 bytes
icons/obj/clothing/detective.dmi | Bin 493 -> 0 bytes
icons/obj/clothing/suits.dmi | Bin 171595 -> 149135 bytes
icons/obj/custom_items/leo_coat.dmi | Bin 2211 -> 2853 bytes
24 files changed, 134 insertions(+), 421 deletions(-)
create mode 100644 html/changelogs/wezzy_buttonfix.yml
delete mode 100644 icons/obj/clothing/coloured_detective_hats.dmi
delete mode 100644 icons/obj/clothing/detective.dmi
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 1ddeab11c8ecc4a01d333fe0ac7abf058c639e88..ca1a21dbdc5dd0d2e486f40af909ae402535ce5e 100644
GIT binary patch
delta 184
zcmV;p07w7*D*P&tB!8oNR9JLGWpiV4X>fFDZ*Bkpc$}4x%?iUH5QNYA6iae1{mIo!
zF%%EUD~L4PYKtbgYG1#H6nZEWbDM#0hGAMb_ZKyS9274Y$;|--bh|xgFE=F%0!~NH
zEV{c*tD$5Pf`A5ndYJ1IQ^VQhB7uMdXSZlPuKJhM^MYXmPA&NhcQxI$iR>53u5S5<
m)j4db*0C~Bkg9eRq<@FB(2o-2p!gftT#K6zM~Nq~(X15P##6BX
delta 185
zcmV;q07n1(D*Y;uB!8rOR9JLGWpiV4X>fFDZ*Bkpc$}4x%?iRW5QNXkQ!MRS@u$~Z
zBt>#)Um*m$nkY$2Hi@tAp@IiN;%x@L8HQ=$)SuM|a!|ZrBsT{T&~0~|J>8Tn2sj=%
zv*>O%t%j0G2m%`P>259$Obus~iv$ApoL!^wxax0mGcOqGaV|~y19vsuwTbK(%C2tt
no7Fk|Q>|lVpdeN4C`i8!X`vq_$U*TJUEqs13qV5dvCym(;Q&*c
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 53458b4cdeb84c628c95ef1b1ab5c4aad2ecf941..0d1c63f8caa0681985611a730e8e4097667e4089 100644
GIT binary patch
literal 377185
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%0AKSfr0?ntTCZ3bA
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