diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
index 2930b8c0a0..8665e985f7 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
@@ -24,6 +24,7 @@
// Not really the best way to do this, but it's better than "contents = list()"!
for(var/atom/movable/AM in contents)
qdel(AM)
+ new /obj/item/clothing/under/medigown(src)
new /obj/item/clothing/under/color/white( src )
new /obj/item/clothing/shoes/white( src )
return
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index cd8dcc5b7e..d33927457f 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -498,6 +498,20 @@
return
+/obj/structure/closet/wardrobe/medic_gown
+ name = "cloning wardrobe"
+ icon_state = "white"
+ icon_closed = "white"
+
+/obj/structure/closet/wardrobe/medic_gown/New()
+ ..()
+ new /obj/item/clothing/under/medigown(src)
+ new /obj/item/clothing/under/medigown(src)
+ new /obj/item/clothing/under/medigown(src)
+ new /obj/item/clothing/under/medigown(src)
+ return
+
+
/obj/structure/closet/wardrobe/grey
name = "grey wardrobe"
icon_state = "grey"
diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm
index a7472c388f..9c831e7dfc 100644
--- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm
@@ -316,3 +316,16 @@
shirts["red hawaii shirt"] = /obj/item/clothing/accessory/hawaii/red
shirts["random colored hawaii shirt"] = /obj/item/clothing/accessory/hawaii/random
gear_tweaks += new/datum/gear_tweak/path(shirts)
+
+
+/datum/gear/accessory/sweater
+ display_name = "Sweater Selection"
+ path = /obj/item/clothing/accessory/sweater
+
+/datum/gear/accessory/sweater/New()
+ ..()
+ var/list/sweaters = list()
+ for(var/sweater in typesof(/obj/item/clothing/accessory/sweater))
+ var/obj/item/clothing/suit/sweater_type = sweater
+ sweaters[initial(sweater_type.name)] = sweater_type
+ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(sweaters))
diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm
index df71ff237d..c30291c3a5 100644
--- a/code/modules/client/preference_setup/loadout/loadout_utility.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm
@@ -87,3 +87,7 @@
display_name = "universal translator"
path = /obj/item/device/universal_translator
cost = 8
+
+/datum/gear/utility/pen
+ display_name = "Fountain Pen"
+ path = /obj/item/weapon/pen/fountain
\ No newline at end of file
diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm
index 045e03fc93..61a0802fa0 100644
--- a/code/modules/clothing/under/accessories/clothing.dm
+++ b/code/modules/clothing/under/accessories/clothing.dm
@@ -119,6 +119,11 @@
name = "flower-pattern shirt"
desc = "You probably need some welder googles to look at this."
icon_state = "hawaii"
+ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
+ slot_flags = SLOT_OCLOTHING | SLOT_TIE
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+ siemens_coefficient = 0.9
+ w_class = ITEMSIZE_NORMAL
/obj/item/clothing/accessory/hawaii/red
icon_state = "hawaii2"
@@ -172,4 +177,54 @@
/obj/item/clothing/accessory/wcoat/swvest/red
name = "red sweatervest"
- icon_state = "sweatervest_red"
\ No newline at end of file
+ icon_state = "sweatervest_red"
+
+/obj/item/clothing/accessory/sweater
+ name = "sweater"
+ desc = "A warm knit sweater."
+ icon_override = 'icons/mob/ties.dmi'
+ icon_state = "sweater"
+ slot_flags = SLOT_OCLOTHING | SLOT_TIE
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+ siemens_coefficient = 0.9
+ w_class = ITEMSIZE_NORMAL
+
+/obj/item/clothing/accessory/sweater/pink
+ name = "pink sweater"
+ desc = "A warm knit sweater. This one's pink in color."
+ icon_state = "sweater_pink"
+
+/obj/item/clothing/accessory/sweater/mint
+ name = "mint sweater"
+ desc = "A warm knit sweater. This one has a minty tint to it."
+ icon_state = "mint_sweater"
+
+/obj/item/clothing/accessory/sweater/blue
+ name = "blue sweater"
+ desc = "A warm knit sweater. This one's colored in a lighter blue."
+ icon_state = "sweater_blue"
+
+/obj/item/clothing/accessory/sweater/heart
+ name = "heart sweater"
+ desc = "A warm knit sweater. This one's colored in a lighter blue, and has a big pink heart right in the center!"
+ icon_state = "sweater_blueheart"
+
+/obj/item/clothing/accessory/sweater/nt
+ name = "dark blue sweater"
+ desc = "A warm knit sweater. This one's a darker blue."
+ icon_state = "sweater_nt"
+
+/obj/item/clothing/accessory/sweater/keyhole
+ name = "keyhole sweater"
+ desc = "A lavender sweater with an open chest."
+ icon_state = "keyholesweater"
+
+/obj/item/clothing/accessory/sweater/blackneck
+ name = "black turtleneck"
+ desc = "A tight turtleneck, entirely black in coloration."
+ icon_state = "turtleneck_black"
+
+/obj/item/clothing/accessory/sweater/winterneck
+ name = "Christmas turtleneck"
+ desc = "A really cheesy holiday sweater, it actually kinda itches."
+ icon_state = "turtleneck_winterred"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 2901bd1115..b154833e0d 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -769,3 +769,10 @@
name = "sweater"
icon_state = "turtleneck"
worn_state = "turtleneck"
+
+/obj/item/clothing/under/medigown
+ name = "medical gown"
+ desc = "A flimsy examination gown, the back ties never close."
+ icon_state = "medicalgown"
+ worn_state = "medicalgown"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 0e121e1481..39f272a8e8 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -105,6 +105,7 @@
var/friendly = "nuzzles" // What mobs do to people when they aren't really hostile
var/attack_sound = null // Sound to play when I attack
var/environment_smash = 0 // How much environment damage do I do when I hit stuff?
+ var/melee_miss_chance = 25 // percent chance to miss a melee attack.
//Special attacks
var/spattack_prob = 0 // Chance of the mob doing a special attack (0 for never)
@@ -1117,9 +1118,18 @@
/mob/living/simple_animal/proc/PunchTarget()
if(!Adjacent(target_mob))
return
+ sleep(rand(8) + 8)
if(isliving(target_mob))
var/mob/living/L = target_mob
- L.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext)
+
+ if(prob(melee_miss_chance))
+ src.attack_log += text("\[[time_stamp()]\] attacked [L.name] ([L.ckey])")
+ L.attack_log += text("\[[time_stamp()]\] was attacked by [src.name] ([src.ckey])")
+ src.visible_message("[src] misses [L]!")
+ src.do_attack_animation(src)
+ return L
+ else
+ L.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext)
return L
if(istype(target_mob,/obj/mecha))
var/obj/mecha/M = target_mob
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index c36ec736ae..2c25418b5f 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -35,6 +35,10 @@
icon_state = "pen_red"
colour = "red"
+/obj/item/weapon/pen/fountain
+ desc = "A well made fountain pen."
+ icon_state = "pen_fountain"
+
/obj/item/weapon/pen/multi
desc = "It's a pen with multiple colors of ink!"
var/selectedColor = 1
diff --git a/html/changelogs/Belsima-Sweaters.yml b/html/changelogs/Belsima-Sweaters.yml
new file mode 100644
index 0000000000..49721ff1f1
--- /dev/null
+++ b/html/changelogs/Belsima-Sweaters.yml
@@ -0,0 +1,36 @@
+################################
+# 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
+#################################
+
+# Your name.
+author: Belsima
+
+# 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: "Added a load of sweaters to the accessories tab of the loadout."
\ No newline at end of file
diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi
index 846a882d21..48ff6e0103 100644
Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ
diff --git a/icons/mob/species/seromi/masks.dmi b/icons/mob/species/seromi/masks.dmi
index caf8240460..edda0b78b0 100644
Binary files a/icons/mob/species/seromi/masks.dmi and b/icons/mob/species/seromi/masks.dmi differ
diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi
index c081276a2f..d41fe53698 100644
Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index cd9c1f16cc..3733fd4b60 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi
index a033aad43a..42fac1ec7a 100644
Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ
diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi
index 3adab0f88e..57ec5488e0 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 eaa7602688..a922f8fc0a 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/obj/paper.dmi b/icons/obj/paper.dmi
index 0d5ca3e4e7..ace90127b0 100644
Binary files a/icons/obj/paper.dmi and b/icons/obj/paper.dmi differ