diff --git a/code/datums/underwear/undershirt.dm b/code/datums/underwear/undershirt.dm
index 6bbbd11fd29..f01f43a211f 100644
--- a/code/datums/underwear/undershirt.dm
+++ b/code/datums/underwear/undershirt.dm
@@ -411,7 +411,7 @@
icon_state = "shirt_long_fem"
has_color = TRUE
-/datum/category_item/underwear/undershirt/turtleneck
- name = "Turtleneck"
- icon_state = "turtleneck"
- has_color = TRUE
\ No newline at end of file
+/datum/category_item/underwear/undershirt/sweater
+ name = "Sweater"
+ icon_state = "Sweater"
+ has_color = TRUE
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index 7c1089aff4c..db066eff136 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -222,9 +222,6 @@
name = "Psychologist"
jobtype = /datum/job/psychiatrist
- uniform = /obj/item/clothing/under/rank/psych/turtleneck
-
-
/datum/job/paramedic
title = "Paramedic"
flag = PARAMEDIC
diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm
index 55fd6f01c53..0bb24fd2d47 100644
--- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm
@@ -131,10 +131,24 @@
cost = 2
/datum/gear/accessory/sweater
- display_name = "sweater"
+ display_name = "sweater selection"
path = /obj/item/clothing/accessory/sweater
+ description = "A selection of sweaters and sweater vests."
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
+/datum/gear/accessory/sweater/New()
+ ..()
+ var/sweater = list()
+ sweater["sweater"] = /obj/item/clothing/accessory/sweater
+ sweater["argyle sweater"] = /obj/item/clothing/accessory/sweaterargyle
+ sweater["sweater vest"] = /obj/item/clothing/accessory/sweatervest
+ sweater["argyle sweater vest"] = /obj/item/clothing/accessory/sweatervestargyle
+ sweater["turtleneck sweater"] = /obj/item/clothing/accessory/sweaterturtleneck
+ sweater["argyle turtleneck sweater"] = /obj/item/clothing/accessory/sweaterargyleturtleneck
+ sweater["tubeneck sweater"] = /obj/item/clothing/accessory/sweatertubeneck
+ sweater["argyle tubeneck sweater"] = /obj/item/clothing/accessory/sweaterargyletubeneck
+ gear_tweaks += new/datum/gear_tweak/path(sweater)
+
/datum/gear/accessory/dressshirt
display_name = "dress shirt"
path = /obj/item/clothing/accessory/dressshirt
@@ -244,4 +258,4 @@
/datum/gear/accessory/sleeve_patch
display_name = "shoulder sleeve patch"
path = /obj/item/clothing/accessory/sleevepatch
- flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
\ No newline at end of file
+ flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm
index debb3af546a..6d723c0df4d 100644
--- a/code/modules/client/preference_setup/loadout/loadout_suit.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm
@@ -117,6 +117,11 @@
path = /obj/item/clothing/suit/storage/toggle/suitjacket
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
+/datum/gear/suit/blazer
+ display_name = "blazer"
+ path = /obj/item/clothing/suit/storage/toggle/suitjacket/blazer
+ flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
+
/datum/gear/suit/trenchcoats
display_name = "trenchcoat selection"
description = "A selection of trenchcoats."
@@ -306,12 +311,16 @@
display_name = "puffer vest"
path = /obj/item/clothing/suit/jacket/puffer/vest
-/datum/gear/suit/greenjacket
- display_name = "green suit jacket"
- path = /obj/item/clothing/suit/storage/toggle/greengov
-
/datum/gear/suit/cardigan
- display_name = "cardigan"
- path = /obj/item/clothing/suit/cardigan
- cost = 1 // has no pockets or any use whatsoever anyway
- flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
\ No newline at end of file
+ display_name = "cardigan selection"
+ description = "A selection of cardigans."
+ path = /obj/item/clothing/suit/storage/toggle/cardigan
+ flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
+
+/datum/gear/suit/cardigan/New()
+ ..()
+ var/cardigan = list()
+ cardigan["cardigan"] = /obj/item/clothing/suit/storage/toggle/cardigan
+ cardigan["sweater cardigan"] = /obj/item/clothing/suit/storage/toggle/cardigan/sweater
+ cardigan["argyle cardigan"] = /obj/item/clothing/suit/storage/toggle/cardigan/argyle
+ gear_tweaks += new/datum/gear_tweak/path(cardigan)
diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm
index 79ad6951548..957dbbf44be 100644
--- a/code/modules/clothing/suits/hoodies.dm
+++ b/code/modules/clothing/suits/hoodies.dm
@@ -205,11 +205,11 @@
if(icon_state == icon_open)
icon_state = icon_closed
item_state = icon_closed
- to_chat(usr, "You zip the hoodie.")
+ to_chat(usr, "You zip \the [src].")
else if(icon_state == icon_closed)
icon_state = icon_open
item_state = icon_open
- to_chat(usr, "You unzip the hoodie.")
+ to_chat(usr, "You unzip \the [src].")
else
to_chat(usr, "You attempt to zip the velcro on your [src], before promptly realising how silly you are.")
return
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 09abdee6d08..b0083169681 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -306,6 +306,14 @@ obj/item/clothing/suit/apron/overalls/blue
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
+/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"
//Medical
/obj/item/clothing/suit/storage/toggle/fr_jacket
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 0b47306ba14..2ba0d303773 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -435,15 +435,6 @@
icon_open = "trenchcoat_grey_open"
icon_closed = "trenchcoat_grey"
-/obj/item/clothing/suit/storage/toggle/greengov
- name = "green formal jacket"
- desc = "A sleek proper formal jacket with gold buttons."
- icon_state = "suitjacket_green_open"
- item_state = "suitjacket_green"
- icon_open = "suitjacket_green_open"
- icon_closed = "suitjacket_green"
- body_parts_covered = UPPER_TORSO|ARMS
-
/obj/item/clothing/suit/storage/toggle/track
name = "track jacket"
desc = "a track jacket, for the athletic."
@@ -618,11 +609,35 @@
icon_state = "fib_jacket"
item_state = "fib_jacket"
-/obj/item/clothing/suit/cardigan
+// Cardigans.
+
+/obj/item/clothing/suit/storage/toggle/cardigan
name = "cardigan"
- desc = "A cozy, warm knit cardigan. Only slightly worse than a blanket."
+ desc = "A cozy, warm knit cardigan."
+ 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"
+ desc = "A cozy, warm knit sweater cardigan."
+ 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"
+ desc = "A cozy, warm knit argyle cardigan."
+ 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 04ee10d3f23..ce5d018d96e 100644
--- a/code/modules/clothing/suits/storage.dm
+++ b/code/modules/clothing/suits/storage.dm
@@ -49,13 +49,13 @@
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 coat.")
+ 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 coat.")
+ 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 your [src], before promptly realising how silly you are.")
+ 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
diff --git a/code/modules/clothing/under/accessories/shirts.dm b/code/modules/clothing/under/accessories/shirts.dm
index 66f7a8e2f09..05a5b171894 100644
--- a/code/modules/clothing/under/accessories/shirts.dm
+++ b/code/modules/clothing/under/accessories/shirts.dm
@@ -1,9 +1,59 @@
/obj/item/clothing/accessory/sweater
name = "sweater"
desc = "A warm knit sweater."
+ desc_fluff = "Fortunately, it comes with Itch-Proof technology. The only thing they haven't invented is a better fashion sense for you, though."
icon_state = "sweater"
item_state = "sweater"
+/obj/item/clothing/accessory/sweaterargyle
+ name = "argyle sweater"
+ desc = "A warm knit sweater with an argyle pattern."
+ desc_fluff = "Never go unprepared for the next work-mandated secret santa with this fashion statement! Revel in their awkward thanks as they unbox it! Realize that you've received one too!"
+ icon_state = "sweaterargyle"
+ item_state = "sweaterargyle"
+
+/obj/item/clothing/accessory/sweatervest
+ name = "sweater vest"
+ desc = "A warm knit sweater vest."
+ desc_fluff = "Unlike a bulletproof vest, the only thing this'll protect you from is the opposite sex."
+ icon_state = "sweatervest"
+ item_state = "sweatervest"
+
+/obj/item/clothing/accessory/sweatervestargyle
+ name = "argyle sweater vest"
+ desc = "A warm knit sweater vest with an argyle pattern."
+ desc_fluff = "Reminds you of family picture day. Wearing this is entirely your own volition, unfortunately."
+ icon_state = "sweatervestargyle"
+ item_state = "sweatervestargyle"
+
+/obj/item/clothing/accessory/sweaterturtleneck
+ name = "turtleneck sweater"
+ desc = "A warm knit turtleneck sweater."
+ desc_fluff = "Engineered for the rigors of poetry club finger snapping."
+ icon_state = "sweaterturtleneck"
+ item_state = "sweaterturtleneck"
+
+/obj/item/clothing/accessory/sweaterargyleturtleneck
+ name = "argyle turtleneck sweater"
+ desc = "A warm knit argyle turtleneck sweater."
+ desc_fluff = "Now your clothing can be as stuffy as your personality."
+ icon_state = "sweaterargyleturtleneck"
+ item_state = "sweaterargyleturtleneck"
+
+/obj/item/clothing/accessory/sweatertubeneck
+ name = "tubeneck sweater"
+ desc = "A warm knit tubeneck sweater."
+ desc_fluff = "What the hell is cashmere anyway?"
+ icon_state = "sweatertubeneck"
+ item_state = "sweatertubeneck"
+
+/obj/item/clothing/accessory/sweaterargyletubeneck
+ name = "argyle tubeneck sweater"
+ desc = "A warm knit argyle tubeneck sweater."
+ desc_fluff = "Does not come with accompanying dog-sized version."
+ icon_state = "sweaterargyletubeneck"
+ item_state = "sweaterargyletubeneck"
+
/obj/item/clothing/accessory/dressshirt
name = "dress shirt"
desc = "A casual dress shirt."
@@ -97,4 +147,4 @@
. = ..()
if(prob(50))
icon_state = "hawaii_red"
- color = color_rotation(rand(-11,12)*15)
\ No newline at end of file
+ color = color_rotation(rand(-11,12)*15)
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 69b0aa2e813..6038cb0848d 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -531,12 +531,6 @@
item_state = "lb_suit"
worn_state = "mechanic"
-/obj/item/clothing/under/sweater
- desc = "A warm looking sweater and a pair of dark blue slacks."
- name = "sweater"
- icon_state = "turtleneck"
- worn_state = "turtleneck"
-
/obj/item/clothing/under/cheongsam
name = "white cheongsam"
desc = "A Chinese dress that hugs the body. This one is white, embroidered with a bright golden dragon."
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 8c75b571ba5..51390016532 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -2128,13 +2128,13 @@ All custom items with worn sprites must follow the contained sprite system: http
update_icon()
return
- var/obj/item/clothing/under/sweater/G = new(get_turf(user))
- G.color = ball.color
+ var/obj/item/clothing/accessory/sweater/S = new(get_turf(user))
+ S.color = ball.color
qdel(ball)
ball = null
working = FALSE
update_icon()
- to_chat(user, "You finished \the [G]!")
+ to_chat(user, "You finish \the [S]!")
/obj/item/fluff/yarn
name = "ball of yarn"
diff --git a/html/changelogs/wezzy_better_overwear.yml b/html/changelogs/wezzy_better_overwear.yml
new file mode 100644
index 00000000000..f355b7bafd9
--- /dev/null
+++ b/html/changelogs/wezzy_better_overwear.yml
@@ -0,0 +1,45 @@
+################################
+# 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: "Adds blazers, tubenecks, turtlenecks, sweaters, sweater vests, sweater cardigans and sweater cardigans, as well as argyle styles for each!"
+ - rscadd: "These new clothing types can be found in the loadout, under new selections. Check the loadout!"
+ - tweak: "Makes cardigans and sweaters look better. Check them out."
+ - tweak: "Cardigans can now be buttoned and unbuttoned."
+ - rscdel: "Killed off the green suit jacket for being practically useless."
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 7c5bf97c892..194f629eb79 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi
index 65b0bf06585..ebace966d27 100644
Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ
diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi
index 4e50bd41e03..0abd65529d6 100644
Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index a06f258bf65..5553e761594 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 1b629ccce3a..2f58ff3a556 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi
index 79f5a4a73f0..62e38a138b8 100644
Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index 668ed314bcd..8e1899d13e2 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ