diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm
index 3d6bf2259f8..a548499b2fc 100644
--- a/_maps/map_files/Delta/delta.dmm
+++ b/_maps/map_files/Delta/delta.dmm
@@ -2887,7 +2887,7 @@
},
/obj/item/wrench,
/obj/item/wirerod,
-/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/misc/waiter,
/obj/item/clothing/accessory/waistcoat,
/turf/simulated/floor/plasteel/dark,
/area/maintenance/electrical_shop)
@@ -9360,7 +9360,7 @@
/area/quartermaster/storage)
"aFq" = (
/obj/structure/closet/secure_closet/personal/cabinet,
-/obj/item/clothing/under/pennywise,
+/obj/item/clothing/under/costume/pennywise,
/obj/item/toy/syndicateballoon,
/obj/item/clothing/shoes/clown_shoes,
/obj/item/clothing/mask/gas/clown_hat/pennywise,
@@ -49757,8 +49757,8 @@
req_access_txt = "4"
},
/obj/item/restraints/handcuffs/pinkcuffs,
-/obj/item/clothing/under/rank/security,
-/obj/item/clothing/under/rank/security,
+/obj/item/clothing/under/rank/security/officer,
+/obj/item/clothing/under/rank/security/officer,
/obj/item/grenade/barrier,
/obj/item/book/manual/wiki/security_space_law,
/obj/effect/decal/cleanable/cobweb2,
@@ -67395,7 +67395,7 @@
"dcK" = (
/obj/structure/table/wood,
/obj/item/clothing/suit/toggle/owlwings,
-/obj/item/clothing/under/owl,
+/obj/item/clothing/under/costume/owl,
/obj/item/clothing/mask/gas/owl_mask,
/turf/simulated/floor/wood,
/area/maintenance/starboard)
@@ -76457,7 +76457,7 @@
/area/medical/medbay)
"dwQ" = (
/obj/structure/table/wood,
-/obj/item/clothing/under/maid,
+/obj/item/clothing/under/costume/maid,
/obj/effect/decal/cleanable/cobweb,
/turf/simulated/floor/plating,
/area/crew_quarters/theatre)
@@ -78607,7 +78607,7 @@
/area/medical/medbay)
"dBu" = (
/obj/structure/table/wood,
-/obj/item/clothing/under/jester,
+/obj/item/clothing/under/costume/jester,
/turf/simulated/floor/wood{
broken = 1;
icon_state = "wood-broken"
@@ -90177,7 +90177,7 @@
pixel_y = -24
},
/obj/item/clothing/suit/soldiercoat,
-/obj/item/clothing/under/soldieruniform,
+/obj/item/clothing/under/costume/soldieruniform,
/obj/item/clothing/head/stalhelm,
/turf/simulated/floor/wood,
/area/clownoffice)
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index def201b56f9..05a0de86203 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -1648,7 +1648,7 @@
/area/crew_quarters/arcade)
"ama" = (
/obj/structure/table,
-/obj/item/clothing/under/sl_suit{
+/obj/item/clothing/under/misc/sl_suit{
desc = "Whoever wears this makes the rules.";
name = "referee suit"
},
@@ -2811,8 +2811,8 @@
/obj/structure/rack{
dir = 1
},
-/obj/item/clothing/under/rank/mailman,
-/obj/item/clothing/under/rank/vice{
+/obj/item/clothing/under/misc/mailman,
+/obj/item/clothing/under/misc/vice{
pixel_x = 4;
pixel_y = -3
},
@@ -5739,7 +5739,7 @@
"aAU" = (
/obj/item/clothing/gloves/color/rainbow,
/obj/item/clothing/shoes/rainbow,
-/obj/item/clothing/under/rainbow,
+/obj/item/clothing/under/color/rainbow,
/obj/item/clothing/head/soft/rainbow,
/turf/simulated/floor/plating,
/area/maintenance/fpmaint)
@@ -9719,7 +9719,7 @@
/area/crew_quarters/dorms)
"aMw" = (
/obj/structure/closet/secure_closet/personal,
-/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
/turf/simulated/floor/plasteel{
icon_state = "barber"
},
@@ -11121,7 +11121,7 @@
})
"aQz" = (
/obj/structure/closet/secure_closet/personal,
-/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
/turf/simulated/floor/plasteel{
icon_state = "darkgrey"
},
@@ -11131,7 +11131,7 @@
/obj/machinery/light/small{
dir = 1
},
-/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
/obj/structure/sign/double/map/left{
desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
icon_state = "map-left-MS";
@@ -11143,7 +11143,7 @@
/area/crew_quarters/locker)
"aQB" = (
/obj/structure/closet/secure_closet/personal,
-/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
/obj/structure/sign/double/map/right{
desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
icon_state = "map-right-MS";
@@ -11441,7 +11441,7 @@
/area/quartermaster/storage)
"aRn" = (
/obj/structure/closet/secure_closet/personal,
-/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
/obj/structure/sign/poster/official/random{
pixel_y = 32
},
@@ -32499,7 +32499,7 @@
"bSd" = (
/obj/structure/table/wood,
/obj/item/clothing/shoes/laceup,
-/obj/item/clothing/under/suit_jacket/really_black,
+/obj/item/clothing/under/suit/really_black,
/obj/item/clothing/glasses/sunglasses,
/obj/machinery/light{
dir = 1
@@ -49931,7 +49931,7 @@
/area/maintenance/apmaint)
"cSL" = (
/obj/structure/table/wood,
-/obj/item/clothing/under/burial,
+/obj/item/clothing/under/misc/burial,
/obj/machinery/firealarm{
dir = 8;
name = "west bump";
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_random_ripley.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_random_ripley.dmm
index 1b7783388de..89e6e5f92d5 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_random_ripley.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_random_ripley.dmm
@@ -16,7 +16,7 @@
/area/lavaland/surface/outdoors)
"e" = (
/obj/item/clothing/shoes/workboots/mining,
-/obj/item/clothing/under/rank/miner/lavaland,
+/obj/item/clothing/under/rank/cargo/miner/lavaland,
/obj/effect/decal/remains/human,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
index 1bba42283c2..116ff0472a2 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
@@ -210,10 +210,10 @@
/area/ruin/powered/seedvault)
"G" = (
/obj/structure/closet/crate/hydroponics,
-/obj/item/clothing/under/rank/hydroponics,
-/obj/item/clothing/under/rank/hydroponics,
-/obj/item/clothing/under/rank/hydroponics,
-/obj/item/clothing/under/rank/hydroponics,
+/obj/item/clothing/under/rank/civilian/hydroponics,
+/obj/item/clothing/under/rank/civilian/hydroponics,
+/obj/item/clothing/under/rank/civilian/hydroponics,
+/obj/item/clothing/under/rank/civilian/hydroponics,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/seedvault)
"H" = (
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm
index ec1443e4b37..b0323d3ed42 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm
@@ -88,7 +88,7 @@
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
/obj/effect/decal/cleanable/blood/gibs,
-/obj/item/clothing/under/rank/security,
+/obj/item/clothing/under/rank/security/officer,
/obj/item/clothing/suit/armor/vest,
/obj/item/melee/baton/loaded,
/obj/item/clothing/head/helmet,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm b/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm
index d9aad7e6aec..34fd8f4baf7 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm
@@ -547,7 +547,7 @@
"bO" = (
/obj/effect/decal/cleanable/blood,
/obj/structure/chair,
-/obj/item/clothing/under/rank/centcom_officer,
+/obj/item/clothing/under/rank/centcom,
/obj/item/restraints/handcuffs,
/obj/effect/decal/remains/human,
/turf/simulated/floor/plating/airless,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm
index 40658241356..02fb421c102 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm
@@ -22,7 +22,7 @@
/area/ruin/space/powered)
"g" = (
/obj/structure/table/wood,
-/obj/item/clothing/under/shorts/black,
+/obj/item/clothing/under/pants/shorts/black,
/turf/simulated/floor/mineral/titanium/purple,
/area/ruin/space/powered)
"h" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm b/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
index d4176a534a6..451974e5989 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
@@ -1991,7 +1991,7 @@
/area/ruin/unpowered/BMPship/Aft)
"gn" = (
/obj/structure/closet,
-/obj/item/clothing/under/overalls,
+/obj/item/clothing/under/misc/overalls,
/turf/simulated/floor/plasteel,
/area/ruin/unpowered/BMPship/Aft)
"go" = (
@@ -2181,7 +2181,7 @@
/area/ruin/unpowered/BMPship/Aft)
"gT" = (
/obj/structure/closet,
-/obj/item/clothing/under/lawyer/bluesuit,
+/obj/item/clothing/under/rank/civilian/lawyer/bluesuit,
/obj/item/clothing/suit/apron,
/turf/simulated/floor/plasteel,
/area/ruin/unpowered/BMPship/Aft)
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
index 74becc1d486..8af823badca 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
@@ -3740,7 +3740,7 @@
/area/ruin/space/unpowered)
"hm" = (
/obj/structure/closet/cabinet,
-/obj/item/clothing/under/suit_jacket/navy,
+/obj/item/clothing/under/suit/navy,
/turf/simulated/floor/carpet,
/area/ruin/space/unpowered)
"hn" = (
@@ -3966,7 +3966,7 @@
name = "Kitchen Crate"
},
/obj/item/storage/box/mousetraps,
-/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/misc/waiter,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor";
temperature = 273.15
@@ -4573,7 +4573,7 @@
/area/ruin/space/unpowered)
"jo" = (
/obj/structure/closet/cabinet,
-/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
/turf/simulated/floor/carpet,
/area/ruin/space/unpowered)
"jp" = (
@@ -4713,7 +4713,7 @@
/obj/structure/table,
/obj/structure/bedsheetbin,
/obj/item/clothing/accessory/black,
-/obj/item/clothing/under/lawyer/black,
+/obj/item/clothing/under/rank/civilian/lawyer/black,
/turf/simulated/floor/plasteel/airless{
icon_state = "barber";
name = "floor"
@@ -4913,7 +4913,7 @@
/area/ruin/space/unpowered)
"ke" = (
/obj/structure/closet/cabinet,
-/obj/item/clothing/under/suit_jacket/burgundy,
+/obj/item/clothing/under/suit/burgundy,
/turf/simulated/floor/carpet,
/area/ruin/space/unpowered)
"kf" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
index 0542d303df4..9525a0c0ff5 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
@@ -1532,13 +1532,13 @@
/obj/item/clothing/head/ushanka,
/obj/item/clothing/head/ushanka,
/obj/item/clothing/head/ushanka,
-/obj/item/clothing/under/soviet,
-/obj/item/clothing/under/soviet,
-/obj/item/clothing/under/soviet,
-/obj/item/clothing/under/soviet,
+/obj/item/clothing/under/costume/soviet,
+/obj/item/clothing/under/costume/soviet,
+/obj/item/clothing/under/costume/soviet,
+/obj/item/clothing/under/costume/soviet,
/obj/item/clothing/head/ushanka,
/obj/item/clothing/head/ushanka,
-/obj/item/clothing/under/soviet,
+/obj/item/clothing/under/costume/soviet,
/turf/simulated/floor/plasteel,
/area/ruin/space/derelict/crew_quarters)
"dO" = (
diff --git a/_maps/map_files/RandomZLevels/beach.dmm b/_maps/map_files/RandomZLevels/beach.dmm
index 3840171211e..5f86c5167d2 100644
--- a/_maps/map_files/RandomZLevels/beach.dmm
+++ b/_maps/map_files/RandomZLevels/beach.dmm
@@ -1026,8 +1026,8 @@
/area/awaymission/beach)
"ed" = (
/obj/structure/closet/crate,
-/obj/item/clothing/under/pirate,
-/obj/item/clothing/under/pirate,
+/obj/item/clothing/under/costume/pirate,
+/obj/item/clothing/under/costume/pirate,
/turf/simulated/floor/beach/away/sand,
/area/awaymission/beach)
"ee" = (
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 116524319be..216a1e3ca9d 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -11166,7 +11166,7 @@
/obj/item/storage/box/evidence,
/obj/item/clothing/suit/wcoat,
/obj/item/clothing/suit/blacktrenchcoat,
-/obj/item/clothing/under/suit_jacket/tan,
+/obj/item/clothing/under/suit/tan,
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
/turf/simulated/floor/plating,
/area/maintenance/fpmaint2)
@@ -13319,7 +13319,7 @@
/turf/simulated/floor/plating,
/area/maintenance/fpmaint)
"aIT" = (
-/obj/item/clothing/under/mafia,
+/obj/item/clothing/under/suit/mafia,
/turf/simulated/floor/plating,
/area/maintenance/fpmaint)
"aIU" = (
@@ -13828,7 +13828,7 @@
/turf/simulated/floor/plating,
/area/maintenance/fpmaint2)
"aKf" = (
-/obj/item/clothing/under/mafia/sue,
+/obj/item/clothing/under/suit/mafia/vest,
/turf/simulated/floor/plating,
/area/maintenance/fpmaint)
"aKg" = (
@@ -19204,7 +19204,7 @@
/area/crew_quarters/dorms)
"aWL" = (
/obj/structure/table,
-/obj/item/clothing/under/swimsuit/red,
+/obj/item/clothing/under/misc/swimsuit/red,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "arrival"
@@ -23950,7 +23950,7 @@
pixel_x = 24
},
/obj/item/clothing/suit/soldiercoat,
-/obj/item/clothing/under/soldieruniform,
+/obj/item/clothing/under/costume/soldieruniform,
/obj/item/clothing/head/stalhelm,
/obj/machinery/newscaster{
name = "south bump";
@@ -34874,7 +34874,7 @@
/turf/simulated/floor/plating,
/area/maintenance/disposal)
"bHf" = (
-/obj/item/clothing/under/rank/security2,
+/obj/item/clothing/under/rank/security/officer/uniform,
/obj/structure/closet/cabinet,
/obj/item/clothing/head/officer,
/turf/simulated/floor/plasteel{
@@ -45286,7 +45286,7 @@
/obj/item/clothing/gloves/color/rainbow,
/obj/item/clothing/shoes/rainbow,
/obj/item/clothing/head/soft/rainbow,
-/obj/item/clothing/under/rainbow,
+/obj/item/clothing/under/color/rainbow,
/turf/simulated/floor/plating,
/area/maintenance/port)
"chp" = (
@@ -51590,13 +51590,13 @@
/turf/simulated/floor/plating,
/area/maintenance/aft)
"cyK" = (
-/obj/item/clothing/under/rank/medical/purple,
+/obj/item/clothing/under/rank/medical/scrubs/purple,
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random_spawners/blood_maybe,
/turf/simulated/floor/plating,
/area/maintenance/aft)
"cyM" = (
-/obj/item/clothing/under/medigown,
+/obj/item/clothing/under/rank/medical/gown,
/obj/structure/table/tray,
/obj/item/hemostat{
pixel_x = 6
@@ -71376,7 +71376,7 @@
"fWJ" = (
/obj/structure/bed,
/obj/effect/decal/cleanable/dirt,
-/obj/item/clothing/under/rank/nursesuit,
+/obj/item/clothing/under/rank/medical/nursesuit,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -75143,7 +75143,7 @@
"iNe" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
-/obj/item/clothing/under/rank/medical/blue,
+/obj/item/clothing/under/rank/medical/scrubs,
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
pixel_x = -28
@@ -82600,10 +82600,10 @@
pixel_x = -28
},
/obj/item/crowbar/large,
-/obj/item/clothing/under/pj/red,
-/obj/item/clothing/under/pj/red,
-/obj/item/clothing/under/pj/blue,
-/obj/item/clothing/under/pj/blue,
+/obj/item/clothing/under/misc/pj/red,
+/obj/item/clothing/under/misc/pj/red,
+/obj/item/clothing/under/misc/pj/blue,
+/obj/item/clothing/under/misc/pj/blue,
/obj/item/clothing/shoes/sandal/white,
/obj/item/clothing/shoes/sandal/white,
/obj/item/clothing/shoes/sandal/white,
@@ -83837,7 +83837,7 @@
},
/area/maintenance/aft)
"pXs" = (
-/obj/item/clothing/under/swimsuit/black,
+/obj/item/clothing/under/misc/swimsuit/black,
/obj/structure/flora/ausbushes/sparsegrass,
/turf/simulated/floor/beach/sand,
/area/hallway/secondary/exit)
@@ -85368,11 +85368,11 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
/obj/item/storage/backpack/duffel/medical,
-/obj/item/clothing/under/rank/nurse,
+/obj/item/clothing/under/rank/medical/nurse,
/turf/simulated/floor/plating,
/area/maintenance/aft)
"rfh" = (
-/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
/turf/simulated/floor/wood{
icon_state = "wood-broken"
},
@@ -93577,12 +93577,12 @@
/area/maintenance/aft)
"xYu" = (
/obj/structure/table,
-/obj/item/clothing/under/shorts/black{
+/obj/item/clothing/under/pants/shorts/black{
pixel_x = -4;
pixel_y = 3
},
-/obj/item/clothing/under/shorts/blue,
-/obj/item/clothing/under/shorts/red{
+/obj/item/clothing/under/pants/shorts/blue,
+/obj/item/clothing/under/pants/shorts/red{
pixel_x = 3;
pixel_y = -3
},
diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm
index 1c8f3b7afba..3767cc260eb 100644
--- a/_maps/map_files/generic/centcomm.dmm
+++ b/_maps/map_files/generic/centcomm.dmm
@@ -962,7 +962,7 @@
pixel_x = 4;
pixel_y = 6
},
-/obj/item/clothing/under/suit_jacket,
+/obj/item/clothing/under/suit/black,
/obj/item/clothing/suit/wcoat,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
@@ -3448,12 +3448,12 @@
/area/syndicate_mothership/jail)
"lY" = (
/obj/structure/rack,
-/obj/item/clothing/under/shorts/black{
+/obj/item/clothing/under/pants/shorts/black{
pixel_x = -3;
pixel_y = 3
},
-/obj/item/clothing/under/shorts/blue,
-/obj/item/clothing/under/shorts/red{
+/obj/item/clothing/under/pants/shorts/blue,
+/obj/item/clothing/under/pants/shorts/red{
pixel_x = 3;
pixel_y = -3
},
@@ -3477,8 +3477,8 @@
pixel_x = -3;
pixel_y = 3
},
-/obj/item/clothing/under/soviet,
-/obj/item/clothing/under/pirate{
+/obj/item/clothing/under/costume/soviet,
+/obj/item/clothing/under/costume/pirate{
pixel_x = 3;
pixel_y = -3
},
@@ -3655,7 +3655,7 @@
pixel_y = 3
},
/obj/item/clothing/under/syndicate/combat,
-/obj/item/clothing/under/acj{
+/obj/item/clothing/under/misc/acj{
pixel_x = 3;
pixel_y = -3
},
@@ -6454,7 +6454,7 @@
/obj/structure/table,
/obj/item/tank/internals/oxygen/yellow,
/obj/random/bomb_supply,
-/obj/item/clothing/under/rebeloutfit,
+/obj/item/clothing/under/costume/rebeloutfit,
/obj/item/clothing/suit/poncho/ponchoshame,
/obj/item/clothing/head/sombrero/shamebrero,
/turf/simulated/floor/plasteel/dark,
@@ -10894,7 +10894,7 @@
/turf/simulated/floor/holofloor/grass,
/area/holodeck/source_picnicarea)
"QV" = (
-/obj/item/clothing/under/rainbow,
+/obj/item/clothing/under/color/rainbow,
/obj/item/clothing/glasses/sunglasses_fake,
/turf/simulated/floor/beach/sand,
/area/holodeck/source_beach)
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index 78d9fb407bf..cad37d4b92c 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -973,3 +973,26 @@ The _flatIcons list is a cache for generated icon files.
main.AddAlphaMask(mask) //Make the pixels in the main icon that are in the transparent zone of the mask icon also vanish (fully transparent).
return main
+
+///Checks if the given iconstate exists in the given file, caching the result. Setting no_sprite to TRUE will print a stack trace ONCE.
+/proc/icon_exists(file, state, no_sprite)
+ var/static/list/icon_states_cache = list()
+ if(icon_states_cache[file]?[state])
+ return TRUE
+
+ if(icon_states_cache[file]?[state] == FALSE)
+ return FALSE
+
+ var/list/states = icon_states(file)
+
+ if(!icon_states_cache[file])
+ icon_states_cache[file] = list()
+
+ if(state in states)
+ icon_states_cache[file][state] = TRUE
+ return TRUE
+ else
+ icon_states_cache[file][state] = FALSE
+ if(no_sprite)
+ stack_trace("Icon Lookup for state: [state] in file [file] failed.")
+ return FALSE
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index 115fcc5c1c7..9fb43f65669 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -358,147 +358,147 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
job_clothes = H.mind.assigned_role
switch(job_clothes)
if("Head of Personnel")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "hop_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "hop_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
if("Nanotrasen Representative")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "officer_s")
+ clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
if("Blueshield")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "officer_s")
+ clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "blueshield"), ICON_OVERLAY)
if("Magistrate")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "really_black_suit_s")
+ clothes_s = new /icon('icons/mob/clothing/under/suit.dmi', "really_black_suit_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "judge"), ICON_OVERLAY)
if("Bartender")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "ba_suit_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "ba_suit_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Botanist")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "hydroponics_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "hydroponics_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Chef")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "chef_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "chef_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Janitor")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "janitor_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "janitor_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Librarian")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "red_suit_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "red_suit_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Barber")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "barber_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "barber_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Clown")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "clown_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "clown_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "clown"), ICON_UNDERLAY)
if("Mime")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "mime_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "mime_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Quartermaster")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "qm_s")
+ clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "qm_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
if("Cargo Technician")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "cargotech_s")
+ clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "cargo_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Shaft Miner")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "explorer_s")
+ clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "explorer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "explorer"), ICON_UNDERLAY)
if("Lawyer")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "internalaffairs_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "internalaffairs_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
if("Chaplain")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "chapblack_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "chapblack_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Research Director")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "director_s")
+ clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "director_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
if("Scientist")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "toxinswhite_s")
+ clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "science_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
if("Chemist")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "chemistrywhite_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "chemistry_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
if("Chief Medical Officer")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "cmo_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "cmo_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
if("Medical Doctor")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "medical_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "medical_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
if("Coroner")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "scrubsblack_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "scrubsblack_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_mort_open"), ICON_OVERLAY)
if("Geneticist")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "geneticswhite_s")
+ clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "genetics_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY)
if("Virologist")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "virologywhite_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "virology_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
if("Psychiatrist")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "psych_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "psych_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_UNDERLAY)
if("Paramedic")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "paramedic_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "paramedic_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Captain")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "captain_s")
+ clothes_s = new /icon('icons/mob/clothing/under/captain.dmi', "captain_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
if("Head of Security")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "hosred_s")
+ clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "hosred_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Warden")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "warden_s")
+ clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "warden_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Detective")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "detective_s")
+ clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "detective_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "detective"), ICON_OVERLAY)
if("Security Officer")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "secred_s")
+ clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "secred_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Chief Engineer")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "chief_s")
+ clothes_s = new /icon('icons/mob/clothing/under/engineering.dmi', "chief_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)
if("Station Engineer")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "engine_s")
+ clothes_s = new /icon('icons/mob/clothing/under/engineering.dmi', "engine_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "orange"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)
if("Life Support Specialist")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "atmos_s")
+ clothes_s = new /icon('icons/mob/clothing/under/engineering.dmi', "atmos_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)
if("Roboticist")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "robotics_s")
+ clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "robotics_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
if("Syndicate Agent")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "syndicate_s")
+ clothes_s = new /icon('icons/mob/clothing/under/syndicate.dmi', "syndicate_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if("Syndicate Officer")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "syndicate_s")
+ clothes_s = new /icon('icons/mob/clothing/under/syndicate.dmi', "syndicate_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY)
if("Syndicate Nuclear Operative")
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "syndicate_s")
+ clothes_s = new /icon('icons/mob/clothing/under/syndicate.dmi', "syndicate_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY)
else
if(H.mind && (H.mind.assigned_role in get_all_centcom_jobs()))
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "officer_s")
+ clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
else
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "grey_s")
+ clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "grey_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
preview_icon.Blend(face_s, ICON_OVERLAY) // Why do we do this twice
diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm
index e8278036773..cb907e78f08 100644
--- a/code/datums/outfits/outfit.dm
+++ b/code/datums/outfits/outfit.dm
@@ -284,7 +284,7 @@
// Butler outfit
/datum/outfit/butler
name = "Butler"
- uniform = /obj/item/clothing/under/suit_jacket/really_black
+ uniform = /obj/item/clothing/under/suit/really_black
shoes = /obj/item/clothing/shoes/laceup
head = /obj/item/clothing/head/bowlerhat
glasses = /obj/item/clothing/glasses/monocle
diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm
index 8501d14d36c..faeba542bc1 100644
--- a/code/datums/outfits/outfit_admin.dm
+++ b/code/datums/outfits/outfit_admin.dm
@@ -120,7 +120,7 @@
/datum/outfit/admin/syndicate/spy
name = "Syndicate Spy"
- uniform = /obj/item/clothing/under/suit_jacket/really_black
+ uniform = /obj/item/clothing/under/suit/really_black
shoes = /obj/item/clothing/shoes/chameleon/noslip
uplink_uses = 40
id_access = "Syndicate Agent"
@@ -133,7 +133,7 @@
/datum/outfit/admin/nt_vip
name = "VIP Guest"
- uniform = /obj/item/clothing/under/suit_jacket/really_black
+ uniform = /obj/item/clothing/under/suit/really_black
back = /obj/item/storage/backpack/satchel
gloves = /obj/item/clothing/gloves/color/black
shoes = /obj/item/clothing/shoes/black
@@ -269,7 +269,7 @@
back = /obj/item/storage/backpack/ert/deathsquad
belt = /obj/item/gun/projectile/revolver/mateba
gloves = /obj/item/clothing/gloves/combat
- uniform = /obj/item/clothing/under/rank/deathsquad
+ uniform = /obj/item/clothing/under/rank/centcom/deathsquad
shoes = /obj/item/clothing/shoes/magboots/advance
suit = /obj/item/clothing/suit/space/deathsquad
suit_store = /obj/item/gun/energy/pulse
@@ -319,7 +319,7 @@
/datum/outfit/admin/pirate
name = "Space Pirate"
- uniform = /obj/item/clothing/under/pirate
+ uniform = /obj/item/clothing/under/costume/pirate
back = /obj/item/storage/backpack/satchel
belt = /obj/item/storage/belt/utility/full/multitool
gloves = /obj/item/clothing/gloves/combat
@@ -386,7 +386,7 @@
/datum/outfit/admin/tunnel_clown
name = "Tunnel Clown"
- uniform = /obj/item/clothing/under/rank/clown
+ uniform = /obj/item/clothing/under/rank/civilian/clown
suit = /obj/item/clothing/suit/hooded/chaplain_hoodie
back = /obj/item/storage/backpack
belt = /obj/item/storage/belt/utility/full/multitool
@@ -421,7 +421,7 @@
/datum/outfit/admin/mime_assassin
name = "Mime Assassin"
- uniform = /obj/item/clothing/under/mime
+ uniform = /obj/item/clothing/under/rank/civilian/mime
suit = /obj/item/clothing/suit/suspenders
back = /obj/item/storage/backpack/mime
belt = /obj/item/storage/belt/utility/full/multitool
@@ -449,7 +449,7 @@
/datum/outfit/admin/mime_assassin/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
if(H.gender == FEMALE)
- uniform = /obj/item/clothing/under/sexymime
+ uniform = /obj/item/clothing/under/rank/civilian/mime/sexy
suit = /obj/item/clothing/mask/gas/sexymime
/datum/outfit/admin/mime_assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -547,7 +547,7 @@
/datum/outfit/admin/musician
name = "Musician"
- uniform = /obj/item/clothing/under/singerb
+ uniform = /obj/item/clothing/under/costume/singerb
back = /obj/item/storage/backpack
shoes = /obj/item/clothing/shoes/singerb
gloves = /obj/item/clothing/gloves/color/white
@@ -584,7 +584,7 @@
/datum/outfit/admin/soviet
name = "Soviet Generic"
gloves = /obj/item/clothing/gloves/combat
- uniform = /obj/item/clothing/under/soviet
+ uniform = /obj/item/clothing/under/costume/soviet
back = /obj/item/storage/backpack/satchel
head = /obj/item/clothing/head/ushanka
id = /obj/item/card/id
@@ -802,7 +802,7 @@
/datum/outfit/admin/sol_trader
name = "Sol Trader"
- uniform = /obj/item/clothing/under/rank/cargotech
+ uniform = /obj/item/clothing/under/rank/cargo/tech
back = /obj/item/storage/backpack/industrial
belt = /obj/item/melee/classic_baton
head = /obj/item/clothing/head/soft
@@ -949,7 +949,7 @@
/datum/outfit/admin/tournament_gangster //gangster are supposed to fight each other. --rastaf0
name = "Tournament Gangster"
- uniform = /obj/item/clothing/under/det
+ uniform = /obj/item/clothing/under/rank/security/detective
suit = /obj/item/clothing/suit/storage/det_suit
shoes = /obj/item/clothing/shoes/black
head = /obj/item/clothing/head/det_hat
@@ -960,7 +960,7 @@
/datum/outfit/admin/tournament_chef //Steven Seagal FTW
name = "Tournament Chef"
- uniform = /obj/item/clothing/under/rank/chef
+ uniform = /obj/item/clothing/under/rank/civilian/chef
suit = /obj/item/clothing/suit/chef
shoes = /obj/item/clothing/shoes/black
head = /obj/item/clothing/head/chefhat
@@ -972,7 +972,7 @@
/datum/outfit/admin/tournament_janitor
name = "Tournament Janitor"
- uniform = /obj/item/clothing/under/rank/janitor
+ uniform = /obj/item/clothing/under/rank/civilian/janitor
back = /obj/item/storage/backpack
shoes = /obj/item/clothing/shoes/black
l_hand = /obj/item/reagent_containers/glass/bucket
@@ -993,7 +993,7 @@
/datum/outfit/admin/survivor
name = "Survivor"
- uniform = /obj/item/clothing/under/overalls
+ uniform = /obj/item/clothing/under/misc/overalls
back = /obj/item/storage/backpack
gloves = /obj/item/clothing/gloves/color/latex
shoes = /obj/item/clothing/shoes/white
@@ -1020,7 +1020,7 @@
/datum/outfit/admin/masked_killer
name = "Masked Killer"
- uniform = /obj/item/clothing/under/overalls
+ uniform = /obj/item/clothing/under/misc/overalls
suit = /obj/item/clothing/suit/apron
back = /obj/item/storage/backpack
gloves = /obj/item/clothing/gloves/color/latex
@@ -1115,7 +1115,7 @@
/datum/outfit/admin/ancient_vampire
name = "Ancient Vampire"
- uniform = /obj/item/clothing/under/victsuit/red
+ uniform = /obj/item/clothing/under/suit/victsuit/red
suit = /obj/item/clothing/suit/draculacoat
back = /obj/item/storage/backpack
gloves = /obj/item/clothing/gloves/combat
@@ -1263,7 +1263,7 @@
/datum/outfit/admin/honksquad
name = "Honksquad"
- uniform = /obj/item/clothing/under/rank/clown
+ uniform = /obj/item/clothing/under/rank/civilian/clown
mask = /obj/item/clothing/mask/gas/clown_hat
back = /obj/item/storage/backpack/clown
id = /obj/item/card/id/clown
@@ -1286,7 +1286,7 @@
/datum/outfit/admin/honksquad/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
if(H.gender == FEMALE)
- uniform = /obj/item/clothing/under/rank/clown/sexy
+ uniform = /obj/item/clothing/under/rank/civilian/clown/sexy
mask = /obj/item/clothing/mask/gas/clown_hat/sexy
if(prob(50))
diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm
index 79b9e86d054..fdfc432eab3 100644
--- a/code/datums/spells/banana_touch.dm
+++ b/code/datums/spells/banana_touch.dm
@@ -51,7 +51,7 @@
qdel(shoes)
qdel(wear_mask)
qdel(w_uniform)
- equip_to_slot_if_possible(new /obj/item/clothing/under/rank/clown/nodrop, slot_w_uniform, TRUE, TRUE)
+ equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/clown/nodrop, slot_w_uniform, TRUE, TRUE)
equip_to_slot_if_possible(new /obj/item/clothing/shoes/clown_shoes/nodrop, slot_shoes, TRUE, TRUE)
equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/clown_hat/nodrop, slot_wear_mask, TRUE, TRUE)
dna.SetSEState(GLOB.clumsyblock, TRUE, TRUE)
diff --git a/code/datums/spells/cluwne.dm b/code/datums/spells/cluwne.dm
index 35fedb31e66..6430ba3158a 100644
--- a/code/datums/spells/cluwne.dm
+++ b/code/datums/spells/cluwne.dm
@@ -79,5 +79,5 @@
unEquip(gloves, 1)
qdel(G)
- equip_to_slot_if_possible(new /obj/item/clothing/under/lawyer/black, slot_w_uniform, TRUE, TRUE)
+ equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/lawyer/black, slot_w_uniform, TRUE, TRUE)
equip_to_slot_if_possible(new /obj/item/clothing/shoes/black, slot_shoes, TRUE, TRUE)
diff --git a/code/datums/spells/mime_malaise.dm b/code/datums/spells/mime_malaise.dm
index e11a92698e6..762039dddf7 100644
--- a/code/datums/spells/mime_malaise.dm
+++ b/code/datums/spells/mime_malaise.dm
@@ -38,7 +38,7 @@
unEquip(w_uniform, TRUE)
unEquip(wear_suit, TRUE)
equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/mime, slot_wear_mask, TRUE, TRUE)
- equip_to_slot_if_possible(new /obj/item/clothing/under/mime, slot_w_uniform, TRUE, TRUE)
+ equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/mime, slot_w_uniform, TRUE, TRUE)
equip_to_slot_if_possible(new /obj/item/clothing/suit/suspenders, slot_wear_suit, TRUE, TRUE)
Silence(14 SECONDS)
else
@@ -46,7 +46,7 @@
qdel(w_uniform)
qdel(wear_suit)
equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/mime/nodrop, slot_wear_mask, TRUE, TRUE)
- equip_to_slot_if_possible(new /obj/item/clothing/under/mime/nodrop, slot_w_uniform, TRUE, TRUE)
+ equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/mime/nodrop, slot_w_uniform, TRUE, TRUE)
equip_to_slot_if_possible(new /obj/item/clothing/suit/suspenders/nodrop, slot_wear_suit, TRUE, TRUE)
dna.SetSEState(GLOB.muteblock , TRUE, TRUE)
singlemutcheck(src, GLOB.muteblock, MUTCHK_FORCED)
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 8fa5be9eba8..ad41c7b3619 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -480,13 +480,13 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
/datum/supply_packs/security/securityclothes
name = "Security Clothing Crate"
- contains = list(/obj/item/clothing/under/rank/security/corp,
- /obj/item/clothing/under/rank/security/corp,
+ contains = list(/obj/item/clothing/under/rank/security/officer/corporate,
+ /obj/item/clothing/under/rank/security/officer/corporate,
/obj/item/clothing/head/soft/sec/corp,
/obj/item/clothing/head/soft/sec/corp,
- /obj/item/clothing/under/rank/warden/corp,
+ /obj/item/clothing/under/rank/security/warden/corporate,
/obj/item/clothing/head/beret/sec/warden,
- /obj/item/clothing/under/rank/head_of_security/corp,
+ /obj/item/clothing/under/rank/security/head_of_security/corporate,
/obj/item/clothing/head/HoS/beret)
cost = 30
containername = "security clothing crate"
@@ -1428,8 +1428,8 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
/obj/item/storage/bible/booze,
/obj/item/clothing/suit/hooded/chaplain_hoodie,
/obj/item/clothing/suit/hooded/chaplain_hoodie,
- /obj/item/clothing/under/burial,
- /obj/item/clothing/under/burial)
+ /obj/item/clothing/under/misc/burial,
+ /obj/item/clothing/under/misc/burial)
cost = 40
containername = "religious supplies crate"
@@ -1443,7 +1443,7 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
/datum/supply_packs/misc/barberkit
name = "Barber Kit Crate"
- contains = list(/obj/item/clothing/under/barber,
+ contains = list(/obj/item/clothing/under/rank/civilian/barber,
/obj/item/storage/box/lip_stick,
/obj/item/storage/box/barber)
cost = 20
@@ -1604,10 +1604,10 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
contains = list(/obj/item/storage/backpack/clown,
/obj/item/clothing/shoes/clown_shoes,
/obj/item/clothing/mask/gas/clown_hat,
- /obj/item/clothing/under/rank/clown,
+ /obj/item/clothing/under/rank/civilian/clown,
/obj/item/bikehorn,
/obj/item/storage/backpack/mime,
- /obj/item/clothing/under/mime,
+ /obj/item/clothing/under/rank/civilian/mime,
/obj/item/clothing/shoes/black,
/obj/item/clothing/gloves/color/white,
/obj/item/clothing/mask/gas/mime,
@@ -1637,12 +1637,11 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
/obj/item/clothing/head/fedora/whitefedora,
/obj/item/clothing/head/fedora/brownfedora,
/obj/item/clothing/head/fedora,
- /obj/item/clothing/under/flappers,
- /obj/item/clothing/under/mafia,
- /obj/item/clothing/under/mafia/vest,
- /obj/item/clothing/under/mafia/white,
- /obj/item/clothing/under/mafia/sue,
- /obj/item/clothing/under/mafia/tan,
+ /obj/item/clothing/under/costume/flappers,
+ /obj/item/clothing/under/suit/mafia,
+ /obj/item/clothing/under/suit/mafia/vest,
+ /obj/item/clothing/under/suit/mafia/white,
+ /obj/item/clothing/under/suit/mafia/tan,
/obj/item/gun/projectile/shotgun/toy/tommygun,
/obj/item/gun/projectile/shotgun/toy/tommygun)
cost = 15
@@ -1739,14 +1738,14 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
/datum/supply_packs/misc/formalwear //This is a very classy crate.
name = "Formal Wear Crate"
- contains = list(/obj/item/clothing/under/blacktango,
- /obj/item/clothing/under/assistantformal,
- /obj/item/clothing/under/assistantformal,
- /obj/item/clothing/under/lawyer/bluesuit,
+ contains = list(/obj/item/clothing/under/dress/blacktango,
+ /obj/item/clothing/under/misc/assistantformal,
+ /obj/item/clothing/under/misc/assistantformal,
+ /obj/item/clothing/under/rank/civilian/lawyer/bluesuit,
/obj/item/clothing/suit/storage/lawyer/bluejacket,
- /obj/item/clothing/under/lawyer/purpsuit,
+ /obj/item/clothing/under/rank/civilian/lawyer/purpsuit,
/obj/item/clothing/suit/storage/lawyer/purpjacket,
- /obj/item/clothing/under/lawyer/black,
+ /obj/item/clothing/under/rank/civilian/lawyer/black,
/obj/item/clothing/suit/storage/lawyer/blackjacket,
/obj/item/clothing/accessory/waistcoat,
/obj/item/clothing/accessory/blue,
@@ -1760,11 +1759,11 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/shoes/laceup,
- /obj/item/clothing/under/suit_jacket/charcoal,
- /obj/item/clothing/under/suit_jacket/navy,
- /obj/item/clothing/under/suit_jacket/burgundy,
- /obj/item/clothing/under/suit_jacket/checkered,
- /obj/item/clothing/under/suit_jacket/tan,
+ /obj/item/clothing/under/suit/charcoal,
+ /obj/item/clothing/under/suit/navy,
+ /obj/item/clothing/under/suit/burgundy,
+ /obj/item/clothing/under/suit/checkered,
+ /obj/item/clothing/under/suit/tan,
/obj/item/lipstick/random)
cost = 30 //Lots of very expensive items. You gotta pay up to look good!
containername = "formal-wear crate"
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 7904f205b04..2cca4c00e33 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -393,7 +393,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
name = "Contortionist's Jumpsuit"
desc = "A highly flexible jumpsuit that will help you navigate the ventilation loops of the station internally. Comes with pockets and ID slot, but can't be used without stripping off most gear, including backpack, belt, helmet, and exosuit. Free hands are also necessary to crawl around inside."
reference = "AIRJ"
- item = /obj/item/clothing/under/contortionist
+ item = /obj/item/clothing/under/rank/engineering/atmospheric_technician/contortionist
cost = 6
job = list("Life Support Specialist")
diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm
index c829d044fa7..7cfb1b219ff 100644
--- a/code/game/gamemodes/wizard/artefact.dm
+++ b/code/game/gamemodes/wizard/artefact.dm
@@ -499,13 +499,13 @@ GLOBAL_LIST_EMPTY(multiverse)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
- M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/really_black(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/suit/really_black(M), slot_w_uniform)
M.equip_to_slot_or_del(sword, slot_r_hand)
if("roman")
var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire)
M.equip_to_slot_or_del(new hat(M), slot_head)
- M.equip_to_slot_or_del(new /obj/item/clothing/under/roman(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/shield/riot/roman(M), slot_l_hand)
M.equip_to_slot_or_del(sword, slot_r_hand)
@@ -545,7 +545,7 @@ GLOBAL_LIST_EMPTY(multiverse)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/head/kitty(M), slot_head)
- M.equip_to_slot_or_del(new /obj/item/clothing/under/schoolgirl(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/dress/schoolgirl(M), slot_w_uniform)
M.equip_to_slot_or_del(sword, slot_r_hand)
if("cultist")
@@ -555,14 +555,14 @@ GLOBAL_LIST_EMPTY(multiverse)
M.equip_to_slot_or_del(sword, slot_r_hand)
if("highlander")
- M.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
M.equip_to_slot_or_del(sword, slot_r_hand)
if("clown")
- M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/civilian/clown(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask)
@@ -570,7 +570,7 @@ GLOBAL_LIST_EMPTY(multiverse)
M.equip_to_slot_or_del(sword, slot_r_hand)
if("killer")
- M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/misc/overalls(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask)
@@ -585,7 +585,7 @@ GLOBAL_LIST_EMPTY(multiverse)
carried_item.add_mob_blood(M)
if("pirate")
- M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/costume/pirate(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses)
@@ -598,7 +598,7 @@ GLOBAL_LIST_EMPTY(multiverse)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/hgpirate(M), slot_wear_suit)
- M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/costume/soviet(M), slot_w_uniform)
M.equip_to_slot_or_del(sword, slot_r_hand)
if("officer")
@@ -614,7 +614,7 @@ GLOBAL_LIST_EMPTY(multiverse)
if("gladiator")
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/gladiator(M), slot_head)
- M.equip_to_slot_or_del(new /obj/item/clothing/under/gladiator(M), slot_w_uniform)
+ M.equip_to_slot_or_del(new /obj/item/clothing/under/costume/gladiator(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
M.equip_to_slot_or_del(sword, slot_r_hand)
@@ -739,13 +739,13 @@ GLOBAL_LIST_EMPTY(multiverse)
if("roman")
var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire)
H.equip_to_slot_or_del(new hat(H), slot_head)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/shield/riot/roman(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/claymore(H), slot_r_hand)
H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), slot_back)
if("pirate")
- H.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/pirate(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate_brown(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H), slot_shoes)
@@ -756,13 +756,13 @@ GLOBAL_LIST_EMPTY(multiverse)
if("yand")//mine is an evil laugh
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/head/kitty(H), slot_head)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/schoolgirl(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/dress/schoolgirl(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/katana(H), slot_r_hand)
H.equip_to_slot_or_del(new /obj/item/shield/riot/roman(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), slot_back)
if("clown")
- H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/civilian/clown(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask)
H.equip_to_slot_or_del(new /obj/item/clothing/head/stalhelm(H), slot_head)
@@ -791,7 +791,7 @@ GLOBAL_LIST_EMPTY(multiverse)
H.revive()
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/head/kitty(H), slot_head)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/schoolgirl(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/dress/schoolgirl(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/katana(H), slot_r_hand)
H.equip_to_slot_or_del(new /obj/item/shield/riot/roman(H), slot_l_hand)
diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm
index 27cf38d481d..58469c0c8ac 100644
--- a/code/game/jobs/job/engineering.dm
+++ b/code/game/jobs/job/engineering.dm
@@ -26,7 +26,7 @@
name = "Chief Engineer"
jobtype = /datum/job/chief_engineer
- uniform = /obj/item/clothing/under/rank/chief_engineer
+ uniform = /obj/item/clothing/under/rank/engineering/chief_engineer
belt = /obj/item/storage/belt/utility/chief/full
gloves = /obj/item/clothing/gloves/color/black/ce
shoes = /obj/item/clothing/shoes/brown
@@ -66,7 +66,7 @@
name = "Station Engineer"
jobtype = /datum/job/engineer
- uniform = /obj/item/clothing/under/rank/engineer
+ uniform = /obj/item/clothing/under/rank/engineering/engineer
belt = /obj/item/storage/belt/utility/full
shoes = /obj/item/clothing/shoes/workboots
head = /obj/item/clothing/head/hardhat
@@ -103,7 +103,7 @@
name = "Life Support Specialist"
jobtype = /datum/job/atmos
- uniform = /obj/item/clothing/under/rank/atmospheric_technician
+ uniform = /obj/item/clothing/under/rank/engineering/atmospheric_technician
belt = /obj/item/storage/belt/utility/atmostech
shoes = /obj/item/clothing/shoes/workboots
l_ear = /obj/item/radio/headset/headset_eng
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index 03ffb8e4605..20dee0a432e 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -24,7 +24,7 @@
name = "Chief Medical Officer"
jobtype = /datum/job/cmo
- uniform = /obj/item/clothing/under/rank/chief_medical_officer
+ uniform = /obj/item/clothing/under/rank/medical/chief_medical_officer
suit = /obj/item/clothing/suit/storage/labcoat/cmo
shoes = /obj/item/clothing/shoes/brown
l_ear = /obj/item/radio/headset/heads/cmo
@@ -61,7 +61,7 @@
name = "Medical Doctor"
jobtype = /datum/job/doctor
- uniform = /obj/item/clothing/under/rank/medical
+ uniform = /obj/item/clothing/under/rank/medical/doctor
suit = /obj/item/clothing/suit/storage/labcoat
shoes = /obj/item/clothing/shoes/white
l_ear = /obj/item/radio/headset/headset_med
@@ -94,7 +94,7 @@
name = "Coroner"
jobtype = /datum/job/coroner
- uniform = /obj/item/clothing/under/rank/medical/mortician
+ uniform = /obj/item/clothing/under/rank/medical/scrubs/coroner
suit = /obj/item/clothing/suit/storage/labcoat/mortician
shoes = /obj/item/clothing/shoes/white
l_ear = /obj/item/radio/headset/headset_med
@@ -118,19 +118,19 @@
if(H.mind && H.mind.role_alt_title)
switch(H.mind.role_alt_title)
if("Surgeon")
- uniform = /obj/item/clothing/under/rank/medical/blue
+ uniform = /obj/item/clothing/under/rank/medical/scrubs
head = /obj/item/clothing/head/surgery/blue
if("Medical Doctor")
- uniform = /obj/item/clothing/under/rank/medical
+ uniform = /obj/item/clothing/under/rank/medical/doctor
if("Nurse")
if(H.gender == FEMALE)
if(prob(50))
- uniform = /obj/item/clothing/under/rank/nursesuit
+ uniform = /obj/item/clothing/under/rank/medical/nursesuit
else
- uniform = /obj/item/clothing/under/rank/nurse
+ uniform = /obj/item/clothing/under/rank/medical/nurse
head = /obj/item/clothing/head/nursehat
else
- uniform = /obj/item/clothing/under/rank/medical/purple
+ uniform = /obj/item/clothing/under/rank/medical/scrubs/purple
@@ -156,7 +156,7 @@
name = "Chemist"
jobtype = /datum/job/chemist
- uniform = /obj/item/clothing/under/rank/chemist
+ uniform = /obj/item/clothing/under/rank/medical/chemist
suit = /obj/item/clothing/suit/storage/labcoat/chemist
shoes = /obj/item/clothing/shoes/white
l_ear = /obj/item/radio/headset/headset_med
@@ -188,7 +188,7 @@
name = "Geneticist"
jobtype = /datum/job/geneticist
- uniform = /obj/item/clothing/under/rank/geneticist
+ uniform = /obj/item/clothing/under/rank/rnd/geneticist
suit = /obj/item/clothing/suit/storage/labcoat/genetics
shoes = /obj/item/clothing/shoes/white
l_ear = /obj/item/radio/headset/headset_medsci
@@ -222,7 +222,7 @@
name = "Virologist"
jobtype = /datum/job/virologist
- uniform = /obj/item/clothing/under/rank/virologist
+ uniform = /obj/item/clothing/under/rank/medical/virologist
suit = /obj/item/clothing/suit/storage/labcoat/virologist
shoes = /obj/item/clothing/shoes/white
mask = /obj/item/clothing/mask/surgical
@@ -254,7 +254,7 @@
name = "Psychiatrist"
jobtype = /datum/job/psychiatrist
- uniform = /obj/item/clothing/under/rank/medical
+ uniform = /obj/item/clothing/under/rank/medical/doctor
suit = /obj/item/clothing/suit/storage/labcoat
shoes = /obj/item/clothing/shoes/laceup
l_ear = /obj/item/radio/headset/headset_med
@@ -267,11 +267,11 @@
if(H.mind && H.mind.role_alt_title)
switch(H.mind.role_alt_title)
if("Psychiatrist")
- uniform = /obj/item/clothing/under/rank/psych
+ uniform = /obj/item/clothing/under/rank/medical/psych
if("Psychologist")
- uniform = /obj/item/clothing/under/rank/psych/turtleneck
+ uniform = /obj/item/clothing/under/rank/medical/psych/turtleneck
if("Therapist")
- uniform = /obj/item/clothing/under/rank/medical
+ uniform = /obj/item/clothing/under/rank/medical/doctor
/datum/job/paramedic
title = "Paramedic"
diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm
index 759c696cf9f..3e704c81d69 100644
--- a/code/game/jobs/job/science.dm
+++ b/code/game/jobs/job/science.dm
@@ -31,7 +31,7 @@
name = "Research Director"
jobtype = /datum/job/rd
- uniform = /obj/item/clothing/under/rank/research_director
+ uniform = /obj/item/clothing/under/rank/rnd/research_director
suit = /obj/item/clothing/suit/storage/labcoat
shoes = /obj/item/clothing/shoes/brown
l_ear = /obj/item/radio/headset/heads/rd
@@ -73,7 +73,7 @@
name = "Scientist"
jobtype = /datum/job/scientist
- uniform = /obj/item/clothing/under/rank/scientist
+ uniform = /obj/item/clothing/under/rank/rnd/scientist
suit = /obj/item/clothing/suit/storage/labcoat/science
shoes = /obj/item/clothing/shoes/white
l_ear = /obj/item/radio/headset/headset_sci
@@ -112,7 +112,7 @@
name = "Roboticist"
jobtype = /datum/job/roboticist
- uniform = /obj/item/clothing/under/rank/roboticist
+ uniform = /obj/item/clothing/under/rank/rnd/roboticist
suit = /obj/item/clothing/suit/storage/labcoat
belt = /obj/item/storage/belt/utility/full
shoes = /obj/item/clothing/shoes/black
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 786d44f92e8..5a339bb2578 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -27,7 +27,7 @@
name = "Head of Security"
jobtype = /datum/job/hos
- uniform = /obj/item/clothing/under/rank/head_of_security
+ uniform = /obj/item/clothing/under/rank/security/head_of_security
suit = /obj/item/clothing/suit/armor/hos
gloves = /obj/item/clothing/gloves/color/black/hos
shoes = /obj/item/clothing/shoes/jackboots
@@ -70,7 +70,7 @@
name = "Warden"
jobtype = /datum/job/warden
- uniform = /obj/item/clothing/under/rank/warden
+ uniform = /obj/item/clothing/under/rank/security/warden
suit = /obj/item/clothing/suit/armor/vest/warden
gloves = /obj/item/clothing/gloves/color/black
shoes = /obj/item/clothing/shoes/jackboots
@@ -116,7 +116,7 @@
name = "Detective"
jobtype = /datum/job/detective
- uniform = /obj/item/clothing/under/det
+ uniform = /obj/item/clothing/under/rank/security/detective
suit = /obj/item/clothing/suit/storage/det_suit
gloves = /obj/item/clothing/gloves/color/black
shoes = /obj/item/clothing/shoes/brown
@@ -171,7 +171,7 @@
/datum/outfit/job/officer
name = "Security Officer"
jobtype = /datum/job/officer
- uniform = /obj/item/clothing/under/rank/security
+ uniform = /obj/item/clothing/under/rank/security/officer
suit = /obj/item/clothing/suit/armor/vest/security
gloves = /obj/item/clothing/gloves/color/black
shoes = /obj/item/clothing/shoes/jackboots
diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm
index d7392a1e226..e3b10fae422 100644
--- a/code/game/jobs/job/supervisor.dm
+++ b/code/game/jobs/job/supervisor.dm
@@ -86,7 +86,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
/datum/outfit/job/hop
name = "Head of Personnel"
jobtype = /datum/job/hop
- uniform = /obj/item/clothing/under/rank/head_of_personnel
+ uniform = /obj/item/clothing/under/rank/civilian/head_of_personnel
shoes = /obj/item/clothing/shoes/brown
head = /obj/item/clothing/head/hopcap
glasses = /obj/item/clothing/glasses/hud/skills/sunglasses
@@ -134,7 +134,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
/datum/outfit/job/nanotrasenrep
name = "Nanotrasen Representative"
jobtype = /datum/job/nanotrasenrep
- uniform = /obj/item/clothing/under/rank/ntrep
+ uniform = /obj/item/clothing/under/rank/civilian/dress_shirt
suit = /obj/item/clothing/suit/storage/ntrep
shoes = /obj/item/clothing/shoes/centcom
glasses = /obj/item/clothing/glasses/hud/skills/sunglasses
@@ -177,7 +177,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
/datum/outfit/job/blueshield
name = "Blueshield"
jobtype = /datum/job/blueshield
- uniform = /obj/item/clothing/under/rank/blueshield
+ uniform = /obj/item/clothing/under/rank/centcom/blueshield
suit = /obj/item/clothing/suit/armor/vest/blueshield
gloves = /obj/item/clothing/gloves/combat
shoes = /obj/item/clothing/shoes/jackboots
@@ -222,7 +222,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
/datum/outfit/job/judge
name = "Magistrate"
jobtype = /datum/job/judge
- uniform = /obj/item/clothing/under/suit_jacket/really_black
+ uniform = /obj/item/clothing/under/suit/really_black
suit = /obj/item/clothing/suit/judgerobe
gloves = /obj/item/clothing/gloves/color/white
shoes = /obj/item/clothing/shoes/centcom
@@ -264,7 +264,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
/datum/outfit/job/lawyer
name = "Internal Affairs Agent"
jobtype = /datum/job/lawyer
- uniform = /obj/item/clothing/under/rank/internalaffairs
+ uniform = /obj/item/clothing/under/rank/civilian/internalaffairs
suit = /obj/item/clothing/suit/storage/internalaffairs
shoes = /obj/item/clothing/shoes/brown
l_ear = /obj/item/radio/headset/headset_iaa/alt
diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm
index 6fc7cedb412..cf96747184a 100644
--- a/code/game/jobs/job/support.dm
+++ b/code/game/jobs/job/support.dm
@@ -17,7 +17,7 @@
name = "Quartermaster"
jobtype = /datum/job/qm
- uniform = /obj/item/clothing/under/rank/cargo
+ uniform = /obj/item/clothing/under/rank/cargo/quartermaster
shoes = /obj/item/clothing/shoes/brown
l_ear = /obj/item/radio/headset/headset_cargo
glasses = /obj/item/clothing/glasses/sunglasses
@@ -45,7 +45,7 @@
name = "Cargo Technician"
jobtype = /datum/job/cargo_tech
- uniform = /obj/item/clothing/under/rank/cargotech
+ uniform = /obj/item/clothing/under/rank/cargo/tech
shoes = /obj/item/clothing/shoes/black
l_ear = /obj/item/radio/headset/headset_cargo
id = /obj/item/card/id/supply
@@ -75,7 +75,7 @@
l_ear = /obj/item/radio/headset/headset_cargo/mining
shoes = /obj/item/clothing/shoes/workboots/mining
gloves = /obj/item/clothing/gloves/color/black
- uniform = /obj/item/clothing/under/rank/miner/lavaland
+ uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland
l_pocket = /obj/item/reagent_containers/hypospray/autoinjector/survival
r_pocket = /obj/item/storage/bag/ore
id = /obj/item/card/id/supply
@@ -142,7 +142,7 @@
name = "Bartender"
jobtype = /datum/job/bartender
- uniform = /obj/item/clothing/under/rank/bartender
+ uniform = /obj/item/clothing/under/rank/civilian/bartender
suit = /obj/item/clothing/suit/armor/vest
belt = /obj/item/storage/belt/bandolier/full
shoes = /obj/item/clothing/shoes/black
@@ -184,7 +184,7 @@
name = "Chef"
jobtype = /datum/job/chef
- uniform = /obj/item/clothing/under/rank/chef
+ uniform = /obj/item/clothing/under/rank/civilian/chef
suit = /obj/item/clothing/suit/chef
belt = /obj/item/storage/belt/chef
shoes = /obj/item/clothing/shoes/black
@@ -223,7 +223,7 @@
name = "Botanist"
jobtype = /datum/job/hydro
- uniform = /obj/item/clothing/under/rank/hydroponics
+ uniform = /obj/item/clothing/under/rank/civilian/hydroponics
suit = /obj/item/clothing/suit/apron
gloves = /obj/item/clothing/gloves/botanic_leather
shoes = /obj/item/clothing/shoes/black
@@ -257,7 +257,7 @@
name = "Clown"
jobtype = /datum/job/clown
- uniform = /obj/item/clothing/under/rank/clown
+ uniform = /obj/item/clothing/under/rank/civilian/clown
shoes = /obj/item/clothing/shoes/clown_shoes
mask = /obj/item/clothing/mask/gas/clown_hat
l_pocket = /obj/item/bikehorn
@@ -284,7 +284,7 @@
. = ..()
if(H.gender == FEMALE)
mask = /obj/item/clothing/mask/gas/clown_hat/sexy
- uniform = /obj/item/clothing/under/rank/clown/sexy
+ uniform = /obj/item/clothing/under/rank/civilian/clown/sexy
/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
@@ -346,7 +346,7 @@
name = "Mime"
jobtype = /datum/job/mime
- uniform = /obj/item/clothing/under/mime
+ uniform = /obj/item/clothing/under/rank/civilian/mime
suit = /obj/item/clothing/suit/suspenders
back = /obj/item/storage/backpack/mime
gloves = /obj/item/clothing/gloves/color/white
@@ -365,7 +365,7 @@
/datum/outfit/job/mime/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
if(H.gender == FEMALE)
- uniform = /obj/item/clothing/under/sexymime
+ uniform = /obj/item/clothing/under/rank/civilian/mime/sexy
suit = /obj/item/clothing/mask/gas/sexymime
/datum/outfit/job/mime/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -399,7 +399,7 @@
name = "Janitor"
jobtype = /datum/job/janitor
- uniform = /obj/item/clothing/under/rank/janitor
+ uniform = /obj/item/clothing/under/rank/civilian/janitor
shoes = /obj/item/clothing/shoes/black
l_ear = /obj/item/radio/headset/headset_service
pda = /obj/item/pda/janitor
@@ -425,7 +425,7 @@
name = "Librarian"
jobtype = /datum/job/librarian
- uniform = /obj/item/clothing/under/suit_jacket/red
+ uniform = /obj/item/clothing/under/rank/civilian/librarian
shoes = /obj/item/clothing/shoes/black
l_ear = /obj/item/radio/headset/headset_service
l_pocket = /obj/item/laser_pointer
@@ -454,7 +454,7 @@
name = "Barber"
jobtype = /datum/job/barber
- uniform = /obj/item/clothing/under/barber
+ uniform = /obj/item/clothing/under/rank/civilian/barber
shoes = /obj/item/clothing/shoes/black
l_ear = /obj/item/radio/headset/headset_service
backpack_contents = list(
diff --git a/code/game/jobs/job/support_chaplain.dm b/code/game/jobs/job/support_chaplain.dm
index 3e48b210f49..294776cb1f0 100644
--- a/code/game/jobs/job/support_chaplain.dm
+++ b/code/game/jobs/job/support_chaplain.dm
@@ -18,7 +18,7 @@
name = "Chaplain"
jobtype = /datum/job/chaplain
- uniform = /obj/item/clothing/under/rank/chaplain
+ uniform = /obj/item/clothing/under/rank/civilian/chaplain
shoes = /obj/item/clothing/shoes/black
l_ear = /obj/item/radio/headset/headset_service
pda = /obj/item/pda/chaplain
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index e7fe40070be..a5d32fc09c3 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -1113,7 +1113,7 @@
/obj/item/gun/projectile/shotgun/automatic/combat = 2,/obj/item/gun/projectile/automatic/gyropistol = 1,
/obj/item/gun/projectile/shotgun = 2,/obj/item/gun/projectile/automatic/ar = 2)
premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2,/obj/item/ammo_box/magazine/m50 = 4,/obj/item/ammo_box/magazine/m45 = 2,/obj/item/ammo_box/magazine/m75 = 2)
- contraband = list(/obj/item/clothing/under/patriotsuit = 1,/obj/item/bedsheet/patriot = 3)
+ contraband = list(/obj/item/clothing/under/costume/patriotsuit = 1,/obj/item/bedsheet/patriot = 3)
armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50)
resistance_flags = FIRE_PROOF
@@ -1448,65 +1448,65 @@
vend_reply = "Thank you for using AutoDrobe!"
products = list(/obj/item/clothing/suit/chickensuit = 1,
/obj/item/clothing/head/chicken = 1,
- /obj/item/clothing/under/gladiator = 1,
+ /obj/item/clothing/under/costume/gladiator = 1,
/obj/item/clothing/head/helmet/gladiator = 1,
- /obj/item/clothing/under/gimmick/rank/captain/suit = 1,
+ /obj/item/clothing/under/misc/gimmick/rank/captain/suit = 1,
/obj/item/clothing/head/flatcap = 1,
/obj/item/clothing/suit/storage/labcoat/mad = 1,
/obj/item/clothing/glasses/gglasses = 1,
/obj/item/clothing/shoes/jackboots = 1,
- /obj/item/clothing/under/schoolgirl = 1,
- /obj/item/clothing/under/blackskirt = 1,
+ /obj/item/clothing/under/dress/schoolgirl = 1,
+ /obj/item/clothing/under/dress/blackskirt = 1,
/obj/item/clothing/suit/toggle/owlwings = 1,
- /obj/item/clothing/under/owl = 1,
+ /obj/item/clothing/under/costume/owl = 1,
/obj/item/clothing/mask/gas/owl_mask = 1,
/obj/item/clothing/suit/toggle/owlwings/griffinwings = 1,
- /obj/item/clothing/under/griffin = 1,
+ /obj/item/clothing/under/costume/griffin = 1,
/obj/item/clothing/shoes/griffin = 1,
/obj/item/clothing/head/griffin = 1,
/obj/item/clothing/accessory/waistcoat = 1,
- /obj/item/clothing/under/suit_jacket = 1,
+ /obj/item/clothing/under/suit/black = 1,
/obj/item/clothing/head/that =1,
- /obj/item/clothing/under/kilt = 1,
+ /obj/item/clothing/under/costume/kilt = 1,
/obj/item/clothing/accessory/waistcoat = 1,
/obj/item/clothing/glasses/monocle =1,
/obj/item/clothing/head/bowlerhat = 1,
/obj/item/cane = 1,
- /obj/item/clothing/under/sl_suit = 1,
+ /obj/item/clothing/under/misc/sl_suit = 1,
/obj/item/clothing/mask/fakemoustache = 1,
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1,
/obj/item/clothing/head/plaguedoctorhat = 1,
/obj/item/clothing/mask/gas/plaguedoctor = 1,
/obj/item/clothing/suit/apron = 1,
- /obj/item/clothing/under/waiter = 1,
+ /obj/item/clothing/under/misc/waiter = 1,
/obj/item/clothing/suit/jacket/miljacket = 1,
/obj/item/clothing/suit/jacket/miljacket/white = 1,
/obj/item/clothing/suit/jacket/miljacket/desert = 1,
/obj/item/clothing/suit/jacket/miljacket/navy = 1,
- /obj/item/clothing/under/pirate = 1,
+ /obj/item/clothing/under/costume/pirate = 1,
/obj/item/clothing/suit/pirate_brown = 1,
/obj/item/clothing/suit/pirate_black =1,
- /obj/item/clothing/under/pirate_rags =1,
+ /obj/item/clothing/under/costume/pirate_rags =1,
/obj/item/clothing/head/pirate = 1,
/obj/item/clothing/head/bandana = 1,
/obj/item/clothing/head/bandana = 1,
- /obj/item/clothing/under/soviet = 1,
+ /obj/item/clothing/under/costume/soviet = 1,
/obj/item/clothing/head/ushanka = 1,
/obj/item/clothing/suit/imperium_monk = 1,
/obj/item/clothing/mask/gas/cyborg = 1,
/obj/item/clothing/suit/holidaypriest = 1,
/obj/item/clothing/head/wizard/marisa/fake = 1,
/obj/item/clothing/suit/wizrobe/marisa/fake = 1,
- /obj/item/clothing/under/sundress = 1,
+ /obj/item/clothing/under/dress/sundress = 1,
/obj/item/clothing/head/witchwig = 1,
/obj/item/twohanded/staff/broom = 1,
/obj/item/clothing/suit/wizrobe/fake = 1,
/obj/item/clothing/head/wizard/fake = 1,
/obj/item/twohanded/staff = 3,
/obj/item/clothing/mask/gas/clown_hat/sexy = 1,
- /obj/item/clothing/under/rank/clown/sexy = 1,
+ /obj/item/clothing/under/rank/civilian/clown/sexy = 1,
/obj/item/clothing/mask/gas/sexymime = 1,
- /obj/item/clothing/under/sexymime = 1,
+ /obj/item/clothing/under/rank/civilian/mime/sexy = 1,
/obj/item/clothing/mask/face/bat = 1,
/obj/item/clothing/mask/face/bee = 1,
/obj/item/clothing/mask/face/bear = 1,
@@ -1525,38 +1525,38 @@
/obj/item/clothing/accessory/red = 1,
/obj/item/clothing/accessory/black = 1,
/obj/item/clothing/accessory/horrible = 1,
- /obj/item/clothing/under/maid = 1,
- /obj/item/clothing/under/janimaid = 1,
- /obj/item/clothing/under/jester = 1,
+ /obj/item/clothing/under/costume/maid = 1,
+ /obj/item/clothing/under/costume/janimaid = 1,
+ /obj/item/clothing/under/costume/jester = 1,
/obj/item/clothing/head/jester = 1,
/obj/item/clothing/under/pants/camo = 1,
/obj/item/clothing/mask/bandana = 1,
/obj/item/clothing/mask/bandana/black = 1,
/obj/item/clothing/shoes/singery = 1,
- /obj/item/clothing/under/singery = 1,
+ /obj/item/clothing/under/costume/singery = 1,
/obj/item/clothing/shoes/singerb = 1,
- /obj/item/clothing/under/singerb = 1,
+ /obj/item/clothing/under/costume/singerb = 1,
/obj/item/clothing/suit/hooded/carp_costume = 1,
/obj/item/clothing/suit/hooded/bee_costume = 1,
/obj/item/clothing/suit/snowman = 1,
/obj/item/clothing/head/snowman = 1,
/obj/item/clothing/head/cueball = 1,
- /obj/item/clothing/under/scratch = 1,
- /obj/item/clothing/under/victdress = 1,
- /obj/item/clothing/under/victdress/red = 1,
+ /obj/item/clothing/under/misc/scratch = 1,
+ /obj/item/clothing/under/dress/victdress = 1,
+ /obj/item/clothing/under/dress/victdress/red = 1,
/obj/item/clothing/suit/victcoat = 1,
/obj/item/clothing/suit/victcoat/red = 1,
- /obj/item/clothing/under/victsuit = 1,
- /obj/item/clothing/under/victsuit/redblk = 1,
- /obj/item/clothing/under/victsuit/red = 1,
+ /obj/item/clothing/under/suit/victsuit = 1,
+ /obj/item/clothing/under/suit/victsuit/redblk = 1,
+ /obj/item/clothing/under/suit/victsuit/red = 1,
/obj/item/clothing/suit/tailcoat = 1,
- /obj/item/clothing/under/tourist_suit = 1,
+ /obj/item/clothing/under/costume/tourist_suit = 1,
/obj/item/clothing/suit/draculacoat = 1,
/obj/item/clothing/head/zepelli = 1,
- /obj/item/clothing/under/redhawaiianshirt = 1,
- /obj/item/clothing/under/pinkhawaiianshirt = 1,
- /obj/item/clothing/under/bluehawaiianshirt = 1,
- /obj/item/clothing/under/orangehawaiianshirt = 1)
+ /obj/item/clothing/under/misc/redhawaiianshirt = 1,
+ /obj/item/clothing/under/misc/pinkhawaiianshirt = 1,
+ /obj/item/clothing/under/misc/bluehawaiianshirt = 1,
+ /obj/item/clothing/under/misc/orangehawaiianshirt = 1)
contraband = list(/obj/item/clothing/suit/judgerobe = 1,
/obj/item/clothing/head/powdered_wig = 1,
/obj/item/gun/magic/wand = 1,
@@ -1566,10 +1566,10 @@
/obj/item/clothing/head/hgpiratecap = 1,
/obj/item/clothing/head/helmet/roman/fake = 1,
/obj/item/clothing/head/helmet/roman/legionaire/fake = 1,
- /obj/item/clothing/under/roman = 1,
+ /obj/item/clothing/under/costume/roman = 1,
/obj/item/clothing/shoes/roman = 1,
/obj/item/shield/riot/roman/fake = 1,
- /obj/item/clothing/under/cuban_suit = 1,
+ /obj/item/clothing/under/costume/cuban_suit = 1,
/obj/item/clothing/head/cuban_hat = 1)
refill_canister = /obj/item/vending_refill/autodrobe
@@ -1647,7 +1647,7 @@
icon_state = "engi"
icon_deny = "engi_deny"
req_access_txt = "11"
- products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/workboots = 4,/obj/item/clothing/head/hardhat = 4,
+ products = list(/obj/item/clothing/under/rank/engineering/chief_engineer = 4,/obj/item/clothing/under/rank/engineering/engineer = 4,/obj/item/clothing/shoes/workboots = 4,/obj/item/clothing/head/hardhat = 4,
/obj/item/storage/belt/utility = 4,/obj/item/clothing/glasses/meson/engine = 4,/obj/item/clothing/gloves/color/yellow = 4, /obj/item/screwdriver = 12,
/obj/item/crowbar = 12,/obj/item/wirecutters = 12,/obj/item/multitool = 12,/obj/item/wrench = 12,/obj/item/t_scanner = 12,
/obj/item/stack/cable_coil = 8, /obj/item/stock_parts/cell = 8, /obj/item/weldingtool = 8,/obj/item/clothing/head/welding = 8,
@@ -1662,7 +1662,7 @@
icon_deny = "robotics_deny"
icon_lightmask = "robotics"
req_access_txt = "29"
- products = list(/obj/item/clothing/suit/storage/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/flash = 4,
+ products = list(/obj/item/clothing/suit/storage/labcoat = 4,/obj/item/clothing/under/rank/rnd/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/flash = 4,
/obj/item/stock_parts/cell/high = 12, /obj/item/assembly/prox_sensor = 3,/obj/item/assembly/signaler = 3,/obj/item/healthanalyzer = 3,
/obj/item/scalpel = 2,/obj/item/circular_saw = 2,/obj/item/tank/internals/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
/obj/item/screwdriver = 5,/obj/item/crowbar = 5)
@@ -1717,7 +1717,7 @@
/obj/item/clothing/under/color/green = 10, /obj/item/clothing/under/color/aqua = 10, /obj/item/clothing/under/color/darkblue = 10, /obj/item/clothing/under/color/blue = 10, /obj/item/clothing/under/color/lightblue = 10, /obj/item/clothing/under/color/purple = 10,
/obj/item/clothing/under/color/lightpurple = 10, /obj/item/clothing/under/color/pink = 10)
contraband = list(/obj/item/clothing/under/syndicate/tacticool = 5,/obj/item/clothing/under/color/orange/prison = 5)
- premium = list(/obj/item/clothing/under/rainbow = 1)
+ premium = list(/obj/item/clothing/under/color/rainbow = 1)
refill_canister = /obj/item/vending_refill/suitdispenser
/obj/machinery/vending/shoedispenser
@@ -1768,10 +1768,10 @@
products = list(/obj/item/clothing/head/that = 2,
/obj/item/clothing/head/fedora = 1,
/obj/item/clothing/glasses/monocle = 1,
- /obj/item/clothing/under/suit_jacket/navy = 2,
- /obj/item/clothing/under/kilt = 1,
- /obj/item/clothing/under/overalls = 1,
- /obj/item/clothing/under/suit_jacket/really_black = 2,
+ /obj/item/clothing/under/suit/navy = 2,
+ /obj/item/clothing/under/costume/kilt = 1,
+ /obj/item/clothing/under/misc/overalls = 1,
+ /obj/item/clothing/under/suit/really_black = 2,
/obj/item/clothing/suit/storage/lawyer/blackjacket = 2,
/obj/item/clothing/under/pants/jeans = 3,
/obj/item/clothing/under/pants/classicjeans = 2,
@@ -1815,11 +1815,11 @@
/obj/item/clothing/accessory/stripedbluescarf = 1,
/obj/item/clothing/accessory/stripedgreenscarf = 1,
/obj/item/clothing/accessory/waistcoat = 1,
- /obj/item/clothing/under/sundress = 2,
- /obj/item/clothing/under/stripeddress = 1,
- /obj/item/clothing/under/sailordress = 1,
- /obj/item/clothing/under/redeveninggown = 1,
- /obj/item/clothing/under/blacktango = 1,
+ /obj/item/clothing/under/dress/sundress = 2,
+ /obj/item/clothing/under/dress/stripeddress = 1,
+ /obj/item/clothing/under/dress/sailordress = 1,
+ /obj/item/clothing/under/dress/redeveninggown = 1,
+ /obj/item/clothing/under/dress/blacktango = 1,
/obj/item/clothing/suit/jacket = 3,
/obj/item/clothing/suit/jacket/motojacket = 3,
/obj/item/clothing/glasses/regular = 2,
@@ -1841,12 +1841,12 @@
contraband = list(/obj/item/clothing/under/syndicate/tacticool = 1,
/obj/item/clothing/mask/balaclava = 1,
/obj/item/clothing/head/ushanka = 1,
- /obj/item/clothing/under/soviet = 1,
+ /obj/item/clothing/under/costume/soviet = 1,
/obj/item/storage/belt/fannypack/black = 1)
- premium = list(/obj/item/clothing/under/suit_jacket/checkered = 1,
+ premium = list(/obj/item/clothing/under/suit/checkered = 1,
/obj/item/clothing/head/mailman = 1,
- /obj/item/clothing/under/rank/mailman = 1,
+ /obj/item/clothing/under/misc/mailman = 1,
/obj/item/clothing/suit/jacket/leather = 1,
/obj/item/clothing/under/pants/mustangjeans = 1)
@@ -1905,15 +1905,15 @@
icon_panel = "drobe"
ads_list = list("Beat perps in style!", "It's red so you can't see the blood!", "You have the right to be fashionable!", "Now you can be the fashion police you always wanted to be!")
vend_reply = "Thank you for using the SecDrobe!"
- products = list(/obj/item/clothing/under/rank/security/corp = 4,
- /obj/item/clothing/under/rank/security/skirt/corp = 4,
- /obj/item/clothing/under/rank/dispatch = 4,
- /obj/item/clothing/under/rank/security/skirt = 4,
- /obj/item/clothing/under/rank/security = 4,
- /obj/item/clothing/under/rank/security2 = 4,
+ products = list(/obj/item/clothing/under/rank/security/officer/corporate = 4,
+ /obj/item/clothing/under/rank/security/officer/skirt/corporate = 4,
+ /obj/item/clothing/under/rank/security/officer/dispatch = 4,
+ /obj/item/clothing/under/rank/security/officer/skirt = 4,
+ /obj/item/clothing/under/rank/security/officer = 4,
+ /obj/item/clothing/under/rank/security/officer/uniform = 4,
/obj/item/clothing/under/rank/security/formal = 4,
- /obj/item/clothing/under/rank/security/fancy = 4,
- /obj/item/clothing/under/rank/security/skirt/fancy = 4,
+ /obj/item/clothing/under/rank/security/officer/fancy = 4,
+ /obj/item/clothing/under/rank/security/officer/skirt/fancy = 4,
/obj/item/clothing/head/soft/sec/corp = 4,
/obj/item/clothing/head/officer = 4,
/obj/item/clothing/head/beret/sec = 4,
@@ -1945,7 +1945,7 @@
icon_panel = "drobe"
ads_list = list("Apply your brilliant deductive methods in style!", "They already smell of cigarettes!")
vend_reply = "Thank you for using the DetDrobe!"
- products = list(/obj/item/clothing/under/det = 2,
+ products = list(/obj/item/clothing/under/rank/security/detective = 2,
/obj/item/clothing/suit/storage/det_suit = 2,
/obj/item/clothing/suit/storage/det_suit/forensics/red = 1,
/obj/item/clothing/suit/storage/det_suit/forensics/blue = 1,
@@ -1974,13 +1974,13 @@
icon_addon = "medidrobe"
ads_list = list("Make those blood stains look fashionable!")
vend_reply = "Thank you for using the MediDrobe!"
- products = list(/obj/item/clothing/under/rank/medical = 3,
- /obj/item/clothing/under/rank/medical/skirt = 3,
- /obj/item/clothing/under/rank/medical/blue = 3,
- /obj/item/clothing/under/rank/medical/green = 3,
- /obj/item/clothing/under/rank/medical/purple = 3,
- /obj/item/clothing/under/rank/nurse = 3,
- /obj/item/clothing/under/medigown = 3,
+ products = list(/obj/item/clothing/under/rank/medical/doctor = 3,
+ /obj/item/clothing/under/rank/medical/doctor/skirt = 3,
+ /obj/item/clothing/under/rank/medical/scrubs = 3,
+ /obj/item/clothing/under/rank/medical/scrubs/green = 3,
+ /obj/item/clothing/under/rank/medical/scrubs/purple = 3,
+ /obj/item/clothing/under/rank/medical/nurse = 3,
+ /obj/item/clothing/under/rank/medical/gown = 3,
/obj/item/clothing/head/beret/med = 3,
/obj/item/clothing/head/surgery/blue = 3,
/obj/item/clothing/head/surgery/green = 3,
@@ -2010,8 +2010,8 @@
icon_addon = "virodrobe"
ads_list = list("Viruses getting you down? Nothing a change of clothes can't fix!", "Upgrade to sterilized clothing today!")
vend_reply = "Thank you for using the ViroDrobe!"
- products = list(/obj/item/clothing/under/rank/virologist = 2,
- /obj/item/clothing/under/rank/virologist/skirt = 2,
+ products = list(/obj/item/clothing/under/rank/medical/virologist = 2,
+ /obj/item/clothing/under/rank/medical/virologist/skirt = 2,
/obj/item/clothing/head/beret/med = 2,
/obj/item/clothing/suit/storage/labcoat/virologist = 2,
/obj/item/clothing/accessory/armband/med = 2,
@@ -2034,8 +2034,8 @@
icon_addon = "chemdrobe"
ads_list = list("Our clothes are 0.5% more resistant to acid spills! Get yours now!")
vend_reply = "Thank you for using the ChemDrobe!"
- products = list(/obj/item/clothing/under/rank/chemist = 2,
- /obj/item/clothing/under/rank/chemist/skirt = 2,
+ products = list(/obj/item/clothing/under/rank/medical/chemist = 2,
+ /obj/item/clothing/under/rank/medical/chemist/skirt = 2,
/obj/item/clothing/head/beret/med = 2,
/obj/item/clothing/suit/storage/labcoat/chemist = 2,
/obj/item/clothing/accessory/armband/med = 2,
@@ -2059,7 +2059,7 @@
icon_addon = "genedrobe"
ads_list = "Perfect for the mad scientist in you!"
vend_reply = "Thank you for using the GeneDrobe!"
- products = list(/obj/item/clothing/under/rank/geneticist = 3,
+ products = list(/obj/item/clothing/under/rank/rnd/geneticist = 3,
/obj/item/clothing/suit/storage/labcoat/genetics = 3,
/obj/item/clothing/shoes/laceup = 3,
/obj/item/clothing/shoes/white = 3,
@@ -2079,8 +2079,8 @@
icon_addon = "scidrobe"
ads_list = list("Longing for the smell of plasma burnt flesh?", "Buy your science clothing now!", "Made with 10% Auxetics, so you don't have to worry about losing your arm!")
vend_reply = "Thank you for using the SciDrobe!"
- products = list(/obj/item/clothing/under/rank/scientist = 6,
- /obj/item/clothing/under/rank/scientist/skirt = 3,
+ products = list(/obj/item/clothing/under/rank/rnd/scientist = 6,
+ /obj/item/clothing/under/rank/rnd/scientist/skirt = 3,
/obj/item/clothing/suit/hooded/wintercoat/science = 3,
/obj/item/clothing/suit/storage/labcoat/science = 3,
/obj/item/clothing/head/beret/sci = 3,
@@ -2104,8 +2104,8 @@
icon_addon = "robodrobe"
ads_list = list("You turn me TRUE, use defines!","0110001101101100011011110111010001101000011001010111001101101000011001010111001001100101")
vend_reply = "Thank you for using the RoboDrobe!"
- products = list(/obj/item/clothing/under/rank/roboticist = 3,
- /obj/item/clothing/under/rank/roboticist/skirt = 3,
+ products = list(/obj/item/clothing/under/rank/rnd/roboticist = 3,
+ /obj/item/clothing/under/rank/rnd/roboticist/skirt = 3,
/obj/item/clothing/suit/storage/labcoat = 3,
/obj/item/clothing/head/soft/black = 3,
/obj/item/clothing/gloves/fingerless = 3,
@@ -2124,8 +2124,8 @@
icon_addon = "engidrobe"
ads_list = list("Guaranteed to protect your feet from industrial accidents!", "Afraid of radiation? Then wear yellow!")
vend_reply = "Thank you for using the EngiDrobe!"
- products = list(/obj/item/clothing/under/rank/engineer = 6,
- /obj/item/clothing/under/rank/engineer/skirt = 3,
+ products = list(/obj/item/clothing/under/rank/engineering/engineer = 6,
+ /obj/item/clothing/under/rank/engineering/engineer/skirt = 3,
/obj/item/clothing/suit/hooded/wintercoat/engineering = 3,
/obj/item/clothing/suit/jacket/engibomber = 3,
/obj/item/clothing/suit/storage/hazardvest = 3,
@@ -2154,8 +2154,8 @@
icon_addon = "atmosdrobe"
ads_list = list("Guaranteed to protect your feet from atmospheric accidents!", "Get your inflammable clothing right here!")
vend_reply = "Thank you for using the AtmosDrobe!"
- products = list(/obj/item/clothing/under/rank/atmospheric_technician = 6,
- /obj/item/clothing/under/rank/atmospheric_technician/skirt = 3,
+ products = list(/obj/item/clothing/under/rank/engineering/atmospheric_technician = 6,
+ /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt = 3,
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos = 3,
/obj/item/clothing/suit/jacket/atmosbomber = 3,
/obj/item/clothing/suit/storage/hazardvest = 3,
@@ -2184,8 +2184,8 @@
icon_addon = "cargodrobe"
ads_list = list("Upgraded Assistant Style! Pick yours today!", "These shorts are comfy and easy to wear, get yours now!")
vend_reply = "Thank you for using the CargoDrobe!"
- products = list(/obj/item/clothing/under/rank/cargotech = 6,
- /obj/item/clothing/under/rank/cargotech/skirt = 3,
+ products = list(/obj/item/clothing/under/rank/cargo/tech = 6,
+ /obj/item/clothing/under/rank/cargo/tech/skirt = 3,
/obj/item/clothing/suit/hooded/wintercoat/cargo = 3,
/obj/item/clothing/suit/jacket/cargobomber = 3,
/obj/item/clothing/suit/storage/hazardvest = 3,
@@ -2208,8 +2208,8 @@
icon_addon = "chefdrobe"
ads_list = list("Our clothes are guaranteed to protect you from food splatters!", "Comfortable enough for a CQC practice!")
vend_reply = "Thank you for using the ChefDrobe!"
- products = list(/obj/item/clothing/under/rank/chef = 2,
- /obj/item/clothing/under/waiter = 2,
+ products = list(/obj/item/clothing/under/rank/civilian/chef = 2,
+ /obj/item/clothing/under/misc/waiter = 2,
/obj/item/clothing/suit/chef = 2,
/obj/item/clothing/suit/chef/classic = 2,
/obj/item/clothing/head/chefhat = 2,
@@ -2231,8 +2231,8 @@
icon_panel = "drobe"
ads_list = list("Guaranteed to prevent stains from spilled drinks!")
vend_reply = "Thank you for using the BarDrobe!"
- products = list(/obj/item/clothing/under/rank/bartender = 2,
- /obj/item/clothing/under/sl_suit = 2,
+ products = list(/obj/item/clothing/under/rank/civilian/bartender = 2,
+ /obj/item/clothing/under/misc/sl_suit = 2,
/obj/item/clothing/head/that = 2,
/obj/item/clothing/head/soft/black = 2,
/obj/item/clothing/suit/blacktrenchcoat = 2,
@@ -2252,7 +2252,7 @@
icon_panel = "drobe"
ads_list = list("Do you love soil? Then buy our clothes!", "Get outfits to match your green thumb here!")
vend_reply = "Thank you for using the HydroDrobe!"
- products = list(/obj/item/clothing/under/rank/hydroponics = 3,
+ products = list(/obj/item/clothing/under/rank/civilian/hydroponics = 3,
/obj/item/reagent_containers/glass/bucket = 3,
/obj/item/clothing/suit/apron = 3,
/obj/item/clothing/suit/apron/overalls = 3,
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 11683346daa..623ec4ce9f2 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -427,13 +427,13 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/gladiator/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/gladiator(src.loc)
+ new /obj/item/clothing/under/costume/gladiator(src.loc)
new /obj/item/clothing/head/helmet/gladiator(src.loc)
return INITIALIZE_HINT_QDEL
/obj/effect/landmark/costume/madscientist/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
+ new /obj/item/clothing/under/misc/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
@@ -441,7 +441,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/elpresidente/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
+ new /obj/item/clothing/under/misc/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/cigarette/cigar/havana(src.loc)
new /obj/item/clothing/shoes/jackboots(src.loc)
@@ -449,12 +449,12 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/schoolgirl/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/schoolgirl(src.loc)
+ new /obj/item/clothing/under/dress/schoolgirl(src.loc)
return INITIALIZE_HINT_QDEL
/obj/effect/landmark/costume/maid/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/blackskirt(src.loc)
+ new /obj/item/clothing/under/dress/blackskirt(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc)
@@ -463,7 +463,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/butler/Initialize(mapload)
. = ..()
new /obj/item/clothing/suit/wcoat(src.loc)
- new /obj/item/clothing/under/suit_jacket(src.loc)
+ new /obj/item/clothing/under/suit(src.loc)
new /obj/item/clothing/head/that(src.loc)
return INITIALIZE_HINT_QDEL
@@ -471,14 +471,14 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
. = ..()
new /obj/item/clothing/gloves/color/white(src.loc)
new /obj/item/clothing/shoes/white(src.loc)
- new /obj/item/clothing/under/scratch(src.loc)
+ new /obj/item/clothing/under/misc/scratch(src.loc)
if(prob(30))
new /obj/item/clothing/head/cueball(src.loc)
return INITIALIZE_HINT_QDEL
/obj/effect/landmark/costume/highlander/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/kilt(src.loc)
+ new /obj/item/clothing/under/costume/kilt(src.loc)
new /obj/item/clothing/head/beret(src.loc)
qdel(src)
@@ -490,7 +490,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
new CHOICE(src.loc)
new /obj/item/clothing/shoes/black(src.loc)
new /obj/item/cane(src.loc)
- new /obj/item/clothing/under/sl_suit(src.loc)
+ new /obj/item/clothing/under/misc/sl_suit(src.loc)
new /obj/item/clothing/mask/fakemoustache(src.loc)
return INITIALIZE_HINT_QDEL
@@ -502,13 +502,13 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/nightowl/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/owl(src.loc)
+ new /obj/item/clothing/under/costume/owl(src.loc)
new /obj/item/clothing/mask/gas/owl_mask(src.loc)
return INITIALIZE_HINT_QDEL
/obj/effect/landmark/costume/waiter/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/waiter(src.loc)
+ new /obj/item/clothing/under/misc/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
new /obj/item/clothing/suit/apron(src.loc)
@@ -516,7 +516,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/pirate/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/pirate(src.loc)
+ new /obj/item/clothing/under/costume/pirate(src.loc)
new /obj/item/clothing/suit/pirate_black(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana )
new CHOICE(src.loc)
@@ -525,7 +525,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/commie/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/soviet(src.loc)
+ new /obj/item/clothing/under/costume/soviet(src.loc)
new /obj/item/clothing/head/ushanka(src.loc)
return INITIALIZE_HINT_QDEL
@@ -550,7 +550,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/cutewitch/Initialize(mapload)
. = ..()
- new /obj/item/clothing/under/sundress(src.loc)
+ new /obj/item/clothing/under/dress/sundress(src.loc)
new /obj/item/clothing/head/witchwig(src.loc)
new /obj/item/twohanded/staff/broom(src.loc)
return INITIALIZE_HINT_QDEL
@@ -565,13 +565,13 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away mission
/obj/effect/landmark/costume/sexyclown/Initialize(mapload)
. = ..()
new /obj/item/clothing/mask/gas/clown_hat/sexy(loc)
- new /obj/item/clothing/under/rank/clown/sexy(loc)
+ new /obj/item/clothing/under/rank/civilian/clown/sexy(loc)
return INITIALIZE_HINT_QDEL
/obj/effect/landmark/costume/sexymime/Initialize(mapload)
. = ..()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
- new /obj/item/clothing/under/sexymime(src.loc)
+ new /obj/item/clothing/under/rank/civilian/mime/sexy(src.loc)
qdel(src)
/obj/effect/landmark/ruin
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 69218825883..f44d949be5c 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -71,7 +71,7 @@
/obj/item/clothing/head/welding = 10,
/obj/item/clothing/mask/gas = 10,
/obj/item/clothing/suit/storage/hazardvest = 10,
- /obj/item/clothing/under/rank/vice = 10,
+ /obj/item/clothing/under/misc/vice = 10,
/obj/item/assembly/prox_sensor = 40,
/obj/item/assembly/timer = 30,
/obj/item/flashlight = 40,
@@ -203,7 +203,7 @@
/obj/item/soap/syndie = 50,
/obj/item/lighter/zippo/gonzofist = 50,
/obj/item/stack/nanopaste = 50,
- /obj/item/clothing/under/psyjump = 50,
+ /obj/item/clothing/under/costume/psyjump = 50,
/obj/item/immortality_talisman = 50,
/obj/item/grenade/clusterbuster/smoke = 50
)
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index 01cb808fad5..55f7af96cee 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -109,7 +109,7 @@
/obj/item/storage/backpack/clown/syndie
/obj/item/storage/backpack/clown/syndie/populate_contents()
- new /obj/item/clothing/under/rank/clown(src)
+ new /obj/item/clothing/under/rank/civilian/clown(src)
new /obj/item/clothing/shoes/magboots/clown(src)
new /obj/item/clothing/mask/chameleon(src)
new /obj/item/radio/headset/headset_service(src)
@@ -410,7 +410,7 @@
new /obj/item/clothing/glasses/meson(src)
new /obj/item/t_scanner/adv_mining_scanner/lesser(src)
new /obj/item/storage/bag/ore(src)
- new /obj/item/clothing/under/rank/miner/lavaland(src)
+ new /obj/item/clothing/under/rank/cargo/miner/lavaland(src)
new /obj/item/encryptionkey/headset_cargo(src)
new /obj/item/clothing/mask/gas/explorer(src)
new /obj/item/gun/energy/kinetic_accelerator(src)
diff --git a/code/game/objects/items/weapons/storage/garment.dm b/code/game/objects/items/weapons/storage/garment.dm
index 68896bbd921..bcfec92e638 100644
--- a/code/game/objects/items/weapons/storage/garment.dm
+++ b/code/game/objects/items/weapons/storage/garment.dm
@@ -41,7 +41,7 @@
new /obj/item/clothing/suit/mantle/armor/captain(src)
new /obj/item/clothing/under/rank/captain(src)
new /obj/item/clothing/under/rank/captain/parade(src)
- new /obj/item/clothing/under/dress/dress_cap(src)
+ new /obj/item/clothing/under/rank/captain/dress(src)
new /obj/item/clothing/gloves/color/captain(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/laceup(src)
@@ -55,13 +55,13 @@
new /obj/item/clothing/head/hopcap(src)
new /obj/item/clothing/suit/mantle/armor/head_of_personnel(src)
new /obj/item/clothing/suit/armor/vest(src)
- new /obj/item/clothing/under/rank/head_of_personnel(src)
- new /obj/item/clothing/under/dress/dress_hop(src)
- new /obj/item/clothing/under/dress/dress_hr(src)
- new /obj/item/clothing/under/lawyer/female(src)
- new /obj/item/clothing/under/lawyer/black(src)
- new /obj/item/clothing/under/lawyer/red(src)
- new /obj/item/clothing/under/lawyer/oldman(src)
+ new /obj/item/clothing/under/rank/civilian/head_of_personnel(src)
+ new /obj/item/clothing/under/rank/civilian/head_of_personnel/dress(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/dress_hr(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/black(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/red(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/oldman(src)
+ new /obj/item/clothing/under/suit/female(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/leather(src)
@@ -79,11 +79,11 @@
new /obj/item/clothing/suit/armor/hos(src)
new /obj/item/clothing/suit/armor/hos/alt(src)
new /obj/item/clothing/suit/mantle/armor(src)
- new /obj/item/clothing/under/rank/head_of_security(src)
- new /obj/item/clothing/under/rank/head_of_security/formal(src)
- new /obj/item/clothing/under/rank/head_of_security/corp(src)
- new /obj/item/clothing/under/rank/head_of_security/skirt(src)
- new /obj/item/clothing/under/rank/head_of_security/skirt/corp(src)
+ new /obj/item/clothing/under/rank/security/head_of_security(src)
+ new /obj/item/clothing/under/rank/security/formal/head_of_security(src)
+ new /obj/item/clothing/under/rank/security/head_of_security/corporate(src)
+ new /obj/item/clothing/under/rank/security/head_of_security/skirt(src)
+ new /obj/item/clothing/under/rank/security/head_of_security/skirt/corporate(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
/obj/item/storage/bag/garment/research_director
@@ -91,7 +91,7 @@
desc = "A bag for storing extra clothes and shoes. This one belongs to the research director."
/obj/item/storage/bag/garment/research_director/populate_contents()
- new /obj/item/clothing/under/rank/research_director(src)
+ new /obj/item/clothing/under/rank/rnd/research_director(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/mantle/labcoat(src)
new /obj/item/clothing/shoes/white(src)
@@ -106,10 +106,10 @@
new /obj/item/clothing/head/surgery/blue(src)
new /obj/item/clothing/head/surgery/green(src)
new /obj/item/clothing/head/surgery/purple(src)
- new /obj/item/clothing/under/rank/chief_medical_officer(src)
- new /obj/item/clothing/under/rank/medical/blue(src)
- new /obj/item/clothing/under/rank/medical/green(src)
- new /obj/item/clothing/under/rank/medical/purple(src)
+ new /obj/item/clothing/under/rank/medical/chief_medical_officer(src)
+ new /obj/item/clothing/under/rank/medical/scrubs(src)
+ new /obj/item/clothing/under/rank/medical/scrubs/green(src)
+ new /obj/item/clothing/under/rank/medical/scrubs/purple(src)
new /obj/item/clothing/suit/storage/labcoat/cmo(src)
new /obj/item/clothing/suit/mantle/labcoat/chief_medical_officer(src)
new /obj/item/clothing/shoes/white(src)
@@ -124,8 +124,8 @@
new /obj/item/clothing/head/hardhat/white(src)
new /obj/item/clothing/head/beret/ce(src)
new /obj/item/clothing/head/beret/eng(src)
- new /obj/item/clothing/under/rank/chief_engineer(src)
- new /obj/item/clothing/under/rank/chief_engineer/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer/skirt(src)
new /obj/item/clothing/suit/mantle/chief_engineer(src)
new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/shoes/brown(src)
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index c12f30e8416..5b7d1631516 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -30,7 +30,7 @@
/obj/item/suppressor, // 1TC
/obj/item/ammo_box/magazine/m10mm/hp, // 3TC
/obj/item/ammo_box/magazine/m10mm/ap, // 2TC
- /obj/item/clothing/under/suit_jacket/really_black, // 0TC
+ /obj/item/clothing/under/suit/really_black, // 0TC
/obj/item/card/id/syndicate, // 2TC
/obj/item/clothing/suit/storage/lawyer/blackjacket/armored, // 0TC
/obj/item/encryptionkey/syndicate, // 2TC
@@ -60,7 +60,7 @@
/obj/item/card/emag, // 6TC
/obj/item/jammer, // 5TC
/obj/item/card/id/syndicate, // 2TC
- /obj/item/clothing/under/suit_jacket/really_black, //0TC
+ /obj/item/clothing/under/suit/really_black, //0TC
/obj/item/clothing/suit/storage/lawyer/blackjacket/armored, //0TC
/obj/item/clothing/gloves/color/latex/nitrile, //0 TC
/obj/item/clothing/mask/gas/clown_hat, // 0TC
@@ -105,7 +105,7 @@
/obj/item/ammo_box/magazine/sniper_rounds/soporific, // 3TC
/obj/item/clothing/glasses/chameleon/thermal, // 6TC
/obj/item/clothing/gloves/combat, // 0 TC
- /obj/item/clothing/under/suit_jacket/really_black, // 0 TC
+ /obj/item/clothing/under/suit/really_black, // 0 TC
/obj/item/clothing/suit/storage/lawyer/blackjacket/armored, // 0TC
/obj/item/pen/edagger, // 2TC
/obj/item/encryptionkey/syndicate) // 2TC
diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm
index b148c909663..3442db03398 100644
--- a/code/game/objects/structures/crates_lockers/closets/fitness.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm
@@ -6,16 +6,16 @@
open_door_sprite = "generic_door"
/obj/structure/closet/athletic_mixed/populate_contents()
- new /obj/item/clothing/under/shorts/grey(src)
- new /obj/item/clothing/under/shorts/black(src)
- new /obj/item/clothing/under/shorts/red(src)
- new /obj/item/clothing/under/shorts/blue(src)
- new /obj/item/clothing/under/shorts/green(src)
- new /obj/item/clothing/under/swimsuit/red(src)
- new /obj/item/clothing/under/swimsuit/black(src)
- new /obj/item/clothing/under/swimsuit/blue(src)
- new /obj/item/clothing/under/swimsuit/green(src)
- new /obj/item/clothing/under/swimsuit/purple(src)
+ new /obj/item/clothing/under/pants/shorts/grey(src)
+ new /obj/item/clothing/under/pants/shorts/black(src)
+ new /obj/item/clothing/under/pants/shorts/red(src)
+ new /obj/item/clothing/under/pants/shorts/blue(src)
+ new /obj/item/clothing/under/pants/shorts/green(src)
+ new /obj/item/clothing/under/misc/swimsuit/red(src)
+ new /obj/item/clothing/under/misc/swimsuit/black(src)
+ new /obj/item/clothing/under/misc/swimsuit/blue(src)
+ new /obj/item/clothing/under/misc/swimsuit/green(src)
+ new /obj/item/clothing/under/misc/swimsuit/purple(src)
/obj/structure/closet/boxinggloves
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index f9df8a47b96..623bd5234fd 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -44,11 +44,11 @@
new /obj/item/clothing/head/ushanka(src)
new /obj/item/clothing/head/ushanka(src)
new /obj/item/clothing/head/ushanka(src)
- new /obj/item/clothing/under/soviet(src)
- new /obj/item/clothing/under/soviet(src)
- new /obj/item/clothing/under/soviet(src)
- new /obj/item/clothing/under/soviet(src)
- new /obj/item/clothing/under/soviet(src)
+ new /obj/item/clothing/under/costume/soviet(src)
+ new /obj/item/clothing/under/costume/soviet(src)
+ new /obj/item/clothing/under/costume/soviet(src)
+ new /obj/item/clothing/under/costume/soviet(src)
+ new /obj/item/clothing/under/costume/soviet(src)
/obj/structure/closet/gimmick/tacticool
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index 7a1e8aa515d..f93c03c2c4d 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -21,10 +21,10 @@
new /obj/item/radio/headset/headset_service(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/clothing/head/hairflower
- new /obj/item/clothing/under/sl_suit(src)
- new /obj/item/clothing/under/sl_suit(src)
- new /obj/item/clothing/under/rank/bartender(src)
- new /obj/item/clothing/under/rank/bartender(src)
+ new /obj/item/clothing/under/misc/sl_suit(src)
+ new /obj/item/clothing/under/misc/sl_suit(src)
+ new /obj/item/clothing/under/rank/civilian/bartender(src)
+ new /obj/item/clothing/under/rank/civilian/bartender(src)
new /obj/item/clothing/under/dress/dress_saloon
new /obj/item/clothing/suit/wcoat(src)
new /obj/item/clothing/suit/wcoat(src)
@@ -44,8 +44,8 @@
open_door_sprite = "generic_door"
/obj/structure/closet/chefcloset/populate_contents()
- new /obj/item/clothing/under/waiter(src)
- new /obj/item/clothing/under/waiter(src)
+ new /obj/item/clothing/under/misc/waiter(src)
+ new /obj/item/clothing/under/misc/waiter(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/clothing/accessory/waistcoat(src)
@@ -57,7 +57,7 @@
new /obj/item/clothing/head/soft/mime(src)
new /obj/item/storage/box/mousetraps(src)
new /obj/item/storage/box/mousetraps(src)
- new /obj/item/clothing/under/rank/chef(src)
+ new /obj/item/clothing/under/rank/civilian/chef(src)
new /obj/item/clothing/head/chefhat(src)
new /obj/item/reagent_containers/glass/rag(src)
@@ -99,7 +99,7 @@
new /obj/item/clothing/head/soft/purple(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/radio/headset/headset_service(src)
- new /obj/item/clothing/under/rank/janitor(src)
+ new /obj/item/clothing/under/rank/civilian/janitor(src)
new /obj/item/cartridge/janitor(src)
/*
@@ -113,12 +113,12 @@
open_door_sprite = "generic_door"
/obj/structure/closet/lawcloset/populate_contents()
- new /obj/item/clothing/under/lawyer/female(src)
- new /obj/item/clothing/under/lawyer/black(src)
- new /obj/item/clothing/under/lawyer/red(src)
- new /obj/item/clothing/under/lawyer/bluesuit(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/black(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/red(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/bluesuit(src)
+ new /obj/item/clothing/under/suit/female(src)
new /obj/item/clothing/suit/storage/lawyer/bluejacket(src)
- new /obj/item/clothing/under/lawyer/purpsuit(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/purpsuit(src)
new /obj/item/clothing/suit/storage/lawyer/purpjacket(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/black(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
index 4a0818a9322..96b2897e992 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
@@ -5,8 +5,8 @@
open_door_sprite = "mining_door"
/obj/structure/closet/secure_closet/cargotech/populate_contents()
- new /obj/item/clothing/under/rank/cargotech(src)
- new /obj/item/clothing/under/rank/cargotech/skirt(src)
+ new /obj/item/clothing/under/rank/cargo/tech(src)
+ new /obj/item/clothing/under/rank/cargo/tech/skirt(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/radio/headset/headset_cargo(src)
new /obj/item/clothing/gloves/fingerless(src)
@@ -21,8 +21,8 @@
open_door_sprite = "mining_door"
/obj/structure/closet/secure_closet/quartermaster/populate_contents()
- new /obj/item/clothing/under/rank/cargo(src)
- new /obj/item/clothing/under/rank/cargo/skirt(src)
+ new /obj/item/clothing/under/rank/cargo/quartermaster(src)
+ new /obj/item/clothing/under/rank/cargo/quartermaster/skirt(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/radio/headset/headset_cargo(src)
new /obj/item/clothing/gloves/fingerless(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm b/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm
index 17e32c7484e..4c8524ab39c 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm
@@ -6,7 +6,7 @@
open_door_sprite = "chaplain_door"
/obj/structure/closet/secure_closet/chaplain/populate_contents()
- new /obj/item/clothing/under/rank/chaplain(src)
+ new /obj/item/clothing/under/rank/civilian/chaplain(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/suit/hooded/nun(src)
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
@@ -14,7 +14,7 @@
new /obj/item/clothing/suit/witchhunter(src)
new /obj/item/clothing/head/witchhunter_hat(src)
new /obj/item/clothing/suit/holidaypriest(src)
- new /obj/item/clothing/under/wedding/bride_white(src)
+ new /obj/item/clothing/under/dress/wedding/bride_white(src)
new /obj/item/storage/backpack/cultpack(src)
new /obj/item/clothing/head/helmet/riot/knight/templar(src)
new /obj/item/clothing/suit/armor/riot/knight/templar(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index 4048dd8c958..ed2af9f80d9 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -84,8 +84,8 @@
new /obj/item/storage/toolbox/mechanical(src)
new /obj/item/holosign_creator/engineering(src)
new /obj/item/radio/headset/headset_eng(src)
- new /obj/item/clothing/under/rank/engineer(src)
- new /obj/item/clothing/under/rank/engineer/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/engineer(src)
+ new /obj/item/clothing/under/rank/engineering/engineer/skirt(src)
new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson/engine(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
index 10a8bbad858..7e23e79e0d5 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
@@ -11,7 +11,7 @@
if(2)
new /obj/item/clothing/suit/apron/overalls(src)
new /obj/item/storage/bag/plants/portaseeder(src)
- new /obj/item/clothing/under/rank/hydroponics(src)
+ new /obj/item/clothing/under/rank/civilian/hydroponics(src)
new /obj/item/plant_analyzer(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/clothing/mask/bandana/botany(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index d3e74dc65d4..0b69c0217d0 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -51,7 +51,7 @@
else
new /obj/item/storage/backpack/satchel_med(src)
new /obj/item/storage/backpack/duffel/medical(src)
- new /obj/item/clothing/under/rank/medical(src)
+ new /obj/item/clothing/under/rank/medical/doctor(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/radio/headset/headset_med(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/miscjobs.dm b/code/game/objects/structures/crates_lockers/closets/secure/miscjobs.dm
index b5412a2ab9b..9a40c3bc0ce 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/miscjobs.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/miscjobs.dm
@@ -6,7 +6,7 @@
/obj/structure/closet/secure_closet/clown/populate_contents()
new /obj/item/storage/backpack/clown(src)
- new /obj/item/clothing/under/rank/clown(src)
+ new /obj/item/clothing/under/rank/civilian/clown(src)
new /obj/item/clothing/shoes/clown_shoes(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/clothing/mask/gas/clown_hat(src)
@@ -29,7 +29,7 @@
new /obj/item/clothing/head/beret(src)
new /obj/item/clothing/mask/gas/mime(src)
new /obj/item/radio/headset/headset_service(src)
- new /obj/item/clothing/under/mime(src)
+ new /obj/item/clothing/under/rank/civilian/mime(src)
new /obj/item/clothing/suit/suspenders(src)
new /obj/item/clothing/gloves/color/white(src)
new /obj/item/clothing/shoes/black(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
index 692fd309a8b..5703b256726 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -7,8 +7,8 @@
/obj/structure/closet/secure_closet/scientist/populate_contents()
new /obj/item/storage/backpack/science(src)
new /obj/item/storage/backpack/satchel_tox(src)
- new /obj/item/clothing/under/rank/scientist(src)
- new /obj/item/clothing/under/rank/scientist/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/scientist(src)
+ new /obj/item/clothing/under/rank/rnd/scientist/skirt(src)
//new /obj/item/clothing/suit/labcoat/science(src)
new /obj/item/clothing/suit/storage/labcoat/science(src)
new /obj/item/clothing/shoes/white(src)
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 807455aeaaa..1a1b4b95edf 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -91,11 +91,11 @@
new /obj/item/clothing/head/warden(src)
new /obj/item/clothing/suit/armor/vest/warden/alt(src)
new /obj/item/clothing/head/beret/sec/warden(src)
- new /obj/item/clothing/under/rank/warden(src)
- new /obj/item/clothing/under/rank/warden/formal(src)
- new /obj/item/clothing/under/rank/warden/corp(src)
- new /obj/item/clothing/under/rank/warden/skirt(src)
- new /obj/item/clothing/under/rank/warden/skirt/corp(src)
+ new /obj/item/clothing/under/rank/security/warden(src)
+ new /obj/item/clothing/under/rank/security/formal/warden(src)
+ new /obj/item/clothing/under/rank/security/warden/corporate(src)
+ new /obj/item/clothing/under/rank/security/warden/skirt(src)
+ new /obj/item/clothing/under/rank/security/warden/skirt/corporate(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/holosign_creator/security(src)
new /obj/item/clothing/mask/gas/sechailer/warden(src)
@@ -173,9 +173,9 @@
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/clothing/gloves/color/white(src)
new /obj/item/clothing/shoes/centcom(src)
- new /obj/item/clothing/under/lawyer/oldman(src)
- new /obj/item/clothing/under/lawyer/black(src)
- new /obj/item/clothing/under/lawyer/female(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/oldman(src)
+ new /obj/item/clothing/under/rank/civilian/lawyer/black(src)
+ new /obj/item/clothing/under/suit/female(src)
new /obj/item/clothing/under/rank/centcom/representative(src)
new /obj/item/clothing/head/ntrep(src)
new /obj/item/clothing/shoes/sandal/fancy(src)
@@ -222,7 +222,7 @@
close_sound = 'sound/machines/wooden_closet_close.ogg'
/obj/structure/closet/secure_closet/detective/populate_contents()
- new /obj/item/clothing/under/det(src)
+ new /obj/item/clothing/under/rank/security/detective(src)
new /obj/item/clothing/suit/storage/det_suit(src)
new /obj/item/clothing/suit/storage/det_suit/forensics/blue(src)
new /obj/item/clothing/suit/storage/det_suit/forensics/red(src)
@@ -327,7 +327,7 @@
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/clothing/gloves/color/white(src)
new /obj/item/clothing/shoes/centcom(src)
- new /obj/item/clothing/under/suit_jacket/really_black(src)
+ new /obj/item/clothing/under/suit/really_black(src)
new /obj/item/clothing/under/rank/centcom/magistrate(src)
new /obj/item/clothing/suit/judgerobe(src)
new /obj/item/clothing/head/powdered_wig(src)
@@ -352,7 +352,7 @@
new /obj/item/storage/briefcase(src)
new /obj/item/storage/briefcase(src)
new /obj/item/radio/headset/headset_iaa(src)
- new /obj/item/clothing/under/rank/internalaffairs(src)
+ new /obj/item/clothing/under/rank/civilian/internalaffairs(src)
new /obj/item/clothing/suit/storage/internalaffairs(src)
new /obj/item/clothing/glasses/sunglasses/big(src)
new /obj/item/clothing/glasses/sunglasses/big(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
index dce21844391..3440d6c9d01 100644
--- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
@@ -162,6 +162,6 @@
/obj/structure/closet/bombclosetsecurity/populate_contents()
new /obj/item/clothing/suit/bomb_suit/security( src )
- new /obj/item/clothing/under/rank/security( src )
+ new /obj/item/clothing/under/rank/security/officer( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/head/bomb_hood/security( src )
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index 5a9de1522c2..e708d668425 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -30,15 +30,15 @@
new /obj/item/clothing/mask/bandana/red(src)
new /obj/item/clothing/mask/bandana/red(src)
new /obj/item/clothing/mask/bandana/red(src)
- new /obj/item/clothing/under/rank/security(src)
- new /obj/item/clothing/under/rank/security(src)
- new /obj/item/clothing/under/rank/security(src)
+ new /obj/item/clothing/under/rank/security/officer(src)
+ new /obj/item/clothing/under/rank/security/officer(src)
+ new /obj/item/clothing/under/rank/security/officer(src)
new /obj/item/clothing/under/rank/security/formal(src)
new /obj/item/clothing/under/rank/security/formal(src)
new /obj/item/clothing/under/rank/security/formal(src)
- new /obj/item/clothing/under/rank/security/skirt(src)
- new /obj/item/clothing/under/rank/security/skirt(src)
- new /obj/item/clothing/under/rank/security/skirt(src)
+ new /obj/item/clothing/under/rank/security/officer/skirt(src)
+ new /obj/item/clothing/under/rank/security/officer/skirt(src)
+ new /obj/item/clothing/under/rank/security/officer/skirt(src)
new /obj/item/clothing/shoes/jackboots(src)
new /obj/item/clothing/shoes/jackboots(src)
new /obj/item/clothing/shoes/jackboots(src)
@@ -60,9 +60,9 @@
icon_state = "red"
/obj/structure/closet/redcorp/populate_contents()
- new /obj/item/clothing/under/rank/security/corp(src)
- new /obj/item/clothing/under/rank/security/corp(src)
- new /obj/item/clothing/under/rank/security/corp(src)
+ new /obj/item/clothing/under/rank/security/officer/corporate(src)
+ new /obj/item/clothing/under/rank/security/officer/corporate(src)
+ new /obj/item/clothing/under/rank/security/officer/corporate(src)
new /obj/item/clothing/head/soft/sec/corp(src)
new /obj/item/clothing/head/soft/sec/corp(src)
new /obj/item/clothing/head/soft/sec/corp(src)
@@ -168,12 +168,12 @@
icon_state = "atmos_wardrobe"
/obj/structure/closet/wardrobe/atmospherics_yellow/populate_contents()
- new /obj/item/clothing/under/rank/atmospheric_technician(src)
- new /obj/item/clothing/under/rank/atmospheric_technician(src)
- new /obj/item/clothing/under/rank/atmospheric_technician(src)
- new /obj/item/clothing/under/rank/atmospheric_technician/skirt(src)
- new /obj/item/clothing/under/rank/atmospheric_technician/skirt(src)
- new /obj/item/clothing/under/rank/atmospheric_technician/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/atmospheric_technician(src)
+ new /obj/item/clothing/under/rank/engineering/atmospheric_technician(src)
+ new /obj/item/clothing/under/rank/engineering/atmospheric_technician(src)
+ new /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt(src)
new /obj/item/clothing/shoes/workboots(src)
new /obj/item/clothing/shoes/workboots(src)
new /obj/item/clothing/shoes/workboots(src)
@@ -191,12 +191,12 @@
icon_state = "yellow"
/obj/structure/closet/wardrobe/engineering_yellow/populate_contents()
- new /obj/item/clothing/under/rank/engineer(src)
- new /obj/item/clothing/under/rank/engineer(src)
- new /obj/item/clothing/under/rank/engineer(src)
- new /obj/item/clothing/under/rank/engineer/skirt(src)
- new /obj/item/clothing/under/rank/engineer/skirt(src)
- new /obj/item/clothing/under/rank/engineer/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/engineer(src)
+ new /obj/item/clothing/under/rank/engineering/engineer(src)
+ new /obj/item/clothing/under/rank/engineering/engineer(src)
+ new /obj/item/clothing/under/rank/engineering/engineer/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/engineer/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/engineer/skirt(src)
new /obj/item/clothing/shoes/workboots(src)
new /obj/item/clothing/shoes/workboots(src)
new /obj/item/clothing/shoes/workboots(src)
@@ -225,25 +225,25 @@
icon_state = "white"
/obj/structure/closet/wardrobe/medical_white/populate_contents()
- new /obj/item/clothing/under/rank/nursesuit (src)
+ new /obj/item/clothing/under/rank/medical/nursesuit (src)
new /obj/item/clothing/head/nursehat (src)
- new /obj/item/clothing/under/rank/nurse(src)
- new /obj/item/clothing/under/rank/orderly(src)
+ new /obj/item/clothing/under/rank/medical/nurse(src)
+ new /obj/item/clothing/under/rank/medical/orderly(src)
new /obj/item/clothing/suit/storage/fr_jacket(src)
new /obj/item/clothing/suit/storage/fr_jacket(src)
new /obj/item/clothing/suit/storage/fr_jacket(src)
- new /obj/item/clothing/under/rank/medical/blue(src)
+ new /obj/item/clothing/under/rank/medical/scrubs(src)
new /obj/item/clothing/head/surgery/blue(src)
- new /obj/item/clothing/under/rank/medical/green(src)
+ new /obj/item/clothing/under/rank/medical/scrubs/green(src)
new /obj/item/clothing/head/surgery/green(src)
- new /obj/item/clothing/under/rank/medical/purple(src)
- new /obj/item/clothing/under/rank/medical/skirt(src)
- new /obj/item/clothing/under/rank/medical/skirt(src)
+ new /obj/item/clothing/under/rank/medical/scrubs/purple(src)
+ new /obj/item/clothing/under/rank/medical/doctor/skirt(src)
+ new /obj/item/clothing/under/rank/medical/doctor/skirt(src)
new /obj/item/clothing/head/surgery/purple(src)
- 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)
+ new /obj/item/clothing/under/rank/medical/gown(src)
+ new /obj/item/clothing/under/rank/medical/gown(src)
+ new /obj/item/clothing/under/rank/medical/gown(src)
+ new /obj/item/clothing/under/rank/medical/gown(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
@@ -253,10 +253,10 @@
icon_state = "white"
/obj/structure/closet/wardrobe/pjs/populate_contents()
- new /obj/item/clothing/under/pj/red(src)
- new /obj/item/clothing/under/pj/red(src)
- new /obj/item/clothing/under/pj/blue(src)
- new /obj/item/clothing/under/pj/blue(src)
+ new /obj/item/clothing/under/misc/pj/red(src)
+ new /obj/item/clothing/under/misc/pj/red(src)
+ new /obj/item/clothing/under/misc/pj/blue(src)
+ new /obj/item/clothing/under/misc/pj/blue(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/slippers(src)
@@ -268,12 +268,12 @@
icon_state = "white"
/obj/structure/closet/wardrobe/toxins_white/populate_contents()
- new /obj/item/clothing/under/rank/scientist(src)
- new /obj/item/clothing/under/rank/scientist(src)
- new /obj/item/clothing/under/rank/scientist(src)
- new /obj/item/clothing/under/rank/scientist/skirt(src)
- new /obj/item/clothing/under/rank/scientist/skirt(src)
- new /obj/item/clothing/under/rank/scientist/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/scientist(src)
+ new /obj/item/clothing/under/rank/rnd/scientist(src)
+ new /obj/item/clothing/under/rank/rnd/scientist(src)
+ new /obj/item/clothing/under/rank/rnd/scientist/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/scientist/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/scientist/skirt(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/labcoat(src)
@@ -290,10 +290,10 @@
icon_state = "black"
/obj/structure/closet/wardrobe/robotics_black/populate_contents()
- new /obj/item/clothing/under/rank/roboticist(src)
- new /obj/item/clothing/under/rank/roboticist(src)
- new /obj/item/clothing/under/rank/roboticist/skirt(src)
- new /obj/item/clothing/under/rank/roboticist/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/roboticist(src)
+ new /obj/item/clothing/under/rank/rnd/roboticist(src)
+ new /obj/item/clothing/under/rank/rnd/roboticist/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/roboticist/skirt(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/gloves/fingerless(src)
@@ -307,10 +307,10 @@
icon_state = "white"
/obj/structure/closet/wardrobe/chemistry_white/populate_contents()
- new /obj/item/clothing/under/rank/chemist(src)
- new /obj/item/clothing/under/rank/chemist(src)
- new /obj/item/clothing/under/rank/chemist/skirt(src)
- new /obj/item/clothing/under/rank/chemist/skirt(src)
+ new /obj/item/clothing/under/rank/medical/chemist(src)
+ new /obj/item/clothing/under/rank/medical/chemist(src)
+ new /obj/item/clothing/under/rank/medical/chemist/skirt(src)
+ new /obj/item/clothing/under/rank/medical/chemist/skirt(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat/chemist(src)
@@ -330,8 +330,8 @@
icon_state = "white"
/obj/structure/closet/wardrobe/genetics_white/populate_contents()
- new /obj/item/clothing/under/rank/geneticist(src)
- new /obj/item/clothing/under/rank/geneticist(src)
+ new /obj/item/clothing/under/rank/rnd/geneticist(src)
+ new /obj/item/clothing/under/rank/rnd/geneticist(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat/genetics(src)
@@ -347,10 +347,10 @@
icon_state = "white"
/obj/structure/closet/wardrobe/virology_white/populate_contents()
- new /obj/item/clothing/under/rank/virologist(src)
- new /obj/item/clothing/under/rank/virologist(src)
- new /obj/item/clothing/under/rank/virologist/skirt(src)
- new /obj/item/clothing/under/rank/virologist/skirt(src)
+ new /obj/item/clothing/under/rank/medical/virologist(src)
+ new /obj/item/clothing/under/rank/medical/virologist(src)
+ new /obj/item/clothing/under/rank/medical/virologist/skirt(src)
+ new /obj/item/clothing/under/rank/medical/virologist/skirt(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat/virologist(src)
@@ -368,23 +368,23 @@
icon_state = "white"
/obj/structure/closet/wardrobe/medic_white/populate_contents()
- new /obj/item/clothing/under/rank/medical(src)
- new /obj/item/clothing/under/rank/medical(src)
- new /obj/item/clothing/under/rank/medical/skirt(src)
- new /obj/item/clothing/under/rank/medical/skirt(src)
- new /obj/item/clothing/under/rank/medical/blue(src)
- new /obj/item/clothing/under/rank/medical/green(src)
- new /obj/item/clothing/under/rank/medical/purple(src)
+ new /obj/item/clothing/under/rank/medical/doctor(src)
+ new /obj/item/clothing/under/rank/medical/doctor(src)
+ new /obj/item/clothing/under/rank/medical/doctor/skirt(src)
+ new /obj/item/clothing/under/rank/medical/doctor/skirt(src)
+ new /obj/item/clothing/under/rank/medical/scrubs(src)
+ new /obj/item/clothing/under/rank/medical/scrubs/green(src)
+ new /obj/item/clothing/under/rank/medical/scrubs/purple(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/mask/surgical(src)
- 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)
+ new /obj/item/clothing/under/rank/medical/gown(src)
+ new /obj/item/clothing/under/rank/medical/gown(src)
+ new /obj/item/clothing/under/rank/medical/gown(src)
+ new /obj/item/clothing/under/rank/medical/gown(src)
new /obj/item/clothing/head/headmirror(src)
new /obj/item/clothing/head/headmirror(src)
@@ -406,9 +406,9 @@
if(prob(50))
new /obj/item/storage/backpack/duffel(src)
if(prob(40))
- new /obj/item/clothing/under/assistantformal(src)
+ new /obj/item/clothing/under/misc/assistantformal(src)
if(prob(40))
- new /obj/item/clothing/under/assistantformal(src)
+ new /obj/item/clothing/under/misc/assistantformal(src)
/obj/structure/closet/wardrobe/mixed
@@ -443,7 +443,7 @@
new /obj/item/storage/backpack/duffel/medical(src)
new /obj/item/clothing/suit/storage/labcoat/mortician(src)
new /obj/item/clothing/shoes/white(src)
- new /obj/item/clothing/under/rank/medical/mortician(src)
+ new /obj/item/clothing/under/rank/medical/scrubs/coroner(src)
new /obj/item/clothing/head/surgery/black(src)
new /obj/item/reagent_containers/glass/bottle/reagent/formaldehyde(src)
new /obj/item/reagent_containers/dropper(src)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index d0b6c4dfa00..dd1212af73e 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1349,7 +1349,7 @@
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/observer = M
- observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), slot_w_uniform)
+ observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit(observer), slot_w_uniform)
observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(observer), slot_shoes)
if(isliving(M))
var/mob/living/L = M
diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm
index ac21f06c4e4..5da81c15f66 100644
--- a/code/modules/admin/verbs/onlyone.dm
+++ b/code/modules/admin/verbs/onlyone.dm
@@ -33,7 +33,7 @@
continue
qdel(I)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/claymore/highlander(H), slot_r_hand)
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 28e6a7ca53f..11728750bfb 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -384,7 +384,7 @@
/datum/outfit/job/engineer/suit
name = "Station Engineer"
- uniform = /obj/item/clothing/under/rank/engineer
+ uniform = /obj/item/clothing/under/rank/engineering/engineer
belt = /obj/item/storage/belt/utility/full
suit = /obj/item/clothing/suit/space/hardsuit/engine
shoes = /obj/item/clothing/shoes/workboots
@@ -424,7 +424,7 @@
/datum/outfit/clownsoldier
name = "Clown Soldier"
- uniform = /obj/item/clothing/under/soldieruniform
+ uniform = /obj/item/clothing/under/costume/soldieruniform
suit = /obj/item/clothing/suit/soldiercoat
shoes = /obj/item/clothing/shoes/clown_shoes
l_ear = /obj/item/radio/headset
@@ -435,7 +435,7 @@
/datum/outfit/clownofficer
name = "Clown Officer"
- uniform = /obj/item/clothing/under/officeruniform
+ uniform = /obj/item/clothing/under/costume/officeruniform
suit = /obj/item/clothing/suit/officercoat
shoes = /obj/item/clothing/shoes/clown_shoes
l_ear = /obj/item/radio/headset
@@ -469,7 +469,7 @@
/datum/outfit/job/mining/suit
name = "Shaft Miner"
suit = /obj/item/clothing/suit/space/hardsuit/mining
- uniform = /obj/item/clothing/under/rank/miner
+ uniform = /obj/item/clothing/under/rank/cargo/miner
gloves = /obj/item/clothing/gloves/fingerless
shoes = /obj/item/clothing/shoes/workboots
l_ear = /obj/item/radio/headset/headset_cargo/mining
@@ -506,11 +506,11 @@
mob_gender = "female"
name = "lifeguard sleeper"
id_job = "Lifeguard"
- uniform = /obj/item/clothing/under/shorts/red
+ uniform = /obj/item/clothing/under/pants/shorts/red
/datum/outfit/spacebartender
name = "Space Bartender"
- uniform = /obj/item/clothing/under/rank/bartender
+ uniform = /obj/item/clothing/under/rank/civilian/bartender
suit = /obj/item/clothing/suit/armor/vest
belt = /obj/item/storage/belt/bandolier/full
shoes = /obj/item/clothing/shoes/black
@@ -537,7 +537,7 @@
/datum/outfit/beachbum
name = "Beach Bum"
glasses = /obj/item/clothing/glasses/sunglasses
- uniform = /obj/item/clothing/under/shorts/red
+ uniform = /obj/item/clothing/under/pants/shorts/red
/////////////////Spooky Undead//////////////////////
@@ -568,7 +568,7 @@
/datum/outfit/nanotrasenbridgeofficercorpse
name = "Bridge Officer Corpse"
l_ear = /obj/item/radio/headset/heads/hop
- uniform = /obj/item/clothing/under/rank/centcom_officer
+ uniform = /obj/item/clothing/under/rank/centcom
suit = /obj/item/clothing/suit/armor/bulletproof
shoes = /obj/item/clothing/shoes/black
glasses = /obj/item/clothing/glasses/sunglasses
@@ -624,7 +624,7 @@
/datum/outfit/cryobartender
name = "Cryogenic Bartender"
- uniform = /obj/item/clothing/under/rank/bartender
+ uniform = /obj/item/clothing/under/rank/civilian/bartender
back = /obj/item/storage/backpack
shoes = /obj/item/clothing/shoes/black
suit = /obj/item/clothing/suit/armor/vest
diff --git a/code/modules/client/preference/character.dm b/code/modules/client/preference/character.dm
index f369cc8a984..c38ca09b750 100644
--- a/code/modules/client/preference/character.dm
+++ b/code/modules/client/preference/character.dm
@@ -968,9 +968,8 @@
socks_s = new/icon(u3_icon, "sk_[U3.icon_state]_s", ICON_OVERLAY)
var/icon/clothes_s = null
- var/uniform_dmi='icons/mob/clothing/uniform.dmi'
if(job_support_low & JOB_ASSISTANT) //This gives the preview icon clothes depending on which job(if any) is set to 'high'
- clothes_s = new /icon(uniform_dmi, "grey_s")
+ clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "grey_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if(backbag == 2)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY)
@@ -980,7 +979,7 @@
else if(job_support_high)//I hate how this looks, but there's no reason to go through this switch if it's empty
switch(job_support_high)
if(JOB_HOP)
- clothes_s = new /icon(uniform_dmi, "hop_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "hop_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "ianshirt"), ICON_OVERLAY)
@@ -992,7 +991,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_BARTENDER)
- clothes_s = new /icon(uniform_dmi, "ba_suit_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "ba_suit_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "tophat"), ICON_OVERLAY)
@@ -1004,7 +1003,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_BOTANIST)
- clothes_s = new /icon(uniform_dmi, "hydroponics_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "hydroponics_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "ggloves"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "apron"), ICON_OVERLAY)
@@ -1018,7 +1017,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CHEF)
- clothes_s = new /icon(uniform_dmi, "chef_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "chef_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "chef"), ICON_OVERLAY)
if(prob(1))
@@ -1031,7 +1030,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_JANITOR)
- clothes_s = new /icon(uniform_dmi, "janitor_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "janitor_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "bio_janitor"), ICON_OVERLAY)
@@ -1043,7 +1042,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_LIBRARIAN)
- clothes_s = new /icon(uniform_dmi, "red_suit_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "red_suit_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "hairflower"), ICON_OVERLAY)
@@ -1055,7 +1054,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_QUARTERMASTER)
- clothes_s = new /icon(uniform_dmi, "qm_s")
+ clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "qm_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
if(prob(1))
@@ -1068,7 +1067,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CARGOTECH)
- clothes_s = new /icon(uniform_dmi, "cargotech_s")
+ clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "cargo_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
if(prob(1))
@@ -1081,7 +1080,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_MINER)
- clothes_s = new /icon(uniform_dmi, "explorer_s")
+ clothes_s = new /icon('icons/mob/clothing/under/cargo.dmi', "explorer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "explorer"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
if(prob(1))
@@ -1094,7 +1093,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_LAWYER)
- clothes_s = new /icon(uniform_dmi, "internalaffairs_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "internalaffairs_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/inhands/items_righthand.dmi', "briefcase"), ICON_UNDERLAY)
if(prob(1))
@@ -1107,7 +1106,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CHAPLAIN)
- clothes_s = new /icon(uniform_dmi, "chapblack_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "chapblack_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "imperium_monk"), ICON_OVERLAY)
@@ -1119,12 +1118,12 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CLOWN)
- clothes_s = new /icon(uniform_dmi, "clown_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "clown_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "clown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/mask.dmi', "clown"), ICON_OVERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "clownpack"), ICON_OVERLAY)
if(JOB_MIME)
- clothes_s = new /icon(uniform_dmi, "mime_s")
+ clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "mime_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "lgloves"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/mask.dmi', "mime"), ICON_OVERLAY)
@@ -1141,7 +1140,7 @@
else if(job_medsci_high)
switch(job_medsci_high)
if(JOB_RD)
- clothes_s = new /icon(uniform_dmi, "director_s")
+ clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "director_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
if(prob(1))
@@ -1154,7 +1153,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_SCIENTIST)
- clothes_s = new /icon(uniform_dmi, "toxinswhite_s")
+ clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "science_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
if(prob(1))
@@ -1167,7 +1166,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CHEMIST)
- clothes_s = new /icon(uniform_dmi, "chemistrywhite_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "chemistry_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labgreen"), ICON_OVERLAY)
@@ -1181,7 +1180,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CMO)
- clothes_s = new /icon(uniform_dmi, "cmo_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "cmo_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "bio_cmo"), ICON_OVERLAY)
@@ -1195,7 +1194,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_DOCTOR)
- clothes_s = new /icon(uniform_dmi, "medical_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "medical_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "surgeon"), ICON_OVERLAY)
@@ -1209,7 +1208,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CORONER)
- clothes_s = new /icon(uniform_dmi, "medical_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "medical_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "mortician"), ICON_OVERLAY)
@@ -1223,7 +1222,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_GENETICIST)
- clothes_s = new /icon(uniform_dmi, "geneticswhite_s")
+ clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "genetics_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "monkeysuit"), ICON_OVERLAY)
@@ -1237,7 +1236,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_VIROLOGIST)
- clothes_s = new /icon(uniform_dmi, "virologywhite_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "virology_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/mask.dmi', "sterile"), ICON_OVERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
@@ -1251,7 +1250,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_PSYCHIATRIST)
- clothes_s = new /icon(uniform_dmi, "psych_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "psych_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
switch(backbag)
@@ -1262,7 +1261,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_PARAMEDIC)
- clothes_s = new /icon(uniform_dmi, "paramedic_s")
+ clothes_s = new /icon('icons/mob/clothing/under/medical.dmi', "paramedic_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/mask.dmi', "cigoff"), ICON_OVERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "bluesoft"), ICON_OVERLAY)
@@ -1272,7 +1271,7 @@
if(3)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-med"), ICON_OVERLAY)
if(JOB_ROBOTICIST)
- clothes_s = new /icon(uniform_dmi, "robotics_s")
+ clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "robotics_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
@@ -1289,7 +1288,7 @@
else if(job_engsec_high)
switch(job_engsec_high)
if(JOB_CAPTAIN)
- clothes_s = new /icon(uniform_dmi, "captain_s")
+ clothes_s = new /icon('icons/mob/clothing/under/captain.dmi', "captain_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "centcomcaptain"), ICON_OVERLAY)
@@ -1303,7 +1302,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_HOS)
- clothes_s = new /icon(uniform_dmi, "hosred_s")
+ clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "hosred_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
if(prob(1))
@@ -1316,7 +1315,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_WARDEN)
- clothes_s = new /icon('icons/mob/clothing/uniform.dmi', "warden_s")
+ clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "warden_s")
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "slippers_worn"), ICON_OVERLAY)
else
@@ -1330,7 +1329,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_DETECTIVE)
- clothes_s = new /icon(uniform_dmi, "detective_s")
+ clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "detective_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
if(prob(1))
@@ -1345,7 +1344,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_OFFICER)
- clothes_s = new /icon(uniform_dmi, "secred_s")
+ clothes_s = new /icon('icons/mob/clothing/under/security.dmi', "secred_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
if(prob(1))
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "beret_officer"), ICON_OVERLAY)
@@ -1357,7 +1356,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CHIEF)
- clothes_s = new /icon(uniform_dmi, "chief_s")
+ clothes_s = new /icon('icons/mob/clothing/under/engineering.dmi', "chief_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)
@@ -1372,7 +1371,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_ENGINEER)
- clothes_s = new /icon(uniform_dmi, "engine_s")
+ clothes_s = new /icon('icons/mob/clothing/under/engineering.dmi', "engine_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "orange"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "hardhat0_yellow"), ICON_OVERLAY)
@@ -1386,7 +1385,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_ATMOSTECH)
- clothes_s = new /icon(uniform_dmi, "atmos_s")
+ clothes_s = new /icon('icons/mob/clothing/under/engineering.dmi', "atmos_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)
@@ -1401,7 +1400,7 @@
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_AI)//Gives AI and borgs assistant-wear, so they can still customize their character
- clothes_s = new /icon(uniform_dmi, "grey_s")
+ clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "grey_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "straight_jacket"), ICON_OVERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "cardborg_h"), ICON_OVERLAY)
@@ -1410,7 +1409,7 @@
else if(backbag == 3 || backbag == 4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_CYBORG)
- clothes_s = new /icon(uniform_dmi, "grey_s")
+ clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "grey_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "cardborg"), ICON_OVERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "cardborg_h"), ICON_OVERLAY)
@@ -1419,7 +1418,7 @@
else if(backbag == 3 || backbag == 4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_JUDGE)
- clothes_s = new /icon(uniform_dmi, "really_black_suit_s")
+ clothes_s = new /icon('icons/mob/clothing/under/suit.dmi', "really_black_suit_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "mercy_hood"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "judge"), ICON_UNDERLAY)
@@ -1431,7 +1430,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_NANO)
- clothes_s = new /icon(uniform_dmi, "officer_s")
+ clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
switch(backbag)
if(2)
@@ -1441,7 +1440,7 @@
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_BLUESHIELD)
- clothes_s = new /icon(uniform_dmi, "officer_s")
+ clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "blueshield"), ICON_OVERLAY)
@@ -1458,7 +1457,7 @@
// Observers get tourist outfit.
if(for_observer)
- clothes_s = new /icon(uniform_dmi, "tourist_s")
+ clothes_s = new /icon('icons/mob/clothing/under/costumes.dmi', "tourist_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY)
if(backbag == 2)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY)
diff --git a/code/modules/client/preference/loadout/loadout_uniform.dm b/code/modules/client/preference/loadout/loadout_uniform.dm
index 1c66451b419..18a51b0e187 100644
--- a/code/modules/client/preference/loadout/loadout_uniform.dm
+++ b/code/modules/client/preference/loadout/loadout_uniform.dm
@@ -104,11 +104,11 @@
/datum/gear/uniform/suit/soviet
display_name = "USSP uniform"
- path = /obj/item/clothing/under/soviet
+ path = /obj/item/clothing/under/costume/soviet
/datum/gear/uniform/suit/kilt
display_name = "Kilt"
- path = /obj/item/clothing/under/kilt
+ path = /obj/item/clothing/under/costume/kilt
/datum/gear/uniform/skirt
main_typepath = /datum/gear/uniform/skirt
@@ -127,7 +127,7 @@
/datum/gear/uniform/skirt/black
display_name = "Skirt, black"
- path = /obj/item/clothing/under/blackskirt
+ path = /obj/item/clothing/under/dress/blackskirt
/datum/gear/uniform/skirt/job
main_typepath = /datum/gear/uniform/skirt/job
@@ -135,82 +135,82 @@
/datum/gear/uniform/skirt/job/ce
display_name = "Skirt, ce"
- path = /obj/item/clothing/under/rank/chief_engineer/skirt
+ path = /obj/item/clothing/under/rank/engineering/chief_engineer/skirt
allowed_roles = list("Chief Engineer")
/datum/gear/uniform/skirt/job/atmos
display_name = "Skirt, atmos"
- path = /obj/item/clothing/under/rank/atmospheric_technician/skirt
+ path = /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt
allowed_roles = list("Chief Engineer","Life Support Specialist")
/datum/gear/uniform/skirt/job/eng
display_name = "Skirt, engineer"
- path = /obj/item/clothing/under/rank/engineer/skirt
+ path = /obj/item/clothing/under/rank/engineering/engineer/skirt
allowed_roles = list("Chief Engineer","Station Engineer")
/datum/gear/uniform/skirt/job/roboticist
display_name = "Skirt, roboticist"
- path = /obj/item/clothing/under/rank/roboticist/skirt
+ path = /obj/item/clothing/under/rank/rnd/roboticist/skirt
allowed_roles = list("Research Director","Roboticist")
/datum/gear/uniform/skirt/job/cmo
display_name = "Skirt, cmo"
- path = /obj/item/clothing/under/rank/chief_medical_officer/skirt
+ path = /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt
allowed_roles = list("Chief Medical Officer")
/datum/gear/uniform/skirt/job/chem
display_name = "Skirt, chemist"
- path = /obj/item/clothing/under/rank/chemist/skirt
+ path = /obj/item/clothing/under/rank/medical/chemist/skirt
allowed_roles = list("Chief Medical Officer","Chemist")
/datum/gear/uniform/skirt/job/viro
display_name = "Skirt, virologist"
- path = /obj/item/clothing/under/rank/virologist/skirt
+ path = /obj/item/clothing/under/rank/medical/virologist/skirt
allowed_roles = list("Virologist")
/datum/gear/uniform/skirt/job/med
display_name = "Skirt, medical"
- path = /obj/item/clothing/under/rank/medical/skirt
+ path = /obj/item/clothing/under/rank/medical/doctor/skirt
allowed_roles = list("Chief Medical Officer","Medical Doctor","Psychiatrist","Paramedic","Coroner")
/datum/gear/uniform/skirt/job/sci
display_name = "Skirt, scientist"
- path = /obj/item/clothing/under/rank/scientist/skirt
+ path = /obj/item/clothing/under/rank/rnd/scientist/skirt
allowed_roles = list("Research Director","Scientist")
/datum/gear/uniform/skirt/job/cargo
display_name = "Skirt, cargo"
- path = /obj/item/clothing/under/rank/cargotech/skirt
+ path = /obj/item/clothing/under/rank/cargo/tech/skirt
allowed_roles = list("Quartermaster","Cargo Technician")
/datum/gear/uniform/skirt/job/qm
display_name = "Skirt, QM"
- path = /obj/item/clothing/under/rank/cargo/skirt
+ path = /obj/item/clothing/under/rank/cargo/quartermaster/skirt
allowed_roles = list("Quartermaster")
/datum/gear/uniform/skirt/job/warden
display_name = "Skirt, warden"
- path = /obj/item/clothing/under/rank/warden/skirt
+ path = /obj/item/clothing/under/rank/security/warden/skirt
allowed_roles = list("Head of Security", "Warden")
/datum/gear/uniform/skirt/job/security
display_name = "Skirt, security"
- path = /obj/item/clothing/under/rank/security/skirt
+ path = /obj/item/clothing/under/rank/security/officer/skirt
allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer")
/datum/gear/uniform/skirt/job/head_of_security
display_name = "Skirt, hos"
- path = /obj/item/clothing/under/rank/head_of_security/skirt
+ path = /obj/item/clothing/under/rank/security/head_of_security/skirt
allowed_roles = list("Head of Security")
/datum/gear/uniform/skirt/job/ntrep
display_name = "Skirt, nt rep"
- path = /obj/item/clothing/under/rank/ntrep/skirt
+ path = /obj/item/clothing/under/rank/centcom/representative/skirt
allowed_roles = list("Nanotrasen Representative")
/datum/gear/uniform/skirt/job/blueshield
display_name = "Skirt, blueshield"
- path = /obj/item/clothing/under/rank/blueshield/skirt
+ path = /obj/item/clothing/under/rank/centcom/blueshield/skirt
allowed_roles = list("Blueshield")
@@ -219,12 +219,12 @@
/datum/gear/uniform/medical/pscrubs
display_name = "Medical scrubs, purple"
- path = /obj/item/clothing/under/rank/medical/purple
+ path = /obj/item/clothing/under/rank/medical/scrubs/purple
allowed_roles = list("Chief Medical Officer", "Medical Doctor")
/datum/gear/uniform/medical/gscrubs
display_name = "Medical scrubs, green"
- path = /obj/item/clothing/under/rank/medical/green
+ path = /obj/item/clothing/under/rank/medical/scrubs/green
allowed_roles = list("Chief Medical Officer", "Medical Doctor")
/datum/gear/uniform/sec
@@ -237,17 +237,17 @@
/datum/gear/uniform/sec/secorporate
display_name = "Security uniform, corporate"
- path = /obj/item/clothing/under/rank/security/corp
+ path = /obj/item/clothing/under/rank/security/officer/corporate
allowed_roles = list("Head of Security", "Warden", "Security Officer")
/datum/gear/uniform/sec/dispatch
display_name = "Security uniform, dispatch"
- path = /obj/item/clothing/under/rank/dispatch
+ path = /obj/item/clothing/under/rank/security/officer/dispatch
allowed_roles = list("Head of Security", "Warden", "Security Officer")
/datum/gear/uniform/sec/casual
display_name = "Security uniform, casual"
- path = /obj/item/clothing/under/rank/security2
+ path = /obj/item/clothing/under/rank/security/officer/uniform
allowed_roles = list("Head of Security", "Warden", "Security Officer", "Detective")
/datum/gear/uniform/shorts
@@ -255,23 +255,23 @@
/datum/gear/uniform/shorts/red
display_name = "Shorts, red"
- path = /obj/item/clothing/under/shorts/red
+ path = /obj/item/clothing/under/pants/shorts/red
/datum/gear/uniform/shorts/green
display_name = "Shorts, green"
- path = /obj/item/clothing/under/shorts/green
+ path = /obj/item/clothing/under/pants/shorts/green
/datum/gear/uniform/shorts/blue
display_name = "Shorts, blue"
- path = /obj/item/clothing/under/shorts/blue
+ path = /obj/item/clothing/under/pants/shorts/blue
/datum/gear/uniform/shorts/black
display_name = "Shorts, black"
- path = /obj/item/clothing/under/shorts/black
+ path = /obj/item/clothing/under/pants/shorts/black
/datum/gear/uniform/shorts/grey
display_name = "Shorts, grey"
- path = /obj/item/clothing/under/shorts/grey
+ path = /obj/item/clothing/under/pants/shorts/grey
/datum/gear/uniform/pants
main_typepath = /datum/gear/uniform/pants
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index 6e6fb50c064..45c03a4bf3b 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -201,6 +201,15 @@
resistance_flags = NONE
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
+ icon = 'icons/obj/clothing/under/color.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/color.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/color.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/color.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/color.dmi'
+ )
+
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/under/chameleon/Initialize(mapload)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index b223d8a4570..1268f639e0f 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -670,7 +670,7 @@ BLIND // can't see anything
//Under clothing
/obj/item/clothing/under
- icon = 'icons/obj/clothing/uniforms.dmi'
+ icon = 'icons/obj/clothing/under/misc.dmi'
name = "under"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
permeability_coefficient = 0.90
@@ -681,9 +681,9 @@ BLIND // can't see anything
pickup_sound = 'sound/items/handling/cloth_pickup.ogg'
sprite_sheets = list(
- "Vox" = 'icons/mob/clothing/species/vox/uniform.dmi',
- "Drask" = 'icons/mob/clothing/species/drask/uniform.dmi',
- "Grey" = 'icons/mob/clothing/species/grey/uniform.dmi'
+ "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/misc.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/misc.dmi'
)
///For the crew computer 2 = unable to change mode
@@ -830,14 +830,28 @@ BLIND // can't see anything
if(!istype(usr, /mob/living)) return
if(usr.stat) return
+ var/mob/living/carbon/human/H = usr
+
if(!usr.incapacitated())
if(copytext(item_color,-2) != "_d")
basecolor = item_color
- if((basecolor + "_d_s") in icon_states('icons/mob/clothing/uniform.dmi'))
- item_color = item_color == "[basecolor]" ? "[basecolor]_d" : "[basecolor]"
- usr.update_inv_w_uniform()
+
+ if(usr.get_item_by_slot(slot_w_uniform) != src)
+ to_chat(usr, "You must wear the uniform to adjust it!")
+
else
- to_chat(usr, "You cannot roll down this uniform!")
+ if((basecolor + "_d_s") in icon_states(H.w_uniform.sprite_sheets[H.dna.species.name]))
+ if(H.w_uniform.sprite_sheets[H.dna.species.name] && icon_exists(H.w_uniform.sprite_sheets[H.dna.species.name], "[basecolor]_d_s"))
+ item_color = item_color == "[basecolor]" ? "[basecolor]_d" : "[basecolor]"
+ usr.update_inv_w_uniform()
+
+ else
+ if(H.w_uniform.sprite_sheets["Human"] && icon_exists(H.w_uniform.sprite_sheets["Human"], "[basecolor]_d_s"))
+ item_color = item_color == "[basecolor]" ? "[basecolor]_d" : "[basecolor]"
+ usr.update_inv_w_uniform()
+ else
+ to_chat(usr, "You cannot roll down this uniform!")
+
else
to_chat(usr, "You cannot roll down the uniform!")
diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm
index 39f9d7f8ce1..5c88c815728 100644
--- a/code/modules/clothing/spacesuits/alien.dm
+++ b/code/modules/clothing/spacesuits/alien.dm
@@ -151,7 +151,7 @@
icon = 'icons/obj/clothing/species/vox/uniforms.dmi'
species_restricted = list("Vox")
sprite_sheets = list(
- "Vox" = 'icons/mob/clothing/species/vox/uniform.dmi'
+ "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi'
)
/obj/item/clothing/under/vox/vox_casual
@@ -170,7 +170,7 @@
item_state = "vox-casual-2"
species_restricted = list("Vox","Vox Armalis")
sprite_sheets = list(
- "Vox" = 'icons/mob/clothing/species/vox/uniform.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi',
"Vox Armalis" = 'icons/mob/clothing/species/armalis/suit.dmi'
)
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 40ff8ffab80..7937bdf8b87 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -744,39 +744,6 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
-//swimsuit
-/obj/item/clothing/under/swimsuit/
-
-/obj/item/clothing/under/swimsuit/black
- name = "black swimsuit"
- desc = "An oldfashioned black swimsuit."
- icon_state = "swim_black"
- item_color = "swim_black"
-
-/obj/item/clothing/under/swimsuit/blue
- name = "blue swimsuit"
- desc = "An oldfashioned blue swimsuit."
- icon_state = "swim_blue"
- item_color = "swim_blue"
-
-/obj/item/clothing/under/swimsuit/purple
- name = "purple swimsuit"
- desc = "An oldfashioned purple swimsuit."
- icon_state = "swim_purp"
- item_color = "swim_purp"
-
-/obj/item/clothing/under/swimsuit/green
- name = "green swimsuit"
- desc = "An oldfashioned green swimsuit."
- icon_state = "swim_green"
- item_color = "swim_green"
-
-/obj/item/clothing/under/swimsuit/red
- name = "red swimsuit"
- desc = "An oldfashioned red swimsuit."
- icon_state = "swim_red"
- item_color = "swim_red"
-
/obj/item/clothing/suit/storage/mercy_hoodie
name = "mercy robe"
desc = "A soft white robe made of a synthetic fiber that provides improved protection against biohazards. Possessing multiple overlapping layers, yet light enough to allow complete freedom of movement, it denotes its wearer as a master physician."
diff --git a/code/modules/clothing/under/centcom.dm b/code/modules/clothing/under/centcom.dm
new file mode 100644
index 00000000000..3fbf0b3fc02
--- /dev/null
+++ b/code/modules/clothing/under/centcom.dm
@@ -0,0 +1,119 @@
+/obj/item/clothing/under/rank/centcom
+ name = "\improper CentComm officer's jumpsuit"
+ desc = "It's a jumpsuit worn by CentComm Officers."
+ icon_state = "officer"
+ item_state = "g_suit"
+ item_color = "officer"
+
+ icon = 'icons/obj/clothing/under/centcom.dmi'
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/centcom.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/centcom.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/centcom.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/centcom.dmi'
+ )
+
+/obj/item/clothing/under/rank/centcom/sensor
+ sensor_mode = SENSOR_COORDS
+ random_sensor = FALSE
+
+/obj/item/clothing/under/rank/centcom/deathsquad
+ name = "\improper Deathsquad jumpsuit"
+ desc = "It's decorative jumpsuit worn by the Deathsquad. A small tag at the bottom reads \"Not associated with Nanotrasen\". "
+ icon_state = "officer"
+ item_state = "g_suit"
+ item_color = "officer"
+ sensor_mode = SENSOR_OFF // You think the Deathsquad wants to be seen?
+ random_sensor = FALSE
+
+/obj/item/clothing/under/rank/centcom/commander
+ name = "\improper CentComm commander's jumpsuit"
+ desc = "It's a jumpsuit worn by CentComm's highest-tier Commanders."
+ icon_state = "centcom"
+ item_state = "dg_suit"
+ item_color = "centcom"
+
+/obj/item/clothing/under/rank/centcom/officer
+ name = "\improper Nanotrasen naval officer's uniform"
+ desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Lieutenant-Commander\" and bears \"N.A.S. Trurl \" on the left shoulder. Worn exclusively by officers of the Nanotrasen Navy. It's got exotic materials for protection."
+ icon_state = "navy_gold"
+ item_state = "navy_gold"
+ item_color = "navy_gold"
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
+ displays_id = FALSE
+
+/obj/item/clothing/under/rank/centcom/captain
+ name = "\improper Nanotrasen naval captain's uniform"
+ desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Captain\" and bears \"N.A.S. Trurl \" on the left shoulder. Worn exclusively by officers of the Nanotrasen Navy. It's got exotic materials for protection."
+ icon_state = "navy_gold"
+ item_state = "navy_gold"
+ item_color = "navy_gold"
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
+ displays_id = FALSE
+
+/obj/item/clothing/under/rank/centcom/captain/solgov
+ name = "\improper Trans-Solar Federation commander's uniform"
+ desc = "Gold trim on space-black cloth, this uniform is worn by generals of the Trans-Solar Federation. It has exotic materials for protection."
+
+/obj/item/clothing/under/rank/centcom/blueshield
+ name = "formal blueshield's uniform"
+ desc = "Gold trim on space-black cloth, this uniform bears \"Close Protection\" on the left shoulder. It's got exotic materials for protection."
+ icon_state = "officer"
+ item_state = "g_suit"
+ item_color = "officer"
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
+ displays_id = FALSE
+
+/obj/item/clothing/under/rank/centcom/representative
+ name = "formal Nanotrasen Representative's uniform"
+ desc = "Gold trim on space-black cloth, this uniform bears \"N.S.S. Cyberiad\" on the left shoulder."
+ icon_state = "officer"
+ item_state = "g_suit"
+ item_color = "officer"
+ displays_id = FALSE
+
+/obj/item/clothing/under/rank/centcom/representative/Initialize(mapload)
+ . = ..()
+ desc = "Gold trim on space-black cloth, this uniform bears [station_name()] on the left shoulder."
+
+/obj/item/clothing/under/rank/centcom/representative/skirt
+ desc = "A silky smooth black and gold representative uniform with blue markings."
+ name = "representative skirt"
+ icon_state = "ntrepf"
+ item_state = "ntrepf"
+ item_color = "ntrepf"
+
+/obj/item/clothing/under/rank/centcom/magistrate
+ name = "formal magistrate's uniform"
+ desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears \"N.S.S. Cyberiad\" on the left shoulder."
+ icon_state = "officer"
+ item_state = "g_suit"
+ item_color = "officer"
+ displays_id = FALSE
+
+/obj/item/clothing/under/rank/centcom/magistrate/Initialize(mapload)
+ . = ..()
+ desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears [station_name()] on the left shoulder."
+
+/obj/item/clothing/under/rank/centcom/diplomatic
+ name = "\improper Nanotrasen diplomatic uniform"
+ desc = "A very gaudy and official looking uniform of the Nanotrasen Diplomatic Corps."
+ icon_state = "presidente"
+ item_state = "g_suit"
+ item_color = "presidente"
+ displays_id = FALSE
+
+/obj/item/clothing/under/rank/centcom/blueshield
+ name = "blueshield's uniform"
+ desc = "A short-sleeved black uniform, paired with grey digital-camo cargo pants, all made out of a sturdy material. Blueshield standard issue."
+ icon_state = "blueshield"
+ item_state = "bl_suit"
+ item_color = "blueshield"
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
+
+/obj/item/clothing/under/rank/centcom/blueshield/skirt
+ name = "blueshield's skirt"
+ desc = "A short, black and grey with blue markings skirted uniform. For the feminine Blueshield."
+ icon_state = "blueshieldf"
+ item_state = "blueshieldf"
+ item_color = "blueshieldf"
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index 8d4631655e2..f738f70c0fa 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -1,10 +1,18 @@
/obj/item/clothing/under/color
desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
dyeable = TRUE
+ icon = 'icons/obj/clothing/under/color.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/color.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/color.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/color.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/color.dmi'
+ )
/obj/item/clothing/under/color/random/Initialize(mapload)
. = ..()
- var/list/excluded = list(/obj/item/clothing/under/color/random, /obj/item/clothing/under/color/blackf, /obj/item/clothing/under/color/blue/dodgeball, /obj/item/clothing/under/color/orange/prison, /obj/item/clothing/under/color/red/dodgeball, /obj/item/clothing/under/color/red/jersey, /obj/item/clothing/under/color/blue/jersey)
+ var/list/excluded = list(/obj/item/clothing/under/color/random, /obj/item/clothing/under/color/blue/dodgeball, /obj/item/clothing/under/color/orange/prison, /obj/item/clothing/under/color/red/dodgeball, /obj/item/clothing/under/color/red/jersey, /obj/item/clothing/under/color/blue/jersey)
var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - excluded)
name = initial(C.name)
icon_state = initial(C.icon_state)
@@ -18,13 +26,6 @@
item_color = "black"
resistance_flags = NONE
-/obj/item/clothing/under/color/blackf
- name = "feminine black jumpsuit"
- desc = "It's very smart and in a ladies-size!"
- icon_state = "black"
- item_state = "bl_suit"
- item_color = "blackf"
-
/obj/item/clothing/under/color/blue
name = "blue jumpsuit"
icon_state = "blue"
@@ -102,16 +103,12 @@
item_state = "y_suit"
item_color = "yellow"
-/obj/item/clothing/under/psyche
+/obj/item/clothing/under/color/psyche
name = "psychedelic jumpsuit"
desc = "Groovy!"
icon_state = "psyche"
item_color = "psyche"
- sprite_sheets = list(
- "Vox" = 'icons/mob/clothing/species/vox/uniform.dmi'
- )
-
/obj/item/clothing/under/color/lightblue
name = "light blue jumpsuit"
icon_state = "lightblue"
@@ -177,6 +174,13 @@
icon_state = "darkred"
item_color = "darkred"
+/obj/item/clothing/under/color/rainbow
+ name = "rainbow"
+ desc = "rainbow"
+ icon_state = "rainbow"
+ item_state = "rainbow"
+ item_color = "rainbow"
+
/obj/item/clothing/under/color/red/jersey
name = "red team jersey"
desc = "The jersey of the Nanotrasen Phi-ghters!"
diff --git a/code/modules/clothing/under/costumes.dm b/code/modules/clothing/under/costumes.dm
new file mode 100644
index 00000000000..8ebae6c5a2c
--- /dev/null
+++ b/code/modules/clothing/under/costumes.dm
@@ -0,0 +1,213 @@
+/obj/item/clothing/under/costume
+ icon = 'icons/obj/clothing/under/costumes.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/costumes.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/costumes.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/costumes.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/costumes.dmi'
+ )
+
+/obj/item/clothing/under/costume/captain_fly
+ name = "rogue captains uniform"
+ desc = "For the man who doesn't care because he's still free."
+ icon_state = "captain_fly"
+ item_state = "captain_fly"
+ item_color = "captain_fly"
+
+/obj/item/clothing/under/costume/rebeloutfit
+ name = "rebel outfit"
+ desc = "Made in Seattle, 2216."
+ icon_state = "colin_earle"
+ item_state = "colin_earle"
+ item_color = "colin_earle"
+
+/obj/item/clothing/under/costume/patriotsuit
+ name = "Patriotic Suit"
+ desc = "Motorcycle not included."
+ icon_state = "ek"
+ item_state = "ek"
+ item_color = "ek"
+
+/obj/item/clothing/under/costume/flappers
+ name = "flappers"
+ desc = "Nothing like the roarin' '20s, flapping the night away on the dance floor."
+ icon_state = "flapper"
+ item_state = "flapper"
+ item_color = "flapper"
+
+/obj/item/clothing/under/costume/gladiator
+ name = "gladiator uniform"
+ desc = "Are you not entertained? Is that not why you are here?"
+ icon_state = "gladiator"
+ item_state = "gladiator"
+ item_color = "gladiator"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+ resistance_flags = NONE
+
+/obj/item/clothing/under/costume/gladiator/ash_walker
+ desc = "This gladiator uniform appears to be covered in ash and fairly dated."
+ has_sensor = FALSE
+
+/obj/item/clothing/under/costume/griffin
+ name = "griffon uniform"
+ desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem."
+ icon_state = "griffin"
+ item_color = "griffin"
+
+/obj/item/clothing/under/costume/owl
+ name = "owl uniform"
+ desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction."
+ icon_state = "owl"
+ item_color = "owl"
+
+/obj/item/clothing/under/costume/janimaid
+ name = "maid uniform"
+ desc = "A simple maid uniform for housekeeping."
+ icon_state = "janimaid"
+ item_state = "janimaid"
+ item_color = "janimaid"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/costume/jester
+ name = "jester suit"
+ desc = "A jolly dress, well suited to entertain your master, nuncle."
+ icon_state = "jester"
+ item_color = "jester"
+
+/obj/item/clothing/under/costume/mankini
+ name = "the mankini"
+ desc = "No honest man would wear this abomination"
+ icon_state = "mankini"
+ item_color = "mankini"
+
+/obj/item/clothing/under/costume/maid
+ name = "maid costume"
+ desc = "Maid in China."
+ icon_state = "meido"
+ item_state = "meido"
+ item_color = "meido"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/costume/noble_clothes
+ name = "noble clothes"
+ desc = "They fall just short of majestic."
+ icon_state = "noble_clothes"
+ item_color = "noble_clothes"
+ item_state = "noble_clothes"
+
+/obj/item/clothing/under/costume/officeruniform
+ name = "clown officer's uniform"
+ desc = "For the officers of the Clown army."
+ icon_state = "officeruniform"
+ item_color = "officeruniform"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/costume/soldieruniform
+ name = "clown soldier's uniform"
+ desc = "For the basic grunt of the Clown army."
+ icon_state = "soldieruniform"
+ item_color = "soldieruniform"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/costume/pennywise
+ name = "\improper Pennywise costume"
+ desc = "It's everything you ever were afraid of."
+ icon_state = "pennywise"
+ item_color = "pennywise"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/costume/pirate
+ name = "pirate outfit"
+ desc = "Yarr."
+ icon_state = "pirate"
+ item_state = "pirate"
+ item_color = "pirate"
+
+/obj/item/clothing/under/costume/pirate_rags
+ name = "pirate rags"
+ desc = "an old ragged set of clothing"
+ icon_state = "piraterags"
+ item_state = "piraterags"
+ item_color = "piraterags"
+
+/obj/item/clothing/under/costume/psyjump
+ name = "psychic amp jumpsuit"
+ desc = "A suit made of strange materials."
+ icon_state = "psyamp"
+ item_state = "psyamp"
+ item_color = "psyamp"
+
+/obj/item/clothing/under/psysuit //Don't modify the path, used by a fluff item
+ name = "dark undersuit"
+ desc = "A thick, layered grey undersuit lined with power cables. Feels a little like wearing an electrical storm."
+ icon_state = "psysuit"
+ item_state = "psysuit"
+ item_color = "psysuit"
+
+ sprite_sheets = list( //it is what it is
+ "Human" = 'icons/mob/clothing/under/costumes.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/costumes.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/costumes.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/costumes.dmi'
+ )
+
+/obj/item/clothing/under/costume/redcoat
+ name = "redcoat uniform"
+ desc = "Looks old."
+ icon_state = "redcoat"
+ item_state = "redcoat"
+ item_color = "redcoat"
+
+/obj/item/clothing/under/costume/roman
+ name = "roman armor"
+ desc = "An ancient Roman armor. Made of metallic strips and leather straps."
+ icon_state = "roman"
+ item_color = "roman"
+ item_state = "armor"
+ strip_delay = 100
+ resistance_flags = NONE
+
+/obj/item/clothing/under/costume/soviet
+ name = "soviet uniform"
+ desc = "For the Motherland!"
+ icon_state = "soviet"
+ item_state = "soviet"
+ item_color = "soviet"
+
+
+/obj/item/clothing/under/costume/tourist_suit
+ name = "tourist outfit"
+ desc = "A light blue shirt with brown shorts. Feels oddly spooky."
+ icon_state = "tourist"
+ icon_state = "tourist"
+ item_color = "tourist"
+
+/obj/item/clothing/under/costume/singery
+ name = "yellow performer's outfit"
+ desc = "Just looking at this makes you want to sing."
+ icon_state = "ysing"
+ item_state = "ysing"
+ item_color = "ysing"
+
+/obj/item/clothing/under/costume/singerb
+ name = "blue performer's outfit"
+ desc = "Just looking at this makes you want to sing."
+ icon_state = "bsing"
+ item_state = "bsing"
+ item_color = "bsing"
+
+/obj/item/clothing/under/costume/cuban_suit
+ name = "rhumba outfit"
+ desc = "A satin shirt and high-waisted pants, worn by dancers in the Rhumba style. It smells oddly like... sulfur?"
+ icon_state = "cuban_suit"
+ item_state = "cuban_suit"
+ item_color = "cuban_suit"
+
+/obj/item/clothing/under/costume/kilt
+ name = "kilt"
+ desc = "Includes shoes and plaid"
+ icon_state = "kilt"
+ item_state = "kilt"
+ item_color = "kilt"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|FEET
diff --git a/code/modules/clothing/under/dress.dm b/code/modules/clothing/under/dress.dm
new file mode 100644
index 00000000000..42788ffd9f1
--- /dev/null
+++ b/code/modules/clothing/under/dress.dm
@@ -0,0 +1,165 @@
+/obj/item/clothing/under/dress
+ icon = 'icons/obj/clothing/under/dress.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/dress.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/dress.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/dress.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/dress.dmi'
+ )
+
+/obj/item/clothing/under/dress/victdress
+ name = "black victorian dress"
+ desc = "A victorian style dress, fancy!"
+ icon_state = "victorianblackdress"
+ item_state = "victorianblackdress"
+ item_color = "victorianblackdress"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/dress/victdress/red
+ name = "red victorian dress"
+ icon_state = "victorianreddress"
+ item_state = "victorianreddress"
+ item_color = "victorianreddress"
+
+/obj/item/clothing/under/dress/blacktango
+ name = "black tango dress"
+ desc = "Filled with Latin fire."
+ icon_state = "black_tango"
+ item_state = "wcoat"
+ item_color = "black_tango"
+
+/obj/item/clothing/under/dress/blackskirt
+ name = "black skirt"
+ desc = "A black skirt, very fancy!"
+ icon_state = "blackskirt"
+ item_color = "blackskirt"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
+//wedding stuff
+
+/obj/item/clothing/under/dress/wedding/bride_orange
+ name = "orange wedding dress"
+ desc = "A big and puffy orange dress."
+ icon_state = "bride_orange"
+ item_color = "bride_orange"
+ flags_inv = HIDESHOES
+
+/obj/item/clothing/under/dress/wedding/bride_purple
+ name = "purple wedding dress"
+ desc = "A big and puffy purple dress."
+ icon_state = "bride_purple"
+ item_color = "bride_purple"
+ flags_inv = HIDESHOES
+
+/obj/item/clothing/under/dress/wedding/bride_blue
+ name = "blue wedding dress"
+ desc = "A big and puffy blue dress."
+ icon_state = "bride_blue"
+ item_color = "bride_blue"
+ flags_inv = HIDESHOES
+
+/obj/item/clothing/under/dress/wedding/bride_red
+ name = "red wedding dress"
+ desc = "A big and puffy red dress."
+ icon_state = "bride_red"
+ item_color = "bride_red"
+ flags_inv = HIDESHOES
+
+/obj/item/clothing/under/dress/wedding/bride_white
+ name = "white wedding dress"
+ desc = "A white wedding gown made from the finest silk."
+ icon_state = "bride_white"
+ item_color = "bride_white"
+ flags_inv = HIDESHOES
+
+/obj/item/clothing/under/dress/dress_fire
+ name = "flame dress"
+ desc = "A small black dress with blue flames print on it."
+ icon_state = "dress_fire"
+ item_color = "dress_fire"
+
+/obj/item/clothing/under/dress/dress_orange
+ name = "orange dress"
+ desc = "A fancy orange gown for those who like to show leg."
+ icon_state = "dress_orange"
+ item_color = "dress_orange"
+
+/obj/item/clothing/under/dress/dress_pink
+ name = "pink dress"
+ desc = "A simple, tight fitting pink dress."
+ icon_state = "dress_pink"
+ item_color = "dress_pink"
+
+/obj/item/clothing/under/dress/dress_green
+ name = "green dress"
+ desc = "A simple, tight fitting green dress."
+ icon_state = "dress_green"
+ item_color = "dress_green"
+
+/obj/item/clothing/under/dress/dress_yellow
+ name = "yellow dress"
+ desc = "A flirty, little yellow dress."
+ icon_state = "dress_yellow"
+ item_color = "dress_yellow"
+
+/obj/item/clothing/under/dress/dress_saloon
+ name = "saloon girl dress"
+ desc = "A old western inspired gown for the girl who likes to drink."
+ icon_state = "dress_saloon"
+ item_color = "dress_saloon"
+
+/obj/item/clothing/under/dress/plaid_blue
+ name = "blue plaid skirt"
+ desc = "A preppy blue skirt with a white blouse."
+ icon_state = "plaid_blue"
+ item_color = "plaid_blue"
+
+/obj/item/clothing/under/dress/plaid_red
+ name = "red plaid skirt"
+ desc = "A preppy red skirt with a white blouse."
+ icon_state = "plaid_red"
+ item_color = "plaid_red"
+
+/obj/item/clothing/under/dress/plaid_purple
+ name = "blue purple skirt"
+ desc = "A preppy purple skirt with a white blouse."
+ icon_state = "plaid_purple"
+ item_color = "plaid_purple"
+
+/obj/item/clothing/under/dress/sailordress
+ name = "sailor dress"
+ desc = "Formal wear for a leading lady."
+ icon_state = "sailor_dress"
+ item_state = "sailordress"
+ item_color = "sailor_dress"
+
+/obj/item/clothing/under/dress/redeveninggown
+ name = "red evening gown"
+ desc = "Fancy dress for space bar singers."
+ icon_state = "red_evening_gown"
+ item_state = "redeveninggown"
+ item_color = "red_evening_gown"
+
+/obj/item/clothing/under/dress/schoolgirl
+ name = "schoolgirl uniform"
+ desc = "It's just like one of my Japanese animes!"
+ icon_state = "schoolgirl"
+ item_state = "schoolgirl"
+ item_color = "schoolgirl"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
+/obj/item/clothing/under/dress/stripeddress
+ name = "striped dress"
+ desc = "Fashion in space."
+ icon_state = "striped_dress"
+ item_state = "stripeddress"
+ item_color = "striped_dress"
+
+/obj/item/clothing/under/dress/sundress
+ name = "sundress"
+ desc = "Makes you want to frolic in a field of daisies."
+ icon_state = "sundress"
+ item_state = "sundress"
+ item_color = "sundress"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
diff --git a/code/modules/clothing/under/jobs/captain.dm b/code/modules/clothing/under/jobs/captain.dm
new file mode 100644
index 00000000000..03c17506d0e
--- /dev/null
+++ b/code/modules/clothing/under/jobs/captain.dm
@@ -0,0 +1,28 @@
+/obj/item/clothing/under/rank/captain
+ name = "captain's jumpsuit"
+ desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"."
+ icon = 'icons/obj/clothing/under/captain.dmi'
+ icon_state = "captain"
+ item_state = "caparmor"
+ item_color = "captain"
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/captain.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/captain.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/captain.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/captain.dmi',
+ "Kidan" = 'icons/mob/clothing/species/kidan/under/captain.dmi',
+ )
+
+/obj/item/clothing/under/rank/captain/dress
+ name = "captain's dress"
+ desc = "Feminine fashion for the style concious captain."
+ icon_state = "captain_dress"
+ item_color = "captain_dress"
+
+/obj/item/clothing/under/rank/captain/parade
+ name = "captain's parade uniform"
+ desc = "A captain's luxury-wear, for special occasions."
+ icon_state = "captain_parade"
+ item_state = "by_suit"
+ item_color = "captain_parade"
diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm
new file mode 100644
index 00000000000..9fe9cf4cbbf
--- /dev/null
+++ b/code/modules/clothing/under/jobs/cargo.dm
@@ -0,0 +1,50 @@
+/obj/item/clothing/under/rank/cargo
+ icon = 'icons/obj/clothing/under/cargo.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/cargo.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/cargo.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/cargo.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/cargo.dmi'
+ )
+
+
+/obj/item/clothing/under/rank/cargo/quartermaster
+ name = "quartermaster's jumpsuit"
+ desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper."
+ icon_state = "qm"
+ item_state = "lb_suit"
+ item_color = "qm"
+
+/obj/item/clothing/under/rank/cargo/quartermaster/skirt
+ name = "quartermaster's jumpskirt"
+ desc = "It's a jumpskirt worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper."
+ icon_state = "qmf"
+ item_color = "qmf"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
+/obj/item/clothing/under/rank/cargo/tech
+ name = "cargo technician's jumpsuit"
+ desc = "Shooooorts! They're comfy and easy to wear!"
+ icon_state = "cargotech"
+ item_state = "lb_suit"
+ item_color = "cargo"
+
+/obj/item/clothing/under/rank/cargo/tech/skirt
+ name = "cargo technician's jumpskirt"
+ desc = "Skirrrrrts! They're comfy and easy to wear!"
+ icon_state = "cargof"
+ item_color = "cargof"
+
+/obj/item/clothing/under/rank/cargo/miner
+ name = "shaft miner's jumpsuit"
+ desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty."
+ icon_state = "miner"
+ item_state = "miner"
+ item_color = "miner"
+
+/obj/item/clothing/under/rank/cargo/miner/lavaland
+ desc = "A green uniform for operating in hazardous environments."
+ icon_state = "explorer"
+ item_state = "explorer"
+ item_color = "explorer"
diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm
index 0e05b0eeeda..dbce9464a7d 100644
--- a/code/modules/clothing/under/jobs/civilian.dm
+++ b/code/modules/clothing/under/jobs/civilian.dm
@@ -1,121 +1,102 @@
-//Alphabetical order of support jobs.
-
-/obj/item/clothing/under/rank/bartender
- desc = "It looks like it could use some more flair."
- name = "bartender's uniform"
- icon_state = "ba_suit"
- item_state = "ba_suit"
- item_color = "ba_suit"
-
-/obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define.
- desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"."
- name = "captain's jumpsuit"
- icon_state = "captain"
- item_state = "caparmor"
- item_color = "captain"
+/obj/item/clothing/under/rank/civilian
+ icon = 'icons/obj/clothing/under/civilian.dmi'
sprite_sheets = list(
- "Vox" = 'icons/mob/clothing/species/vox/uniform.dmi',
- "Drask" = 'icons/mob/clothing/species/drask/uniform.dmi',
- "Grey" = 'icons/mob/clothing/species/grey/uniform.dmi',
- "Kidan" = 'icons/mob/clothing/species/kidan/uniform.dmi',
+ "Human" = 'icons/mob/clothing/under/civilian.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/civilian.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/civilian.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/civilian.dmi'
)
-/obj/item/clothing/under/rank/captain/parade
- name = "captain's parade uniform"
- desc = "A captain's luxury-wear, for special occasions."
- icon_state = "captain_parade"
- item_state = "by_suit"
- item_color = "captain_parade"
-
-/obj/item/clothing/under/rank/cargo
- name = "quartermaster's jumpsuit"
- desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper."
- icon_state = "qm"
- item_state = "lb_suit"
- item_color = "qm"
-
-/obj/item/clothing/under/rank/cargo/skirt
- name = "quartermaster's jumpskirt"
- desc = "It's a jumpskirt worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper."
- icon_state = "qmf"
- item_color = "qmf"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-
-/obj/item/clothing/under/rank/cargotech
- name = "cargo technician's jumpsuit"
- desc = "Shooooorts! They're comfy and easy to wear!"
- icon_state = "cargotech"
- item_state = "lb_suit"
- item_color = "cargo"
-
-/obj/item/clothing/under/rank/cargotech/skirt
- name = "cargo technician's jumpskirt"
- desc = "Skirrrrrts! They're comfy and easy to wear!"
- icon_state = "cargof"
- item_color = "cargof"
-
-/obj/item/clothing/under/rank/chaplain
- desc = "It's a black jumpsuit, often worn by religious folk."
- name = "chaplain's jumpsuit"
- icon_state = "chaplain"
- item_state = "bl_suit"
- item_color = "chapblack"
-
-/obj/item/clothing/under/rank/chaplain/sensor
- sensor_mode = SENSOR_COORDS
- random_sensor = FALSE
-
-/obj/item/clothing/under/rank/chef
- desc = "It's an apron which is given only to the most hardcore chefs in space."
- name = "chef's uniform"
- icon_state = "chef"
- item_color = "chef"
-
-/obj/item/clothing/under/rank/clown
- name = "clown suit"
- desc = "'HONK!'"
- icon_state = "clown"
- item_state = "clown"
- item_color = "clown"
-
-/obj/item/clothing/under/rank/clown/Initialize()
- . = ..()
- AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg' = 1), 50, falloff_exponent = 20) //die off quick please
-
-/obj/item/clothing/under/rank/clown/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
- if(ishuman(loc))
- var/mob/living/carbon/human/H = loc
- if(H.mind && H.mind.assigned_role == "Clown")
- SSticker.score.score_clown_abuse++
- return ..()
-
-/obj/item/clothing/under/rank/clown/sexy
- name = "sexy-clown suit"
- desc = "It makes you look HONKable!"
- icon_state = "sexyclown"
- item_state = "sexyclown"
- item_color = "sexyclown"
-
-/obj/item/clothing/under/rank/clown/nodrop
- flags = NODROP
-
-/obj/item/clothing/under/rank/head_of_personnel
+/obj/item/clothing/under/rank/civilian/head_of_personnel
desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"."
name = "head of personnel's jumpsuit"
icon_state = "hop"
item_state = "b_suit"
item_color = "hop"
-/obj/item/clothing/under/rank/head_of_personnel_whimsy
+/obj/item/clothing/under/rank/civilian/head_of_personnel/dress
+ name = "head of personal's dress uniform"
+ desc = "Feminine fashion for the style concious HoP."
+ icon_state = "dress_hop"
+ item_color = "dress_hop"
+
+/obj/item/clothing/under/rank/civilian/head_of_personnel_whimsy
desc = "A blue jacket and red tie, with matching red cuffs! Snazzy. Wearing this makes you feel more important than your job title does."
name = "head of personnel's suit"
icon_state = "hopwhimsy"
item_state = "hopwhimsy"
item_color = "hopwhimsy"
+/obj/item/clothing/under/rank/civilian/bartender
+ desc = "It looks like it could use some more flair."
+ name = "bartender's uniform"
+ icon_state = "ba_suit"
+ item_state = "ba_suit"
+ item_color = "ba_suit"
-/obj/item/clothing/under/rank/hydroponics
+
+/obj/item/clothing/under/rank/civilian/chaplain
+ desc = "It's a black jumpsuit, often worn by religious folk."
+ name = "chaplain's jumpsuit"
+ icon_state = "chaplain"
+ item_state = "bl_suit"
+ item_color = "chapblack"
+
+/obj/item/clothing/under/rank/civilian/chaplain/sensor
+ sensor_mode = SENSOR_COORDS
+ random_sensor = FALSE
+
+/obj/item/clothing/under/rank/civilian/chef
+ desc = "It's an apron which is given only to the most hardcore chefs in space."
+ name = "chef's uniform"
+ icon_state = "chef"
+ item_color = "chef"
+
+/obj/item/clothing/under/rank/civilian/clown
+ name = "clown suit"
+ desc = "'HONK!'"
+ icon_state = "clown"
+ item_state = "clown"
+ item_color = "clown"
+
+/obj/item/clothing/under/rank/civilian/clown/Initialize()
+ . = ..()
+ AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg' = 1), 50, falloff_exponent = 20) //die off quick please
+
+/obj/item/clothing/under/rank/civilian/clown/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
+ if(ishuman(loc))
+ var/mob/living/carbon/human/H = loc
+ if(H.mind && H.mind.assigned_role == "Clown")
+ SSticker.score.score_clown_abuse++
+ return ..()
+
+/obj/item/clothing/under/rank/civilian/clown/sexy
+ name = "sexy-clown suit"
+ desc = "It makes you look HONKable!"
+ icon_state = "sexyclown"
+ item_state = "sexyclown"
+ item_color = "sexyclown"
+
+/obj/item/clothing/under/rank/civilian/clown/nodrop
+ flags = NODROP
+
+/obj/item/clothing/under/rank/civilian/mime
+ name = "mime's outfit"
+ desc = "It's not very colourful."
+ icon_state = "mime"
+ item_state = "mime"
+ item_color = "mime"
+
+/obj/item/clothing/under/rank/civilian/mime/sexy
+ name = "sexy mime outfit"
+ desc = "The only time when you DON'T enjoy looking at someone's rack."
+ icon_state = "sexymime"
+ item_state = "sexymime"
+ item_color = "sexymime"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/rank/civilian/hydroponics
desc = "It's a jumpsuit designed to protect against minor plant-related hazards."
name = "botanist's jumpsuit"
icon_state = "hydroponics"
@@ -123,116 +104,87 @@
item_color = "hydroponics"
permeability_coefficient = 0.50
-/obj/item/clothing/under/rank/internalaffairs
- desc = "The plain, professional attire of an Internal Affairs Agent. The collar is immaculately starched."
- name = "Internal Affairs uniform"
- icon_state = "internalaffairs"
- item_state = "internalaffairs"
- item_color = "internalaffairs"
-
-/obj/item/clothing/under/rank/ntrep
- desc = "A well-ironed dress shirt and matching set of black pants."
- name = "dress shirt"
- icon_state = "internalaffairs"
- item_state = "internalaffairs"
- item_color = "internalaffairs"
-
-/obj/item/clothing/under/rank/ntrep/skirt
- desc = "A silky smooth black and gold representative uniform with blue markings."
- name = "representative skirt"
- icon_state = "ntrepf"
- item_state = "ntrepf"
- item_color = "ntrepf"
-
-/obj/item/clothing/under/rank/janitor
+/obj/item/clothing/under/rank/civilian/janitor
desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards."
name = "janitor's jumpsuit"
icon_state = "janitor"
item_color = "janitor"
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
-
-/obj/item/clothing/under/lawyer
- desc = "Slick threads."
- name = "Lawyer suit"
-
-/obj/item/clothing/under/lawyer/black
- icon_state = "lawyer_black"
- item_state = "lawyer_black"
- item_color = "lawyer_black"
-
-/obj/item/clothing/under/lawyer/female
- icon_state = "black_suit_fem"
- item_state = "black_suit_fem"
- item_color = "black_suit_fem"
-
-/obj/item/clothing/under/lawyer/red
- icon_state = "lawyer_red"
- item_state = "lawyer_red"
- item_color = "lawyer_red"
-
-/obj/item/clothing/under/lawyer/blue
- icon_state = "lawyer_blue"
- item_state = "lawyer_blue"
- item_color = "lawyer_blue"
-
-/obj/item/clothing/under/lawyer/bluesuit
- name = "Blue Suit"
- desc = "A classy suit and tie"
- icon_state = "bluesuit"
- item_state = "bluesuit"
- item_color = "bluesuit"
-
-/obj/item/clothing/under/lawyer/purpsuit
- name = "Purple Suit"
- icon_state = "lawyer_purp"
- item_state = "lawyer_purp"
- item_color = "lawyer_purp"
-
-/obj/item/clothing/under/lawyer/oldman
- name = "Old Man's Suit"
- desc = "A classic suit for the older gentleman with built in back support."
- icon_state = "oldman"
- item_state = "oldman"
- item_color = "oldman"
-
-
-/obj/item/clothing/under/librarian
+/obj/item/clothing/under/rank/civilian/librarian
name = "sensible suit"
desc = "It's very... sensible."
icon_state = "red_suit"
item_state = "red_suit"
item_color = "red_suit"
-/obj/item/clothing/under/mime
- name = "mime's outfit"
- desc = "It's not very colourful."
- icon_state = "mime"
- item_state = "mime"
- item_color = "mime"
-/obj/item/clothing/under/mime/nodrop
+/obj/item/clothing/under/rank/civilian/mime/nodrop
flags = NODROP
-/obj/item/clothing/under/rank/miner
- desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty."
- name = "shaft miner's jumpsuit"
- icon_state = "miner"
- item_state = "miner"
- item_color = "miner"
-
-/obj/item/clothing/under/rank/miner/lavaland
- desc = "A green uniform for operating in hazardous environments."
- name = "shaft miner's jumpsuit"
- icon_state = "explorer"
- item_state = "explorer"
- item_color = "explorer"
-
- sprite_sheets = list()
-
-/obj/item/clothing/under/barber
+/obj/item/clothing/under/rank/civilian/barber
desc = "It's a barber's uniform."
name = "barber's uniform"
icon_state = "barber"
item_state = "barber"
item_color = "barber"
+
+
+/obj/item/clothing/under/rank/civilian/internalaffairs
+ desc = "The plain, professional attire of an Internal Affairs Agent. The collar is immaculately starched."
+ name = "Internal Affairs uniform"
+ icon_state = "internalaffairs"
+ item_state = "internalaffairs"
+ item_color = "internalaffairs"
+
+/obj/item/clothing/under/rank/civilian/dress_shirt
+ desc = "A well-ironed dress shirt and matching set of black pants."
+ name = "dress shirt"
+ icon_state = "internalaffairs"
+ item_state = "internalaffairs"
+ item_color = "internalaffairs"
+
+/obj/item/clothing/under/rank/civilian/lawyer
+ desc = "Slick threads."
+ name = "Lawyer suit"
+
+/obj/item/clothing/under/rank/civilian/lawyer/black
+ icon_state = "lawyer_black"
+ item_state = "lawyer_black"
+ item_color = "lawyer_black"
+
+/obj/item/clothing/under/rank/civilian/lawyer/red
+ icon_state = "lawyer_red"
+ item_state = "lawyer_red"
+ item_color = "lawyer_red"
+
+/obj/item/clothing/under/rank/civilian/lawyer/blue
+ icon_state = "lawyer_blue"
+ item_state = "lawyer_blue"
+ item_color = "lawyer_blue"
+
+/obj/item/clothing/under/rank/civilian/lawyer/purpsuit
+ name = "Purple Suit"
+ icon_state = "lawyer_purp"
+ item_state = "lawyer_purp"
+ item_color = "lawyer_purp"
+
+/obj/item/clothing/under/rank/civilian/lawyer/bluesuit
+ name = "Blue Suit"
+ desc = "A classy suit and tie"
+ icon_state = "bluesuit"
+ item_state = "bluesuit"
+ item_color = "bluesuit"
+
+/obj/item/clothing/under/rank/civilian/lawyer/oldman
+ name = "Old Man's Suit"
+ desc = "A classic suit for the older gentleman with built in back support."
+ icon_state = "oldman"
+ item_state = "oldman"
+ item_color = "oldman"
+
+/obj/item/clothing/under/rank/civilian/lawyer/dress_hr
+ name = "human resources director's uniform"
+ desc = "Superior class for the nosy H.R. Director."
+ icon_state = "huresource"
+ item_color = "huresource"
diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm
index 7636b16acda..e743cea91ce 100644
--- a/code/modules/clothing/under/jobs/engineering.dm
+++ b/code/modules/clothing/under/jobs/engineering.dm
@@ -1,5 +1,14 @@
-//Contains: Engineering department jumpsuits
-/obj/item/clothing/under/rank/chief_engineer
+/obj/item/clothing/under/rank/engineering
+ icon = 'icons/obj/clothing/under/engineering.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/engineering.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/engineering.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/engineering.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/engineering.dmi'
+ )
+
+/obj/item/clothing/under/rank/engineering/chief_engineer
desc = "It's a high visibility jumpsuit given to those engineers insane enough to achieve the rank of \"Chief engineer\". It has minor radiation shielding."
name = "chief engineer's jumpsuit"
icon_state = "chiefengineer"
@@ -8,14 +17,14 @@
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 5, FIRE = 200, ACID = 35)
resistance_flags = NONE
-/obj/item/clothing/under/rank/chief_engineer/skirt
+/obj/item/clothing/under/rank/engineering/chief_engineer/skirt
desc = "It's a high visibility jumpskirt given to those engineers insane enough to achieve the rank of \"Chief engineer\". It has minor radiation shielding."
name = "chief engineer's jumpskirt"
icon_state = "chieff"
item_color = "chieff"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-/obj/item/clothing/under/rank/atmospheric_technician
+/obj/item/clothing/under/rank/engineering/atmospheric_technician
desc = "It's a jumpsuit worn by atmospheric technicians."
name = "atmospheric technician's jumpsuit"
icon_state = "atmos"
@@ -23,14 +32,38 @@
item_color = "atmos"
resistance_flags = NONE
-/obj/item/clothing/under/rank/atmospheric_technician/skirt
+/obj/item/clothing/under/rank/engineering/atmospheric_technician/contortionist
+ name = "atmospheric technician's jumpsuit"
+ desc = "A light jumpsuit useful for squeezing through narrow vents."
+ resistance_flags = FIRE_PROOF
+
+/obj/item/clothing/under/rank/engineering/atmospheric_technician/contortionist/equipped(mob/living/carbon/human/user, slot)
+ if(!user.ventcrawler)
+ user.ventcrawler = 2
+ ..()
+
+/obj/item/clothing/under/rank/engineering/atmospheric_technician/contortionist/dropped(mob/living/carbon/human/user)
+ if(!user.get_int_organ(/obj/item/organ/internal/heart/gland/ventcrawling))
+ user.ventcrawler = 0
+ ..()
+
+/obj/item/clothing/under/rank/engineering/atmospheric_technician/contortionist/proc/check_clothing(mob/user as mob)
+ //Allowed to wear: glasses, shoes, gloves, pockets, mask, and jumpsuit (obviously)
+ var/list/slot_must_be_empty = list(slot_back,slot_handcuffed,slot_legcuffed,slot_l_hand,slot_r_hand,slot_belt,slot_head,slot_wear_suit)
+ for(var/slot_id in slot_must_be_empty)
+ if(user.get_item_by_slot(slot_id))
+ to_chat(user,"You can't fit inside while wearing \the [user.get_item_by_slot(slot_id)].")
+ return 0
+ return 1
+
+/obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt
desc = "It's a jumpskirt worn by atmospheric technicians."
name = "atmospheric technician's jumpskirt"
icon_state = "atmosf"
item_color = "atmosf"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-/obj/item/clothing/under/rank/engineer
+/obj/item/clothing/under/rank/engineering/engineer
desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding."
name = "engineer's jumpsuit"
icon_state = "engine"
@@ -39,28 +72,13 @@
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 5, FIRE = 75, ACID = 10)
resistance_flags = NONE
-/obj/item/clothing/under/rank/engineer/sensor
+/obj/item/clothing/under/rank/engineering/engineer/sensor
sensor_mode = SENSOR_COORDS
random_sensor = FALSE
-
-/obj/item/clothing/under/rank/engineer/skirt
+/obj/item/clothing/under/rank/engineering/engineer/skirt
desc = "It's an orange high visibility jumpskirt worn by engineers. It has minor radiation shielding."
name = "engineer's jumpskirt"
icon_state = "enginef"
item_color = "enginef"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-
-/obj/item/clothing/under/rank/roboticist
- desc = "It's a slimming black with reinforced seams; great for industrial work."
- name = "roboticist's jumpsuit"
- icon_state = "robotics"
- item_state = "robotics"
- item_color = "robotics"
- resistance_flags = NONE
-
-/obj/item/clothing/under/rank/roboticist/skirt
- desc = "It's a slimming black jumpskirt with reinforced seams; great for industrial work."
- name = "roboticist's jumpskirt"
- icon_state = "roboticsf"
- item_color = "roboticsf"
diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medical.dm
similarity index 53%
rename from code/modules/clothing/under/jobs/medsci.dm
rename to code/modules/clothing/under/jobs/medical.dm
index 674443d4379..566b1671d56 100644
--- a/code/modules/clothing/under/jobs/medsci.dm
+++ b/code/modules/clothing/under/jobs/medical.dm
@@ -1,223 +1,159 @@
-/*
- * Science
- */
-/obj/item/clothing/under/rank/research_director
- desc = "It's a jumpsuit worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants."
- name = "research director's jumpsuit"
- icon_state = "director"
- item_state = "g_suit"
- item_color = "director"
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 5, BIO = 5, RAD = 0, FIRE = 0, ACID = 25)
+/obj/item/clothing/under/rank/medical
+ icon = 'icons/obj/clothing/under/medical.dmi'
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
-/obj/item/clothing/under/rank/scientist
- desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist."
- name = "scientist's jumpsuit"
- icon_state = "toxins"
- item_state = "w_suit"
- item_color = "toxinswhite"
- permeability_coefficient = 0.50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 5, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/medical.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/medical.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/medical.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/medical.dmi'
+ )
-/obj/item/clothing/under/rank/scientist/skirt
- name = "scientist's jumpskirt"
- icon_state = "sciencewhitef"
- item_color = "sciencewhitef"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-
-/obj/item/clothing/under/rank/chemist
- desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it."
- name = "chemist's jumpsuit"
- icon_state = "chemistry"
- item_state = "w_suit"
- item_color = "chemistrywhite"
- permeability_coefficient = 0.50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 50, ACID = 95)
-
-/obj/item/clothing/under/rank/chemist/skirt
- name = "chemist's jumpskirt"
- icon_state = "chemistrywhitef"
- item_color = "chemistrywhitef"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-
-/*
- * Medical
- */
-/obj/item/clothing/under/rank/chief_medical_officer
- desc = "It's a jumpsuit worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection."
+/obj/item/clothing/under/rank/medical/chief_medical_officer
name = "chief medical officer's jumpsuit"
+ desc = "It's a jumpsuit worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection."
icon_state = "cmo"
- item_state = "w_suit"
+ item_state = "cmo"
item_color = "cmo"
permeability_coefficient = 0.50
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0)
-/obj/item/clothing/under/rank/chief_medical_officer/skirt
- desc = "It's a jumpskirt worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection."
+/obj/item/clothing/under/rank/medical/chief_medical_officer/skirt
name = "chief medical officer's jumpskirt"
+ desc = "It's a jumpskirt worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection."
icon_state = "cmof"
item_color = "cmof"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-/obj/item/clothing/under/rank/geneticist
- desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it."
- name = "geneticist's jumpsuit"
- icon_state = "genetics"
- item_state = "w_suit"
- item_color = "geneticswhite"
- permeability_coefficient = 0.50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0)
-
-/obj/item/clothing/under/rank/geneticist/skirt
- name = "geneticist's jumpskirt"
- icon_state = "geneticswhitef"
- item_color = "geneticswhitef"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-
-/obj/item/clothing/under/rank/virologist
- desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it."
- name = "virologist's jumpsuit"
- icon_state = "virology"
- item_state = "w_suit"
- item_color = "virologywhite"
+/obj/item/clothing/under/rank/medical/doctor
+ name = "medical doctor's jumpsuit"
+ desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel."
+ icon_state = "medical"
+ item_state = "medical"
+ item_color = "medical"
permeability_coefficient = 0.50
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
-/obj/item/clothing/under/rank/virologist/skirt
- name = "virologist's jumpskirt"
- icon_state = "virologywhitef"
- item_color = "virologywhitef"
+/obj/item/clothing/under/rank/medical/doctor/sensor
+ sensor_mode = SENSOR_COORDS
+ random_sensor = FALSE
+
+/obj/item/clothing/under/rank/medical/doctor/skirt
+ name = "medical doctor's jumpskirt"
+ icon_state = "medicalf"
+ item_color = "medicalf"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-/obj/item/clothing/under/rank/nursesuit
- desc = "It's a jumpsuit commonly worn by nursing staff in the medical department."
+
+/obj/item/clothing/under/rank/medical/virologist
+ name = "virologist's jumpsuit"
+ desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it."
+ icon_state = "virology"
+ item_state = "virology"
+ item_color = "virology"
+ permeability_coefficient = 0.50
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
+
+/obj/item/clothing/under/rank/medical/virologist/skirt
+ name = "virologist's jumpskirt"
+ icon_state = "virologyf"
+ item_color = "virologyf"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
+/obj/item/clothing/under/rank/medical/nursesuit
name = "nurse's suit"
+ desc = "It's a jumpsuit commonly worn by nursing staff in the medical department."
icon_state = "nursesuit"
item_state = "nursesuit"
item_color = "nursesuit"
permeability_coefficient = 0.50
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
-/obj/item/clothing/under/rank/nurse
- desc = "A dress commonly worn by the nursing staff in the medical department."
+/obj/item/clothing/under/rank/medical/nurse
name = "nurse's dress"
+ desc = "A dress commonly worn by the nursing staff in the medical department."
icon_state = "nurse"
item_state = "nurse"
item_color = "nurse"
permeability_coefficient = 0.50
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
-/obj/item/clothing/under/rank/orderly
- desc = "A white suit to be worn by orderly people who love orderly things."
+/obj/item/clothing/under/rank/medical/orderly
name = "orderly's uniform"
+ desc = "A white suit to be worn by orderly people who love orderly things."
icon_state = "orderly"
item_state = "orderly"
item_color = "orderly"
permeability_coefficient = 0.50
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
-/obj/item/clothing/under/rank/medical
- desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel."
- name = "medical doctor's jumpsuit"
- icon_state = "medical"
- item_state = "w_suit"
- item_color = "medical"
- permeability_coefficient = 0.50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
-
-/obj/item/clothing/under/rank/medical/sensor
- sensor_mode = SENSOR_COORDS
- random_sensor = FALSE
-
-/obj/item/clothing/under/rank/medical/skirt
- name = "medical doctor's jumpskirt"
- icon_state = "medicalf"
- item_color = "medicalf"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-
-/obj/item/clothing/under/rank/medical/blue
+/obj/item/clothing/under/rank/medical/scrubs
name = "blue medical scrubs"
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue."
icon_state = "scrubsblue"
item_color = "scrubsblue"
-/obj/item/clothing/under/rank/medical/green
+/obj/item/clothing/under/rank/medical/scrubs/green
name = "green medical scrubs"
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green."
icon_state = "scrubsgreen"
item_color = "scrubsgreen"
-/obj/item/clothing/under/rank/medical/purple
+/obj/item/clothing/under/rank/medical/scrubs/purple
name = "purple medical scrubs"
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple."
icon_state = "scrubspurple"
item_color = "scrubspurple"
-/obj/item/clothing/under/rank/medical/mortician
+/obj/item/clothing/under/rank/medical/scrubs/coroner
name = "coroner's scrubs"
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is as dark as an emo's poetry."
icon_state = "scrubsblack"
item_color = "scrubsblack"
-//paramedic
+/obj/item/clothing/under/rank/medical/chemist
+ name = "chemist's jumpsuit"
+ desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it."
+ icon_state = "chemistry"
+ item_state = "chemistry"
+ item_color = "chemistry"
+ permeability_coefficient = 0.50
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 50, ACID = 95)
+
+/obj/item/clothing/under/rank/medical/chemist/skirt
+ name = "chemist's jumpskirt"
+ icon_state = "chemistryf"
+ item_color = "chemistryf"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
/obj/item/clothing/under/rank/medical/paramedic
- desc = "It's made of a special fiber that provides minor protection against biohazards and radiation. It has a cross on the chest denoting that the wearer is trained medical personnel."
name = "paramedic's jumpsuit"
+ desc = "It's made of a special fiber that provides minor protection against biohazards and radiation. It has a cross on the chest denoting that the wearer is trained medical personnel."
icon_state = "paramedic"
item_state = "paramedic"
item_color = "paramedic"
permeability_coefficient = 0.50
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 5, FIRE = 0, ACID = 0)
-/obj/item/clothing/under/rank/psych
- desc = "A basic white jumpsuit. It has turqouise markings that denote the wearer as a psychiatrist."
+/obj/item/clothing/under/rank/medical/psych
name = "psychiatrist's jumpsuit"
+ desc = "A basic white jumpsuit. It has turqouise markings that denote the wearer as a psychiatrist."
icon_state = "psych"
- item_state = "w_suit"
+ item_state = "psych"
item_color = "psych"
-/obj/item/clothing/under/rank/psych/turtleneck
- desc = "A turqouise turtleneck and a pair of dark blue slacks, belonging to a psychologist."
+/obj/item/clothing/under/rank/medical/psych/turtleneck
name = "psychologist's turtleneck"
+ desc = "A turqouise turtleneck and a pair of dark blue slacks, belonging to a psychologist."
icon_state = "psychturtle"
- item_state = "b_suit"
+ item_state = "psychturtle"
item_color = "psychturtle"
-
-/*
- * Medsci, unused (i think) stuff
- */
-/obj/item/clothing/under/rank/geneticist_new
- desc = "It's made of a special fiber which provides minor protection against biohazards."
- name = "geneticist's jumpsuit"
- icon_state = "genetics_new"
- item_state = "w_suit"
- item_color = "genetics_new"
- permeability_coefficient = 0.50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
-
-/obj/item/clothing/under/rank/chemist_new
- desc = "It's made of a special fiber which provides minor protection against biohazards."
- name = "chemist's jumpsuit"
- icon_state = "chemist_new"
- item_state = "w_suit"
- item_color = "chemist_new"
- permeability_coefficient = 0.50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 50, ACID = 95)
-
-/obj/item/clothing/under/rank/scientist_new
- desc = "Made of a special fiber that gives special protection against biohazards and small explosions."
- name = "scientist's jumpsuit"
- icon_state = "scientist_new"
- item_state = "w_suit"
- item_color = "scientist_new"
- permeability_coefficient = 0.50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 5, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
-
-/obj/item/clothing/under/rank/virologist_new
- desc = "Made of a special fiber that gives increased protection against biohazards."
- name = "virologist's jumpsuit"
- icon_state = "virologist_new"
- item_state = "w_suit"
- item_color = "virologist_new"
- permeability_coefficient = 0.50
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 5, RAD = 0, FIRE = 0, ACID = 0)
+/obj/item/clothing/under/rank/medical/gown //Seems like it should be here for organisational purposes
+ name = "medical gown"
+ desc = "a flimsy examination gown, the back ties never close."
+ icon_state = "medicalgown"
+ item_state = "medicalgown"
+ item_color = "medicalgown"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm
new file mode 100644
index 00000000000..1aa0d671276
--- /dev/null
+++ b/code/modules/clothing/under/jobs/rnd.dm
@@ -0,0 +1,67 @@
+/obj/item/clothing/under/rank/rnd
+ icon = 'icons/obj/clothing/under/rnd.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/rnd.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/rnd.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/rnd.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/rnd.dmi'
+ )
+
+/obj/item/clothing/under/rank/rnd/research_director
+ name = "research director's jumpsuit"
+ desc = "It's a jumpsuit worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants."
+ icon_state = "director"
+ item_state = "g_suit"
+ item_color = "director"
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 5, BIO = 5, RAD = 0, FIRE = 0, ACID = 25)
+
+/obj/item/clothing/under/rank/rnd/research_director/dress
+ name = "research director's dress uniform"
+ desc = "Feminine fashion for the style concious RD."
+ icon_state = "dress_rd"
+ item_color = "dress_rd"
+
+/obj/item/clothing/under/rank/rnd/scientist
+ name = "scientist's jumpsuit"
+ desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist."
+ icon_state = "science"
+ item_state = "science"
+ item_color = "science"
+ permeability_coefficient = 0.50
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 5, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
+
+/obj/item/clothing/under/rank/rnd/scientist/skirt
+ name = "scientist's jumpskirt"
+ icon_state = "sciencewhitef"
+ item_color = "sciencewhitef"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
+/obj/item/clothing/under/rank/rnd/roboticist
+ name = "roboticist's jumpsuit"
+ desc = "It's a slimming black with reinforced seams; great for industrial work."
+ icon_state = "robotics"
+ item_state = "robotics"
+ item_color = "robotics"
+ resistance_flags = NONE
+
+/obj/item/clothing/under/rank/rnd/roboticist/skirt
+ name = "roboticist's jumpskirt"
+ desc = "It's a slimming black jumpskirt with reinforced seams; great for industrial work."
+ icon_state = "roboticsf"
+ item_color = "roboticsf"
+
+/obj/item/clothing/under/rank/rnd/geneticist
+ name = "geneticist's jumpsuit"
+ desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it."
+ icon_state = "genetics"
+ item_state = "genetics"
+ item_color = "genetics"
+ permeability_coefficient = 0.50
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0)
+
+/obj/item/clothing/under/rank/rnd/geneticist/skirt
+ name = "geneticist's jumpskirt"
+ icon_state = "geneticswhitef"
+ item_color = "geneticswhitef"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index 075897cc3c7..a494f577213 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -1,98 +1,92 @@
-/*
- * Contains:
- * Security
- * Detective
- * Head of Security
- */
+/obj/item/clothing/under/rank/security
+ icon = 'icons/obj/clothing/under/security.dmi'
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
+ strip_delay = 50
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/security.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/security.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/security.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/security.dmi'
+ )
-/*
- * Security
- */
-/obj/item/clothing/under/rank/warden
+/obj/item/clothing/under/rank/security/warden
name = "warden's jumpsuit"
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. It has the word \"Warden\" written on the shoulders."
icon_state = "warden"
item_state = "r_suit"
item_color = "warden"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
- strip_delay = 50
-/obj/item/clothing/under/rank/warden/skirt
+/obj/item/clothing/under/rank/security/warden/skirt
name = "warden's jumpskirt"
desc = "Standard feminine fashion for a Warden. It is made of sturdier material than standard jumpskirts. It has the word \"Warden\" written on the shoulders."
icon_state = "wardenf"
item_state = "r_suit"
item_color = "wardenf"
-/obj/item/clothing/under/rank/warden/skirt/corp
+/obj/item/clothing/under/rank/security/warden/skirt/corporate
icon_state = "wardenblackf"
item_state = "wardenblackf"
item_color = "wardenblackf"
-/obj/item/clothing/under/rank/security
+/obj/item/clothing/under/rank/security/officer
name = "security officer's jumpsuit"
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for robust protection."
icon_state = "security"
item_state = "r_suit"
item_color = "secred"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
- strip_delay = 50
-/obj/item/clothing/under/rank/security/sensor
+/obj/item/clothing/under/rank/security/officer/sensor
sensor_mode = SENSOR_COORDS
random_sensor = FALSE
-/obj/item/clothing/under/rank/security/skirt
+/obj/item/clothing/under/rank/security/officer/skirt
name = "security officer's jumpskirt"
desc = "Standard feminine fashion for Security Officers. It's made of sturdier material than the standard jumpskirts."
icon_state = "secredf"
item_state = "r_suit"
item_color = "secredf"
-/obj/item/clothing/under/rank/security/skirt/corp
+/obj/item/clothing/under/rank/security/officer/skirt/corporate
name = "corporate security jumpskirt"
icon_state = "secblackf"
item_state = "secblackf"
item_color = "secblackf"
-/obj/item/clothing/under/rank/security/skirt/fancy
+/obj/item/clothing/under/rank/security/officer/fancy
+ name = "security dress shirt"
+ desc = "A red dress shirt paired with a pair of black trousers, for the more formal Security Officer."
+ icon_state = "secshirt"
+ item_state = "secshirt"
+ item_color = "secshirt"
+/obj/item/clothing/under/rank/security/officer/skirt/fancy
name = "security dress skirt"
desc = "A red blouse paired with a black skirt, for the more formal Security Officer."
icon_state = "secshirtf"
item_state = "secshirtf"
item_color = "secshirtf"
-/obj/item/clothing/under/rank/security/fancy
- name = "security dress shirt"
- desc = "A red dress shirt paired with a pair of black trousers, for the more formal Security Officer."
- icon_state = "secshirt"
- item_state = "secshirt"
- item_color = "secshirt"
-
-/obj/item/clothing/under/rank/dispatch
+/obj/item/clothing/under/rank/security/officer/dispatch
name = "dispatcher's uniform"
desc = "A dress shirt and khakis with a security patch sewn on."
icon_state = "dispatch"
item_state = "dispatch"
item_color = "dispatch"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
-/obj/item/clothing/under/rank/security2
+/obj/item/clothing/under/rank/security/officer/uniform
name = "security officer's uniform"
desc = "It's made of a slightly sturdier material, to allow for robust protection."
icon_state = "redshirt2"
item_state = "r_suit"
item_color = "redshirt2"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
-/obj/item/clothing/under/rank/security/corp
+/obj/item/clothing/under/rank/security/officer/corporate
name = "corporate security jumpsuit"
icon_state = "sec_corporate"
item_state = "sec_corporate"
item_color = "sec_corporate"
-/obj/item/clothing/under/rank/warden/corp
+/obj/item/clothing/under/rank/security/warden/corporate
icon_state = "warden_corporate"
item_state = "warden_corporate"
item_color = "warden_corporate"
@@ -100,23 +94,17 @@
/*
* Detective
*/
-/obj/item/clothing/under/det
+/obj/item/clothing/under/rank/security/detective
name = "hard-worn suit"
desc = "Someone who wears this means business."
icon_state = "detective"
item_state = "det"
item_color = "detective"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
- strip_delay = 50
-
- sprite_sheets = list(
- "Vox" = 'icons/mob/clothing/species/vox/uniform.dmi'
- )
/*
* Head of Security
*/
-/obj/item/clothing/under/rank/head_of_security
+/obj/item/clothing/under/rank/security/head_of_security
name = "head of security's jumpsuit"
desc = "It's a jumpsuit worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer."
icon_state = "hos"
@@ -125,55 +113,23 @@
armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
strip_delay = 60
-/obj/item/clothing/under/rank/head_of_security/skirt
+/obj/item/clothing/under/rank/security/head_of_security/skirt
name = "head of security's jumpskirt"
desc = "It's a fashionable jumpskirt worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer."
icon_state = "hosredf"
item_state = "r_suit"
item_color = "hosredf"
-/obj/item/clothing/under/rank/head_of_security/corp
+/obj/item/clothing/under/rank/security/head_of_security/corporate
icon_state = "hos_corporate"
item_state = "hos_corporate"
item_color = "hos_corporate"
-/obj/item/clothing/under/rank/head_of_security/skirt/corp
+/obj/item/clothing/under/rank/security/head_of_security/skirt/corporate
icon_state = "hosblackf"
item_state = "hosblackf"
item_color = "hosblackf"
-//Jensen cosplay gear
-/obj/item/clothing/under/rank/head_of_security/jensen
- name = "head of security's jumpsuit"
- desc = "You never asked for anything that stylish."
- icon_state = "jensen"
- item_state = "jensen"
- item_color = "jensen"
-
-//Paradise Station
-
-/obj/item/clothing/suit/armor/hos/hosnavyjacket
- name = "head of security's navy jacket"
- icon_state = "hosdnavyjacket"
- item_state = "hosdnavyjacket"
-
-/obj/item/clothing/suit/armor/hos/hosbluejacket
- name = "head of security's blue jacket"
- icon_state = "hosbluejacket"
- item_state = "hosbluejacket"
-
-/obj/item/clothing/suit/armor/hos/officernavyjacket
- name = "officer's navy jacket"
- icon_state = "officernavyjacket"
- item_state = "officernavyjacket"
-
-/obj/item/clothing/suit/armor/hos/officerbluejacket
- name = "officer's blue jacket"
- icon_state = "officerbluejacket"
- item_state = "officerbluejacket"
-
-//TG Station
-
/obj/item/clothing/under/rank/security/formal
name = "security suit"
desc = "A formal security suit for officers complete with nanotrasen belt buckle."
@@ -181,14 +137,14 @@
item_state = "gy_suit"
item_color = "security_formal"
-/obj/item/clothing/under/rank/warden/formal
+/obj/item/clothing/under/rank/security/formal/warden
name = "warden's suit"
desc = "A formal security suit for the warden with blue desginations and '/Warden/' stiched into the shoulders."
icon_state = "warden_formal"
item_state = "gy_suit"
item_color = "warden_formal"
-/obj/item/clothing/under/rank/head_of_security/formal
+/obj/item/clothing/under/rank/security/formal/head_of_security
name = "head of security's suit"
desc = "A security suit decorated for those few with the dedication to achieve the position of Head of Security."
icon_state = "hos_formal"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index fad65026baf..e60891ee8fe 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -1,219 +1,172 @@
-/obj/item/clothing/under/pj/red
+/obj/item/clothing/under/misc
+ desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
+ dyeable = TRUE
+ icon = 'icons/obj/clothing/under/misc.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/misc.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/misc.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/misc.dmi'
+ )
+
+/obj/item/clothing/under/misc/pj/red
name = "red pj's"
desc = "Sleepwear."
icon_state = "red_pyjamas"
item_color = "red_pyjamas"
item_state = "w_suit"
-/obj/item/clothing/under/pj/blue
+/obj/item/clothing/under/misc/pj/blue
name = "blue pj's"
desc = "Sleepwear."
icon_state = "blue_pyjamas"
item_color = "blue_pyjamas"
item_state = "w_suit"
-/obj/item/clothing/under/patriotsuit
- name = "Patriotic Suit"
- desc = "Motorcycle not included."
- icon_state = "ek"
- item_state = "ek"
- item_color = "ek"
-
-/obj/item/clothing/under/captain_fly
- name = "rogue captains uniform"
- desc = "For the man who doesn't care because he's still free."
- icon_state = "captain_fly"
- item_state = "captain_fly"
- item_color = "captain_fly"
-
-/obj/item/clothing/under/scratch
+/obj/item/clothing/under/misc/scratch
name = "white suit"
desc = "A white suit, suitable for an excellent host"
icon_state = "scratch"
item_state = "scratch"
item_color = "scratch"
-/obj/item/clothing/under/sl_suit
- desc = "It's a very amish looking suit."
+/obj/item/clothing/under/misc/sl_suit
name = "amish suit"
+ desc = "It's a very amish looking suit."
icon_state = "sl_suit"
item_color = "sl_suit"
-/obj/item/clothing/under/waiter
+/obj/item/clothing/under/misc/waiter
name = "waiter's outfit"
desc = "It's a very smart uniform with a special pocket for tip."
icon_state = "waiter"
item_state = "waiter"
item_color = "waiter"
-/obj/item/clothing/under/rank/mailman
+/obj/item/clothing/under/misc/mailman
name = "mailman's jumpsuit"
desc = "'Special delivery!'"
icon_state = "mailman"
item_state = "b_suit"
item_color = "mailman"
-/obj/item/clothing/under/rank/vice
+/obj/item/clothing/under/misc/vice
name = "vice officer's jumpsuit"
desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision."
icon_state = "vice"
item_state = "gy_suit"
item_color = "vice"
-/obj/item/clothing/under/solgov
- name = "\improper Trans-Solar Federation marine uniform"
- desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Marine Forces."
- icon_state = "solgov"
- item_state = "ro_suit"
- item_color = "solgov"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
- displays_id = FALSE
-/obj/item/clothing/under/solgov/elite
- name = "\improper Trans-Solar Federation Specops marine uniform"
- desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Specops Marine Forces."
- icon_state = "solgovelite"
- item_color = "solgovelite"
-
-/obj/item/clothing/under/solgov/command
- name = "\improper Trans-Solar Federation Lieutenant's uniform"
- desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Marine Forces. This one has additional insignia on its shoulders and cuffs."
- icon_state = "solgovc"
- item_color = "solgovc"
-
-/obj/item/clothing/under/solgov/command/elite
- name = "\improper Trans-Solar Federation Specops Lieutenant's uniform"
- desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Specops Marine Forces. This one has additional insignia on its shoulders and cuffs."
- icon_state = "solgovcelite"
- item_color = "solgovcelite"
-
-/obj/item/clothing/under/solgov/rep
- name = "\improper Trans-Solar Federation representative's uniform"
- desc = "A formal uniform worn by the diplomatic representatives of the Trans-Solar Federation."
- icon_state = "solgovr"
- item_color = "solgovr"
-
-/obj/item/clothing/under/rank/centcom_officer
- name = "\improper CentComm officer's jumpsuit"
- desc = "It's a jumpsuit worn by CentComm Officers."
- icon_state = "officer"
- item_state = "g_suit"
- item_color = "officer"
-
-/obj/item/clothing/under/rank/centcom_officer/sensor
- sensor_mode = SENSOR_COORDS
- random_sensor = FALSE
-
-/obj/item/clothing/under/rank/deathsquad
- name = "\improper Deathsquad jumpsuit"
- desc = "It's decorative jumpsuit worn by the Deathsquad. A small tag at the bottom reads \"Not associated with Nanotrasen\". "
- icon_state = "officer"
- item_state = "g_suit"
- item_color = "officer"
- sensor_mode = SENSOR_OFF // You think the Deathsquad wants to be seen?
- random_sensor = FALSE
-
-/obj/item/clothing/under/rank/centcom_commander
- name = "\improper CentComm commander's jumpsuit"
- desc = "It's a jumpsuit worn by CentComm's highest-tier Commanders."
- icon_state = "centcom"
+/obj/item/clothing/under/misc/gimmick/rank/captain/suit
+ name = "captain's suit"
+ desc = "A green suit and yellow necktie. Exemplifies authority."
+ icon_state = "green_suit"
item_state = "dg_suit"
- item_color = "centcom"
+ item_color = "green_suit"
-/obj/item/clothing/under/rank/centcom/officer
- name = "\improper Nanotrasen naval officer's uniform"
- desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Lieutenant-Commander\" and bears \"N.A.S. Trurl \" on the left shoulder. Worn exclusively by officers of the Nanotrasen Navy. It's got exotic materials for protection."
- icon_state = "navy_gold"
- item_state = "navy_gold"
- item_color = "navy_gold"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
- displays_id = FALSE
+/obj/item/clothing/under/misc/overalls
+ name = "laborer's overalls"
+ desc = "A set of durable overalls for getting the job done."
+ icon_state = "overalls"
+ item_state = "lb_suit"
+ item_color = "overalls"
-/obj/item/clothing/under/rank/centcom/captain
- name = "\improper Nanotrasen naval captain's uniform"
- desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Captain\" and bears \"N.A.S. Trurl \" on the left shoulder. Worn exclusively by officers of the Nanotrasen Navy. It's got exotic materials for protection."
- icon_state = "navy_gold"
- item_state = "navy_gold"
- item_color = "navy_gold"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
- displays_id = FALSE
+/obj/item/clothing/under/misc/assistantformal
+ name = "assistant's formal uniform"
+ desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown."
+ icon_state = "assistant_formal"
+ item_state = "gy_suit"
+ item_color = "assistant_formal"
-/obj/item/clothing/under/rank/centcom/captain/solgov
- name = "\improper Trans-Solar Federation commander's uniform"
- desc = "Gold trim on space-black cloth, this uniform is worn by generals of the Trans-Solar Federation. It has exotic materials for protection."
+/obj/item/clothing/under/cursedclown
+ name = "cursed clown suit"
+ desc = "It wasn't already?"
+ icon = 'icons/goonstation/objects/clothing/uniform.dmi'
+ icon_state = "cursedclown"
+ item_state = "cclown_uniform"
+ item_color = "cursedclown"
+ icon_override = 'icons/goonstation/mob/clothing/uniform.dmi'
+ lefthand_file = 'icons/goonstation/mob/inhands/clothing_lefthand.dmi'
+ righthand_file = 'icons/goonstation/mob/inhands/clothing_righthand.dmi'
+ flags = NODROP
+ resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+ has_sensor = FALSE // HUNKE
-/obj/item/clothing/under/rank/centcom/blueshield
- name = "formal blueshield's uniform"
- desc = "Gold trim on space-black cloth, this uniform bears \"Close Protection\" on the left shoulder. It's got exotic materials for protection."
- icon_state = "officer"
- item_state = "g_suit"
- item_color = "officer"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
- displays_id = FALSE
+/obj/item/clothing/under/misc/burial
+ name = "burial garments"
+ desc = "Traditional burial garments from the early 22nd century."
+ icon_state = "burial"
+ item_state = "burial"
+ item_color = "burial"
-/obj/item/clothing/under/rank/centcom/representative
- name = "formal Nanotrasen Representative's uniform"
- desc = "Gold trim on space-black cloth, this uniform bears \"N.S.S. Cyberiad\" on the left shoulder."
- icon_state = "officer"
- item_state = "g_suit"
- item_color = "officer"
- displays_id = FALSE
+/obj/item/clothing/under/misc/redhawaiianshirt
+ name = "red hawaiian shirt"
+ desc = "a floral shirt worn to most vacation destinations."
+ icon_state = "hawaiianred"
+ item_state = "hawaiianred"
+ item_color = "hawaiianred"
-/obj/item/clothing/under/rank/centcom/representative/Initialize(mapload)
- . = ..()
- desc = "Gold trim on space-black cloth, this uniform bears [station_name()] on the left shoulder."
+/obj/item/clothing/under/misc/pinkhawaiianshirt
+ name = "pink hawaiian shirt"
+ desc = "a pink floral shirt the material feels cool and comfy."
+ icon_state = "hawaiianpink"
+ item_state = "hawaiianpink"
+ item_color = "hawaiianpink"
-/obj/item/clothing/under/rank/centcom/magistrate
- name = "formal magistrate's uniform"
- desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears \"N.S.S. Cyberiad\" on the left shoulder."
- icon_state = "officer"
- item_state = "g_suit"
- item_color = "officer"
- displays_id = FALSE
+/obj/item/clothing/under/misc/orangehawaiianshirt
+ name = "orange hawaiian shirt"
+ desc = "a orange floral shirt for a relaxing day in space."
+ icon_state = "hawaiianorange"
+ item_state = "hawaiianorange"
+ item_color = "hawaiianorange"
-/obj/item/clothing/under/rank/centcom/magistrate/Initialize(mapload)
- . = ..()
- desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears [station_name()] on the left shoulder."
+/obj/item/clothing/under/misc/bluehawaiianshirt
+ name = "blue hawaiian shirt"
+ desc = "a blue floral shirt it has a oddly colored pink flower on it."
+ icon_state = "hawaiianblue"
+ item_state = "hawaiianblue"
+ item_color = "hawaiianblue"
-/obj/item/clothing/under/rank/centcom/diplomatic
- name = "\improper Nanotrasen diplomatic uniform"
- desc = "A very gaudy and official looking uniform of the Nanotrasen Diplomatic Corps."
- icon_state = "presidente"
- item_state = "g_suit"
- item_color = "presidente"
- displays_id = FALSE
+/obj/item/clothing/under/misc/durathread
+ name = "durathread jumpsuit"
+ desc = "A jumpsuit made from durathread, its resilient fibres provide some protection to the wearer."
+ icon_state = "durathread"
+ item_state = "durathread"
+ item_color = "durathread"
+ armor = list(MELEE = 5, BULLET = 0, LASER = 5, ENERGY = 0, BOMB = 5, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
-/obj/item/clothing/under/rank/blueshield
- name = "blueshield's uniform"
- desc = "A short-sleeved black uniform, paired with grey digital-camo cargo pants, all made out of a sturdy material. Blueshield standard issue."
- icon_state = "ert_uniform"
- item_state = "bl_suit"
- item_color = "ert_uniform"
- armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
+/obj/item/clothing/under/misc/swimsuit/black
+ name = "black swimsuit"
+ desc = "An oldfashioned black swimsuit."
+ icon_state = "swim_black"
+ item_color = "swim_black"
-/obj/item/clothing/under/rank/blueshield/skirt
- name = "blueshield's skirt"
- desc = "A short, black and grey with blue markings skirted uniform. For the feminine Blueshield."
- icon_state = "blueshieldf"
- item_state = "blueshieldf"
- item_color = "blueshieldf"
+/obj/item/clothing/under/misc/swimsuit/blue
+ name = "blue swimsuit"
+ desc = "An oldfashioned blue swimsuit."
+ icon_state = "swim_blue"
+ item_color = "swim_blue"
-/obj/item/clothing/under/space
- name = "\improper NASA jumpsuit"
- desc = "It has a NASA logo on it and is made of space-proofed materials."
- icon_state = "black"
- item_state = "bl_suit"
- item_color = "black"
- w_class = WEIGHT_CLASS_BULKY
- gas_transfer_coefficient = 0.01
- permeability_coefficient = 0.02
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
- cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | ARMS //Needs gloves and shoes with cold protection to be fully protected.
- min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
- heat_protection = UPPER_TORSO | LOWER_TORSO|LEGS|FEET|ARMS|HANDS
- max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
- resistance_flags = NONE
+/obj/item/clothing/under/misc/swimsuit/purple
+ name = "purple swimsuit"
+ desc = "An oldfashioned purple swimsuit."
+ icon_state = "swim_purp"
+ item_color = "swim_purp"
-/obj/item/clothing/under/acj
+/obj/item/clothing/under/misc/swimsuit/green
+ name = "green swimsuit"
+ desc = "An oldfashioned green swimsuit."
+ icon_state = "swim_green"
+ item_color = "swim_green"
+
+/obj/item/clothing/under/misc/swimsuit/red
+ name = "red swimsuit"
+ desc = "An oldfashioned red swimsuit."
+ icon_state = "swim_red"
+ item_color = "swim_red"
+
+/obj/item/clothing/under/misc/acj
name = "administrative cybernetic jumpsuit"
icon_state = "syndicate"
item_state = "bl_suit"
@@ -230,648 +183,3 @@
slowdown = -10
siemens_coefficient = 0
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF | FREEZE_PROOF
-
-/obj/item/clothing/under/johnny
- name = "johnny~~ jumpsuit"
- desc = "Johnny~~"
- icon_state = "johnny"
- item_color = "johnny"
-
-/obj/item/clothing/under/rainbow
- name = "rainbow"
- desc = "rainbow"
- icon_state = "rainbow"
- item_state = "rainbow"
- item_color = "rainbow"
-
-/obj/item/clothing/under/cloud
- name = "cloud"
- desc = "cloud"
- icon_state = "cloud"
- item_color = "cloud"
-
-/obj/item/clothing/under/psysuit
- name = "dark undersuit"
- desc = "A thick, layered grey undersuit lined with power cables. Feels a little like wearing an electrical storm."
- icon_state = "psysuit"
- item_state = "psysuit"
- item_color = "psysuit"
-
-/obj/item/clothing/under/gimmick/rank/captain/suit
- name = "captain's suit"
- desc = "A green suit and yellow necktie. Exemplifies authority."
- icon_state = "green_suit"
- item_state = "dg_suit"
- item_color = "green_suit"
-
-/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit
- name = "head of personnel's suit"
- desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble."
- icon_state = "teal_suit"
- item_state = "g_suit"
- item_color = "teal_suit"
-
-/obj/item/clothing/under/suit_jacket
- name = "black suit"
- desc = "A black suit and red tie. Very formal."
- icon_state = "black_suit"
- item_state = "bl_suit"
- item_color = "black_suit"
-
-/obj/item/clothing/under/suit_jacket/really_black
- name = "executive suit"
- desc = "A formal black suit and red tie, intended for the station's finest."
- icon_state = "really_black_suit"
- item_state = "bl_suit"
- item_color = "really_black_suit"
-
-/obj/item/clothing/under/suit_jacket/female
- name = "executive suit"
- desc = "A formal trouser suit for women, intended for the station's finest."
- icon_state = "black_suit_fem"
- item_state = "black_suit_fem"
- item_color = "black_suit_fem"
-
-/obj/item/clothing/under/suit_jacket/red
- name = "red suit"
- desc = "A red suit and blue tie. Somewhat formal."
- icon_state = "red_suit"
- item_state = "r_suit"
- item_color = "red_suit"
-
-/obj/item/clothing/under/suit_jacket/navy
- name = "navy suit"
- desc = "A navy suit and red tie, intended for the station's finest."
- icon_state = "navy_suit"
- item_state = "navy_suit"
- item_color = "navy_suit"
-
-/obj/item/clothing/under/suit_jacket/tan
- name = "tan suit"
- desc = "A tan suit with a yellow tie. Smart, but casual."
- icon_state = "tan_suit"
- item_state = "tan_suit"
- item_color = "tan_suit"
-
-/obj/item/clothing/under/suit_jacket/burgundy
- name = "burgundy suit"
- desc = "A burgundy suit and black tie. Somewhat formal."
- icon_state = "burgundy_suit"
- item_state = "burgundy_suit"
- item_color = "burgundy_suit"
-
-/obj/item/clothing/under/suit_jacket/charcoal
- name = "charcoal suit"
- desc = "A charcoal suit and blue tie. Very professional."
- icon_state = "charcoal_suit"
- item_state = "charcoal_suit"
- item_color = "charcoal_suit"
-
-/obj/item/clothing/under/blackskirt
- name = "black skirt"
- desc = "A black skirt, very fancy!"
- icon_state = "blackskirt"
- item_color = "blackskirt"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-
-/obj/item/clothing/under/schoolgirl
- name = "schoolgirl uniform"
- desc = "It's just like one of my Japanese animes!"
- icon_state = "schoolgirl"
- item_state = "schoolgirl"
- item_color = "schoolgirl"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
-
-/obj/item/clothing/under/overalls
- name = "laborer's overalls"
- desc = "A set of durable overalls for getting the job done."
- icon_state = "overalls"
- item_state = "lb_suit"
- item_color = "overalls"
-
-/obj/item/clothing/under/pirate
- name = "pirate outfit"
- desc = "Yarr."
- icon_state = "pirate"
- item_state = "pirate"
- item_color = "pirate"
-
-/obj/item/clothing/under/pirate_rags
- name = "pirate rags"
- desc = "an old ragged set of clothing"
- icon_state = "piraterags"
- item_state = "piraterags"
- item_color = "piraterags"
-
-/obj/item/clothing/under/soviet
- name = "soviet uniform"
- desc = "For the Motherland!"
- icon_state = "soviet"
- item_state = "soviet"
- item_color = "soviet"
-
-/obj/item/clothing/under/redcoat
- name = "redcoat uniform"
- desc = "Looks old."
- icon_state = "redcoat"
- item_state = "redcoat"
- item_color = "redcoat"
-
-/obj/item/clothing/under/kilt
- name = "kilt"
- desc = "Includes shoes and plaid"
- icon_state = "kilt"
- item_state = "kilt"
- item_color = "kilt"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|FEET
-
-/obj/item/clothing/under/sexymime
- name = "sexy mime outfit"
- desc = "The only time when you DON'T enjoy looking at someone's rack."
- icon_state = "sexymime"
- item_state = "sexymime"
- item_color = "sexymime"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/gladiator
- name = "gladiator uniform"
- desc = "Are you not entertained? Is that not why you are here?"
- icon_state = "gladiator"
- item_state = "gladiator"
- item_color = "gladiator"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
- resistance_flags = NONE
-
-/obj/item/clothing/under/gladiator/ash_walker
- desc = "This gladiator uniform appears to be covered in ash and fairly dated."
- has_sensor = FALSE
-
-//dress
-
-/obj/item/clothing/under/dress/dress_fire
- name = "flame dress"
- desc = "A small black dress with blue flames print on it."
- icon_state = "dress_fire"
- item_color = "dress_fire"
-
-/obj/item/clothing/under/dress/dress_green
- name = "green dress"
- desc = "A simple, tight fitting green dress."
- icon_state = "dress_green"
- item_color = "dress_green"
-
-/obj/item/clothing/under/dress/dress_orange
- name = "orange dress"
- desc = "A fancy orange gown for those who like to show leg."
- icon_state = "dress_orange"
- item_color = "dress_orange"
-
-/obj/item/clothing/under/dress/dress_pink
- name = "pink dress"
- desc = "A simple, tight fitting pink dress."
- icon_state = "dress_pink"
- item_color = "dress_pink"
-
-/obj/item/clothing/under/dress/dress_yellow
- name = "yellow dress"
- desc = "A flirty, little yellow dress."
- icon_state = "dress_yellow"
- item_color = "dress_yellow"
-
-/obj/item/clothing/under/dress/dress_saloon
- name = "saloon girl dress"
- desc = "A old western inspired gown for the girl who likes to drink."
- icon_state = "dress_saloon"
- item_color = "dress_saloon"
-
-/obj/item/clothing/under/dress/dress_rd
- name = "research director's dress uniform"
- desc = "Feminine fashion for the style concious RD."
- icon_state = "dress_rd"
- item_color = "dress_rd"
-
-/obj/item/clothing/under/dress/dress_cap
- name = "captain's dress"
- desc = "Feminine fashion for the style concious captain."
- icon_state = "captain_dress"
- item_color = "captain_dress"
- sprite_sheets = list(
- "Vox" = 'icons/mob/clothing/species/vox/uniform.dmi',
- "Drask" = 'icons/mob/clothing/species/drask/uniform.dmi',
- "Grey" = 'icons/mob/clothing/species/grey/uniform.dmi',
- "Kidan" = 'icons/mob/clothing/species/kidan/uniform.dmi',
- )
-
-/obj/item/clothing/under/dress/dress_hop
- name = "head of personal's dress uniform"
- desc = "Feminine fashion for the style concious HoP."
- icon_state = "dress_hop"
- item_color = "dress_hop"
-
-/obj/item/clothing/under/dress/dress_hr
- name = "human resources director's uniform"
- desc = "Superior class for the nosy H.R. Director."
- icon_state = "huresource"
- item_color = "huresource"
-
-/obj/item/clothing/under/dress/plaid_blue
- name = "blue plaid skirt"
- desc = "A preppy blue skirt with a white blouse."
- icon_state = "plaid_blue"
- item_color = "plaid_blue"
-
-/obj/item/clothing/under/dress/plaid_red
- name = "red plaid skirt"
- desc = "A preppy red skirt with a white blouse."
- icon_state = "plaid_red"
- item_color = "plaid_red"
-
-/obj/item/clothing/under/dress/plaid_purple
- name = "blue purple skirt"
- desc = "A preppy purple skirt with a white blouse."
- icon_state = "plaid_purple"
- item_color = "plaid_purple"
-
-//wedding stuff
-
-/obj/item/clothing/under/wedding/bride_orange
- name = "orange wedding dress"
- desc = "A big and puffy orange dress."
- icon_state = "bride_orange"
- item_color = "bride_orange"
- flags_inv = HIDESHOES
-
-/obj/item/clothing/under/wedding/bride_purple
- name = "purple wedding dress"
- desc = "A big and puffy purple dress."
- icon_state = "bride_purple"
- item_color = "bride_purple"
- flags_inv = HIDESHOES
-
-/obj/item/clothing/under/wedding/bride_blue
- name = "blue wedding dress"
- desc = "A big and puffy blue dress."
- icon_state = "bride_blue"
- item_color = "bride_blue"
- flags_inv = HIDESHOES
-
-/obj/item/clothing/under/wedding/bride_red
- name = "red wedding dress"
- desc = "A big and puffy red dress."
- icon_state = "bride_red"
- item_color = "bride_red"
- flags_inv = HIDESHOES
-
-/obj/item/clothing/under/wedding/bride_white
- name = "white wedding dress"
- desc = "A white wedding gown made from the finest silk."
- icon_state = "bride_white"
- item_color = "bride_white"
- flags_inv = HIDESHOES
-
-/obj/item/clothing/under/sundress
- name = "sundress"
- desc = "Makes you want to frolic in a field of daisies."
- icon_state = "sundress"
- item_state = "sundress"
- item_color = "sundress"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/roman
- name = "roman armor"
- desc = "An ancient Roman armor. Made of metallic strips and leather straps."
- icon_state = "roman"
- item_color = "roman"
- item_state = "armor"
- strip_delay = 100
- resistance_flags = NONE
-
-/obj/item/clothing/under/maid
- name = "maid costume"
- desc = "Maid in China."
- icon_state = "meido"
- item_state = "meido"
- item_color = "meido"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/janimaid
- name = "maid uniform"
- desc = "A simple maid uniform for housekeeping."
- icon_state = "janimaid"
- item_state = "janimaid"
- item_color = "janimaid"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/singery
- name = "yellow performer's outfit"
- desc = "Just looking at this makes you want to sing."
- icon_state = "ysing"
- item_state = "ysing"
- item_color = "ysing"
-
-/obj/item/clothing/under/singerb
- name = "blue performer's outfit"
- desc = "Just looking at this makes you want to sing."
- icon_state = "bsing"
- item_state = "bsing"
- item_color = "bsing"
-
-/obj/item/clothing/under/jester
- name = "jester suit"
- desc = "A jolly dress, well suited to entertain your master, nuncle."
- icon_state = "jester"
- item_color = "jester"
-
-/obj/item/clothing/under/flappers
- name = "flappers"
- desc = "Nothing like the roarin' '20s, flapping the night away on the dance floor."
- icon_state = "flapper"
- item_state = "flapper"
- item_color = "flapper"
-
-/obj/item/clothing/under/mafia
- name = "mafia outfit"
- desc = "The business of the mafia is business."
- icon_state = "mafia"
- item_state = "mafia"
- item_color = "mafia"
-
-/obj/item/clothing/under/mafia/vest
- name = "mafia vest"
- desc = "Extreme problems often require extreme solutions."
- icon_state = "mafiavest"
- item_state = "mafiavest"
- item_color = "mafiavest"
-
-/obj/item/clothing/under/mafia/white
- name = "white mafia outfit"
- desc = "The best defense against the treacherous is treachery."
- icon_state = "mafiawhite"
- item_state = "mafiawhite"
- item_color = "mafiawhite"
-
-/obj/item/clothing/under/mafia/sue
- name = "mafia vest"
- desc = "The business is born into."
- icon_state = "suevest"
- item_state = "suevest"
- item_color = "suevest"
-
-/obj/item/clothing/under/mafia/tan
- name = "leather mafia outfit"
- desc = "The big drum sounds good only from a distance."
- icon_state = "mafiatan"
- item_state = "mafiatan"
- item_color = "mafiatan"
-
-
-/obj/item/clothing/under/bane
- name = "bane harness"
- desc = "Wear this harness to become the bane of the station."
- icon_state = "bane"
- item_state = "bane"
- item_color = "bane"
-
-/obj/item/clothing/under/vox
- name = "ripped jumpsuit"
- desc = "A jumpsuit that looks like it's been shredded by some talons. Who could wear this now?"
- icon = 'icons/obj/clothing/species/vox/uniforms.dmi'
- icon_state = "vgrey"
- item_state = "vgrey"
- item_color = "vgrey"
-
-/obj/item/clothing/under/psyjump
- name = "psychic amp jumpsuit"
- desc = "A suit made of strange materials."
- icon_state = "psyamp"
- item_state = "psyamp"
- item_color = "psyamp"
-
-/obj/item/clothing/under/rebeloutfit
- name = "rebel outfit"
- desc = "Made in Seattle, 2216."
- icon_state = "colin_earle"
- item_state = "colin_earle"
- item_color = "colin_earle"
-
-/obj/item/clothing/under/officeruniform
- name = "clown officer's uniform"
- desc = "For the officers of the Clown army."
- icon_state = "officeruniform"
- item_color = "officeruniform"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/soldieruniform
- name = "clown soldier's uniform"
- desc = "For the basic grunt of the Clown army."
- icon_state = "soldieruniform"
- item_color = "soldieruniform"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/pennywise
- name = "\improper Pennywise costume"
- desc = "It's everything you ever were afraid of."
- icon_state = "pennywise"
- item_color = "pennywise"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/assistantformal
- name = "assistant's formal uniform"
- desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown."
- icon_state = "assistant_formal"
- item_state = "gy_suit"
- item_color = "assistant_formal"
-
-/obj/item/clothing/under/blacktango
- name = "black tango dress"
- desc = "Filled with Latin fire."
- icon_state = "black_tango"
- item_state = "wcoat"
- item_color = "black_tango"
-
-/obj/item/clothing/under/stripeddress
- name = "striped dress"
- desc = "Fashion in space."
- icon_state = "striped_dress"
- item_state = "stripeddress"
- item_color = "striped_dress"
-
-/obj/item/clothing/under/sailordress
- name = "sailor dress"
- desc = "Formal wear for a leading lady."
- icon_state = "sailor_dress"
- item_state = "sailordress"
- item_color = "sailor_dress"
-
-/obj/item/clothing/under/redeveninggown
- name = "red evening gown"
- desc = "Fancy dress for space bar singers."
- icon_state = "red_evening_gown"
- item_state = "redeveninggown"
- item_color = "red_evening_gown"
-
-/obj/item/clothing/under/suit_jacket/checkered
- name = "checkered suit"
- desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?"
- icon_state = "checkered_suit"
- item_state = "checkered_suit"
- item_color = "checkered_suit"
-
-/obj/item/clothing/under/owl
- name = "owl uniform"
- desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction."
- icon_state = "owl"
- item_color = "owl"
-
-/obj/item/clothing/under/griffin
- name = "griffon uniform"
- desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem."
- icon_state = "griffin"
- item_color = "griffin"
-
-/obj/item/clothing/under/noble_clothes
- name = "noble clothes"
- desc = "They fall just short of majestic."
- icon_state = "noble_clothes"
- item_color = "noble_clothes"
- item_state = "noble_clothes"
-
-/obj/item/clothing/under/contortionist
- name = "atmospheric technician's jumpsuit"
- desc = "A light jumpsuit useful for squeezing through narrow vents."
- icon_state = "atmos"
- item_state = "atmos_suit"
- item_color = "atmos"
- resistance_flags = FIRE_PROOF
-
-/obj/item/clothing/under/contortionist/equipped(mob/living/carbon/human/user, slot)
- if(!user.ventcrawler)
- user.ventcrawler = 2
- ..()
-
-/obj/item/clothing/under/contortionist/dropped(mob/living/carbon/human/user)
- if(!user.get_int_organ(/obj/item/organ/internal/heart/gland/ventcrawling))
- user.ventcrawler = 0
- ..()
-
-/obj/item/clothing/under/contortionist/proc/check_clothing(mob/user as mob)
- //Allowed to wear: glasses, shoes, gloves, pockets, mask, and jumpsuit (obviously)
- var/list/slot_must_be_empty = list(slot_back,slot_handcuffed,slot_legcuffed,slot_l_hand,slot_r_hand,slot_belt,slot_head,slot_wear_suit)
- for(var/slot_id in slot_must_be_empty)
- if(user.get_item_by_slot(slot_id))
- to_chat(user,"You can't fit inside while wearing \the [user.get_item_by_slot(slot_id)].")
- return 0
- return 1
-
-/obj/item/clothing/under/cursedclown
- name = "cursed clown suit"
- desc = "It wasn't already?"
- icon = 'icons/goonstation/objects/clothing/uniform.dmi'
- icon_state = "cursedclown"
- item_state = "cclown_uniform"
- item_color = "cursedclown"
- icon_override = 'icons/goonstation/mob/clothing/uniform.dmi'
- lefthand_file = 'icons/goonstation/mob/inhands/clothing_lefthand.dmi'
- righthand_file = 'icons/goonstation/mob/inhands/clothing_righthand.dmi'
- flags = NODROP
- resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
- has_sensor = FALSE // HUNKE
-
-/obj/item/clothing/under/victdress
- name = "black victorian dress"
- desc = "A victorian style dress, fancy!"
- icon_state = "victorianblackdress"
- item_state = "victorianblackdress"
- item_color = "victorianblackdress"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/victdress/red
- name = "red victorian dress"
- icon_state = "victorianreddress"
- item_state = "victorianreddress"
- item_color = "victorianreddress"
-
-/obj/item/clothing/under/victsuit
- name = "victorian suit"
- desc = "A victorian style suit, fancy!"
- icon_state = "victorianvest"
- item_state = "victorianvest"
- item_color = "victorianvest"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/victsuit/redblk
- name = "red and black victorian suit"
- icon_state = "victorianblred"
- item_state = "victorianblred"
- item_color = "victorianblred"
-
-/obj/item/clothing/under/victsuit/red
- name = "red victorian suit"
- icon_state = "victorianredvest"
- item_state = "victorianredvest"
- item_color = "victorianredvest"
-
-/obj/item/clothing/under/medigown
- name = "medical gown"
- desc = "a flimsy examination gown, the back ties never close."
- icon_state = "medicalgown"
- item_state = "medicalgown"
- item_color = "medicalgown"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
-
-/obj/item/clothing/under/burial
- name = "burial garments"
- desc = "Traditional burial garments from the early 22nd century."
- icon_state = "burial"
- item_state = "burial"
- item_color = "burial"
-
-/obj/item/clothing/under/redhawaiianshirt
- name = "red hawaiian shirt"
- desc = "a floral shirt worn to most vacation destinations."
- icon_state = "hawaiianred"
- item_state = "hawaiianred"
- item_color = "hawaiianred"
-
-/obj/item/clothing/under/pinkhawaiianshirt
- name = "pink hawaiian shirt"
- desc = "a pink floral shirt the material feels cool and comfy."
- icon_state = "hawaiianpink"
- item_state = "hawaiianpink"
- item_color = "hawaiianpink"
-
-/obj/item/clothing/under/orangehawaiianshirt
- name = "orange hawaiian shirt"
- desc = "a orange floral shirt for a relaxing day in space."
- icon_state = "hawaiianorange"
- item_state = "hawaiianorange"
- item_color = "hawaiianorange"
-
-/obj/item/clothing/under/bluehawaiianshirt
- name = "blue hawaiian shirt"
- desc = "a blue floral shirt it has a oddly colored pink flower on it."
- icon_state = "hawaiianblue"
- item_state = "hawaiianblue"
- item_color = "hawaiianblue"
-
-/obj/item/clothing/under/misc/durathread
- name = "durathread jumpsuit"
- desc = "A jumpsuit made from durathread, its resilient fibres provide some protection to the wearer."
- icon_state = "durathread"
- item_state = "durathread"
- item_color = "durathread"
- armor = list(MELEE = 5, BULLET = 0, LASER = 5, ENERGY = 0, BOMB = 5, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
-
-/obj/item/clothing/under/cuban_suit
- name = "rhumba outfit"
- desc = "A satin shirt and high-waisted pants, worn by dancers in the Rhumba style. It smells oddly like... sulfur?"
- icon_state = "cuban_suit"
- item_state = "cuban_suit"
- item_color = "cuban_suit"
-
-/obj/item/clothing/under/tourist_suit
- name = "tourist outfit"
- desc = "A light blue shirt with brown shorts. Feels oddly spooky."
- icon_state = "tourist"
- icon_state = "tourist"
- item_color = "tourist"
diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm
index 735c681ca5f..6f622e10ea4 100644
--- a/code/modules/clothing/under/pants.dm
+++ b/code/modules/clothing/under/pants.dm
@@ -1,8 +1,17 @@
/obj/item/clothing/under/pants
+ icon = 'icons/obj/clothing/under/pants.dmi'
gender = PLURAL
body_parts_covered = LOWER_TORSO|LEGS
displays_id = FALSE
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/pants.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/pants.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/pants.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/pants.dmi'
+ )
+
+
/obj/item/clothing/under/pants/equipped(mob/user, slot)
if(ishuman(user) && slot == slot_w_uniform)
var/mob/living/carbon/human/H = user
@@ -90,3 +99,32 @@
desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station."
icon_state = "camopants"
item_color = "camopants"
+
+
+//Shorts ARE pants, right?
+/obj/item/clothing/under/pants/shorts
+ name = "athletic shorts"
+ desc = "95% Polyester, 5% Spandex!"
+ gender = PLURAL
+ body_parts_covered = LOWER_TORSO
+ displays_id = FALSE
+
+/obj/item/clothing/under/pants/shorts/red
+ icon_state = "redshorts"
+ item_color = "redshorts"
+
+/obj/item/clothing/under/pants/shorts/green
+ icon_state = "greenshorts"
+ item_color = "greenshorts"
+
+/obj/item/clothing/under/pants/shorts/blue
+ icon_state = "blueshorts"
+ item_color = "blueshorts"
+
+/obj/item/clothing/under/pants/shorts/black
+ icon_state = "blackshorts"
+ item_color = "blackshorts"
+
+/obj/item/clothing/under/pants/shorts/grey
+ icon_state = "greyshorts"
+ item_color = "greyshorts"
diff --git a/code/modules/clothing/under/oldstation_uni.dm b/code/modules/clothing/under/retro.dm
similarity index 87%
rename from code/modules/clothing/under/oldstation_uni.dm
rename to code/modules/clothing/under/retro.dm
index d5c281a8132..5aefc4c7ba2 100644
--- a/code/modules/clothing/under/oldstation_uni.dm
+++ b/code/modules/clothing/under/retro.dm
@@ -1,4 +1,10 @@
-//Let's keep clothing sorting clean. This is for all the oldstation clothes.
+/obj/item/clothing/under/retro
+ displays_id = FALSE
+
+ icon = 'icons/obj/clothing/under/retro.dmi'
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/retro.dmi'
+ )
/obj/item/clothing/under/retro/security
name = "retro security officer's uniform"
@@ -6,7 +12,6 @@
icon_state = "retro_sec"
item_state = "retro_sec"
item_color = "retro_sec"
- displays_id = FALSE
/obj/item/clothing/under/retro/medical
name = "retro medical officer's uniform"
@@ -14,7 +19,6 @@
icon_state = "retro_med"
item_state = "retro_med"
item_color = "retro_med"
- displays_id = FALSE
/obj/item/clothing/under/retro/engineering
name = "retro engineering uniform"
@@ -22,7 +26,6 @@
icon_state = "retro_eng"
item_state = "retro_eng"
item_color = "retro_eng"
- displays_id = FALSE
/obj/item/clothing/under/retro/science
name = "retro science officer's uniform"
@@ -30,4 +33,3 @@
icon_state = "retro_sci"
item_state = "retro_sci"
item_color = "retro_sci"
- displays_id = FALSE
diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm
deleted file mode 100644
index e7302261c06..00000000000
--- a/code/modules/clothing/under/shorts.dm
+++ /dev/null
@@ -1,26 +0,0 @@
-/obj/item/clothing/under/shorts
- name = "athletic shorts"
- desc = "95% Polyester, 5% Spandex!"
- gender = PLURAL
- body_parts_covered = LOWER_TORSO
- displays_id = FALSE
-
-/obj/item/clothing/under/shorts/red
- icon_state = "redshorts"
- item_color = "redshorts"
-
-/obj/item/clothing/under/shorts/green
- icon_state = "greenshorts"
- item_color = "greenshorts"
-
-/obj/item/clothing/under/shorts/blue
- icon_state = "blueshorts"
- item_color = "blueshorts"
-
-/obj/item/clothing/under/shorts/black
- icon_state = "blackshorts"
- item_color = "blackshorts"
-
-/obj/item/clothing/under/shorts/grey
- icon_state = "greyshorts"
- item_color = "greyshorts"
diff --git a/code/modules/clothing/under/solgov.dm b/code/modules/clothing/under/solgov.dm
new file mode 100644
index 00000000000..f3c30903456
--- /dev/null
+++ b/code/modules/clothing/under/solgov.dm
@@ -0,0 +1,38 @@
+/obj/item/clothing/under/solgov
+ name = "\improper Trans-Solar Federation marine uniform"
+ desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Marine Forces."
+ icon_state = "solgov"
+ item_state = "ro_suit"
+ item_color = "solgov"
+ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
+ displays_id = FALSE
+
+ icon = 'icons/obj/clothing/under/solgov.dmi'
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/solgov.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/solgov.dmi'
+ )
+
+/obj/item/clothing/under/solgov/elite
+ name = "\improper Trans-Solar Federation Specops marine uniform"
+ desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Specops Marine Forces."
+ icon_state = "solgovelite"
+ item_color = "solgovelite"
+
+/obj/item/clothing/under/solgov/command
+ name = "\improper Trans-Solar Federation Lieutenant's uniform"
+ desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Marine Forces. This one has additional insignia on its shoulders and cuffs."
+ icon_state = "solgovc"
+ item_color = "solgovc"
+
+/obj/item/clothing/under/solgov/command/elite
+ name = "\improper Trans-Solar Federation Specops Lieutenant's uniform"
+ desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Specops Marine Forces. This one has additional insignia on its shoulders and cuffs."
+ icon_state = "solgovcelite"
+ item_color = "solgovcelite"
+
+/obj/item/clothing/under/solgov/rep
+ name = "\improper Trans-Solar Federation representative's uniform"
+ desc = "A formal uniform worn by the diplomatic representatives of the Trans-Solar Federation."
+ icon_state = "solgovr"
+ item_color = "solgovr"
diff --git a/code/modules/clothing/under/suit.dm b/code/modules/clothing/under/suit.dm
new file mode 100644
index 00000000000..e798276542e
--- /dev/null
+++ b/code/modules/clothing/under/suit.dm
@@ -0,0 +1,113 @@
+/obj/item/clothing/under/suit
+ icon = 'icons/obj/clothing/under/suit.dmi'
+
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/suit.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/suit.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/suit.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/suit.dmi'
+ )
+
+/obj/item/clothing/under/suit/black
+ name = "black suit"
+ desc = "A black suit and red tie. Very formal."
+ icon_state = "black_suit"
+ item_state = "bl_suit"
+ item_color = "black_suit"
+
+/obj/item/clothing/under/suit/really_black
+ name = "executive suit"
+ desc = "A formal black suit and red tie, intended for the station's finest."
+ icon_state = "really_black_suit"
+ item_state = "bl_suit"
+ item_color = "really_black_suit"
+
+/obj/item/clothing/under/suit/female
+ name = "executive suit"
+ desc = "A formal trouser suit for women, intended for the station's finest."
+ icon_state = "black_suit_fem"
+ item_state = "black_suit_fem"
+ item_color = "black_suit_fem"
+
+/obj/item/clothing/under/suit/navy
+ name = "navy suit"
+ desc = "A navy suit and red tie, intended for the station's finest."
+ icon_state = "navy_suit"
+ item_state = "navy_suit"
+ item_color = "navy_suit"
+
+/obj/item/clothing/under/suit/tan
+ name = "tan suit"
+ desc = "A tan suit with a yellow tie. Smart, but casual."
+ icon_state = "tan_suit"
+ item_state = "tan_suit"
+ item_color = "tan_suit"
+
+/obj/item/clothing/under/suit/burgundy
+ name = "burgundy suit"
+ desc = "A burgundy suit and black tie. Somewhat formal."
+ icon_state = "burgundy_suit"
+ item_state = "burgundy_suit"
+ item_color = "burgundy_suit"
+
+/obj/item/clothing/under/suit/charcoal
+ name = "charcoal suit"
+ desc = "A charcoal suit and blue tie. Very professional."
+ icon_state = "charcoal_suit"
+ item_state = "charcoal_suit"
+ item_color = "charcoal_suit"
+
+/obj/item/clothing/under/suit/checkered
+ name = "checkered suit"
+ desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?"
+ icon_state = "checkered_suit"
+ item_state = "checkered_suit"
+ item_color = "checkered_suit"
+
+/obj/item/clothing/under/suit/mafia
+ name = "mafia outfit"
+ desc = "The business of the mafia is business."
+ icon_state = "mafia"
+ item_state = "mafia"
+ item_color = "mafia"
+
+/obj/item/clothing/under/suit/mafia/vest
+ name = "mafia vest"
+ desc = "Extreme problems often require extreme solutions."
+ icon_state = "mafiavest"
+ item_state = "mafiavest"
+ item_color = "mafiavest"
+
+/obj/item/clothing/under/suit/mafia/white
+ name = "white mafia outfit"
+ desc = "The best defense against the treacherous is treachery."
+ icon_state = "mafiawhite"
+ item_state = "mafiawhite"
+ item_color = "mafiawhite"
+
+/obj/item/clothing/under/suit/mafia/tan
+ name = "tan mafia outfit"
+ desc = "The big drum sounds good only from a distance."
+ icon_state = "tan_suit"
+ item_state = "tan_suit"
+ item_color = "tan_suit"
+
+/obj/item/clothing/under/suit/victsuit
+ name = "victorian suit"
+ desc = "A victorian style suit, fancy!"
+ icon_state = "victorianvest"
+ item_state = "victorianvest"
+ item_color = "victorianvest"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/suit/victsuit/redblk
+ name = "red and black victorian suit"
+ icon_state = "victorianblred"
+ item_state = "victorianblred"
+ item_color = "victorianblred"
+
+/obj/item/clothing/under/suit/victsuit/red
+ name = "red victorian suit"
+ icon_state = "victorianredvest"
+ item_state = "victorianredvest"
+ item_color = "victorianredvest"
diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm
index 8ef693b6f6d..108e82d2686 100644
--- a/code/modules/clothing/under/syndicate.dm
+++ b/code/modules/clothing/under/syndicate.dm
@@ -7,6 +7,14 @@
has_sensor = FALSE
armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 35)
+ icon = 'icons/obj/clothing/under/syndicate.dmi'
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/syndicate.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/syndicate.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/syndicate.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/syndicate.dmi'
+ )
+
/obj/item/clothing/under/syndicate/combat
name = "combat turtleneck"
@@ -23,4 +31,4 @@
desc = "A double seamed tactical turtleneck disguised as a civilian grade silk suit. Intended for the most formal operator. The collar is really sharp."
icon_state = "really_black_suit"
item_state = "bl_suit"
- item_color = "black_suit"
+ item_color = "really_black_suit"
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 65225701498..ff4c93ec2e5 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -1054,6 +1054,15 @@
adjust_flavour = "unzip"
//////////// Uniforms ////////////
+
+/obj/item/clothing/under/fluff
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/donator.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/donator.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/donator.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/donator.dmi'
+ )
+
/obj/item/clothing/under/fluff/counterfeitguise_uniform // thatdanguy23 : Rissa Williams
icon = 'icons/obj/custom_items.dmi'
name = "Rissa's hand-me-downs"
@@ -1152,7 +1161,7 @@
/obj/item/clothing/under/fluff/honourable // MrBarrelrolll: Maximus Greenwood
name = "Viridi Protegat"
desc = "A set of chainmail adorned with a hide mantle. \"Greenwood\" is engraved into the right breast."
- icon = 'icons/obj/clothing/uniforms.dmi'
+ icon = 'icons/obj/clothing/under/costumes.dmi'
icon_state = "roman"
item_state = "maximus_armor"
item_color = "maximus_armor"
@@ -1174,7 +1183,6 @@
name = "E.L.O's Turtleneck"
desc = "This TurtleNeck belongs to the IPC E.L.O. And has her name sown into the upper left breast, a very wooly jumper."
icon = 'icons/obj/custom_items.dmi' // for the floor sprite
- icon_override = 'icons/obj/custom_items.dmi' // for the mob sprite
icon_state = "eloturtleneckfloor"
item_color = "eloturtleneck"
displays_id = FALSE
@@ -1260,7 +1268,7 @@
/obj/item/clothing/under/fluff/arachno_suit
name = "Arachno-Man costume"
desc = "It's what an evil genius would design if he switched brains with the Amazing Arachno-Man. Actually, he'd probably add weird tentacles that come out the back, too."
- icon = 'icons/obj/clothing/uniforms.dmi'
+ icon = 'icons/obj/clothing/under/donator.dmi'
icon_state = "superior_suit"
item_state = "superior_suit"
item_color = "superior_suit"
@@ -1354,8 +1362,15 @@
/obj/item/clothing/under/pants/fluff/combat
name = "combat pants"
desc = "Medium style tactical pants, for the fashion aware combat units out there."
+ icon = 'icons/obj/custom_items.dmi'
icon_state = "chaps"
item_color = "combat_pants"
+ sprite_sheets = list(
+ "Human" = 'icons/mob/clothing/under/donator.dmi',
+ "Vox" = 'icons/mob/clothing/species/vox/under/donator.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/under/donator.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/under/donator.dmi'
+ )
/obj/item/clothing/suit/jacket/fluff/elliot_windbreaker // DaveTheHeadcrab: Elliot Campbell
name = "nylon windbreaker"
@@ -1618,7 +1633,6 @@
icon = 'icons/obj/custom_items.dmi'
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
- sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/uniform.dmi')
icon_state = "kiaoutfit"
item_state = "kiaoutfit"
item_color = "kiaoutfit"
@@ -1674,7 +1688,6 @@
desc = "A simple black dress with a white undercoat, tied with a blue ribbon."
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
- sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/uniform.dmi')
icon = 'icons/obj/custom_items.dmi'
icon_state = "kikeridress"
item_state = "kikeridress"
diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm
index b88771835e5..49b82ee5805 100644
--- a/code/modules/mining/abandonedcrates.dm
+++ b/code/modules/mining/abandonedcrates.dm
@@ -50,8 +50,8 @@
if(36 to 40)
new /obj/item/melee/baton(src)
if(41 to 45)
- new /obj/item/clothing/under/shorts/red(src)
- new /obj/item/clothing/under/shorts/blue(src)
+ new /obj/item/clothing/under/pants/shorts/red(src)
+ new /obj/item/clothing/under/pants/shorts/blue(src)
if(46 to 50)
new /obj/item/clothing/under/chameleon(src)
for(var/i in 1 to 7)
@@ -106,7 +106,7 @@
new /obj/item/defibrillator/compact(src)
if(87 to 88)
new /obj/item/storage/backpack/clown(src)
- new /obj/item/clothing/under/rank/clown(src)
+ new /obj/item/clothing/under/rank/civilian/clown(src)
new /obj/item/clothing/shoes/clown_shoes(src)
new /obj/item/pda/clown(src)
new /obj/item/clothing/mask/gas/clown_hat(src)
@@ -127,7 +127,7 @@
if(94)
new /obj/item/katana(src)
if(95)
- new /obj/item/clothing/under/mime(src)
+ new /obj/item/clothing/under/rank/civilian/mime(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/pda/mime(src)
new /obj/item/clothing/gloves/color/white(src)
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index a56a3b96c60..dce92674649 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -29,9 +29,9 @@
new /obj/item/storage/backpack/duffel(src)
new /obj/item/storage/backpack/explorer(src)
new /obj/item/storage/backpack/satchel/explorer(src)
- new /obj/item/clothing/under/rank/miner/lavaland(src)
- new /obj/item/clothing/under/rank/miner/lavaland(src)
- new /obj/item/clothing/under/rank/miner/lavaland(src)
+ new /obj/item/clothing/under/rank/cargo/miner/lavaland(src)
+ new /obj/item/clothing/under/rank/cargo/miner/lavaland(src)
+ new /obj/item/clothing/under/rank/cargo/miner/lavaland(src)
new /obj/item/clothing/shoes/workboots/mining(src)
new /obj/item/clothing/shoes/workboots/mining(src)
new /obj/item/clothing/shoes/workboots/mining(src)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index f0e19783ce7..e6dfdccdf36 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -458,8 +458,8 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
return
if(ishuman(src))
var/mob/living/carbon/human/H = src
- if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/contortionist))//IMMA SPCHUL SNOWFLAKE
- var/obj/item/clothing/under/contortionist/C = H.w_uniform
+ if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/rank/engineering/atmospheric_technician/contortionist))//IMMA SPCHUL SNOWFLAKE
+ var/obj/item/clothing/under/rank/engineering/atmospheric_technician/contortionist/C = H.w_uniform
if(!C.check_clothing(src))//return values confuse me right now
return
diff --git a/code/modules/mob/living/carbon/human/npcs.dm b/code/modules/mob/living/carbon/human/npcs.dm
index 9dcf83f2e9a..f51acda98a7 100644
--- a/code/modules/mob/living/carbon/human/npcs.dm
+++ b/code/modules/mob/living/carbon/human/npcs.dm
@@ -6,6 +6,9 @@
species_restricted = list("Monkey")
species_exception = list(/datum/species/monkey)
+ icon = 'icons/obj/clothing/under/misc.dmi'
+ sprite_sheets = list("Monkey" = 'icons/mob/clothing/under/misc.dmi')
+
/mob/living/carbon/human/monkey/punpun/Initialize(mapload)
. = ..()
name = "Pun Pun"
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index d3a84107fd1..867c8dcb9ee 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -559,12 +559,14 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
if(!t_color)
t_color = icon_state
- var/mutable_appearance/standing = mutable_appearance('icons/mob/clothing/uniform.dmi', "[t_color]_s", layer = -UNIFORM_LAYER)
+ var/mutable_appearance/standing = mutable_appearance('icons/mob/clothing/under/misc.dmi', "[t_color]_s", layer = -UNIFORM_LAYER)
if(w_uniform.icon_override)
standing.icon = w_uniform.icon_override
- else if(w_uniform.sprite_sheets && w_uniform.sprite_sheets[dna.species.name])
- standing.icon = w_uniform.sprite_sheets[dna.species.name]
+ if(w_uniform.sprite_sheets)
+ standing.icon = w_uniform.sprite_sheets["Human"]
+ if(w_uniform.sprite_sheets[dna.species.name] && icon_exists(w_uniform.sprite_sheets[dna.species.name], "[t_color]_s"))
+ standing.icon = w_uniform.sprite_sheets[dna.species.name]
if(w_uniform.blood_DNA)
var/image/bloodsies = image("icon" = dna.species.blood_mask, "icon_state" = "uniformblood")
diff --git a/code/modules/mob/living/carbon/superheroes.dm b/code/modules/mob/living/carbon/superheroes.dm
index 7ded07946fd..5db4febebd9 100644
--- a/code/modules/mob/living/carbon/superheroes.dm
+++ b/code/modules/mob/living/carbon/superheroes.dm
@@ -74,7 +74,7 @@
..()
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black/greytide(H), slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/owl(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/owl(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/owlwings(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/owl_mask/super_hero(H), slot_wear_mask)
H.equip_to_slot_or_del(new /obj/item/storage/belt/bluespace/owlman(H), slot_belt)
@@ -93,7 +93,7 @@
..()
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/griffin(H), slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/griffin(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/griffin(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/owlwings/griffinwings(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/griffin/(H), slot_head)
diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm
index 02397215e9a..004e9239c2b 100644
--- a/code/modules/mob/living/simple_animal/corpse.dm
+++ b/code/modules/mob/living/simple_animal/corpse.dm
@@ -60,7 +60,7 @@
/datum/outfit/piratecorpse
name = "Corpse of a Pirate"
- uniform = /obj/item/clothing/under/pirate
+ uniform = /obj/item/clothing/under/costume/pirate
shoes = /obj/item/clothing/shoes/jackboots
glasses = /obj/item/clothing/glasses/eyepatch
head = /obj/item/clothing/head/bandana
@@ -86,7 +86,7 @@
/datum/outfit/russiancorpse
name = "Corpse of a Russian"
- uniform = /obj/item/clothing/under/soviet
+ uniform = /obj/item/clothing/under/costume/soviet
shoes = /obj/item/clothing/shoes/jackboots
head = /obj/item/clothing/head/bearpelt
diff --git a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm
index 35b76e65849..e816a146d7c 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm
@@ -348,7 +348,7 @@
switch(type)
if("Miner")
mob_species = pickweight(list(/datum/species/human = 72, /datum/species/unathi = 28))
- uniform = /obj/item/clothing/under/rank/miner/lavaland
+ uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland
if(prob(4))
belt = pickweight(list(/obj/item/storage/belt/mining = 2, /obj/item/storage/belt/mining/alt = 2))
else if(prob(10))
@@ -367,7 +367,7 @@
l_pocket = pickweight(list(/obj/item/stack/spacecash/c1000 = 7, /obj/item/reagent_containers/hypospray/autoinjector/survival = 2, /obj/item/borg/upgrade/modkit/cooldown = 1 ))
if("Ashwalker")
mob_species = /datum/species/unathi/ashwalker
- uniform = /obj/item/clothing/under/gladiator/ash_walker
+ uniform = /obj/item/clothing/under/costume/gladiator/ash_walker
if(prob(95))
head = /obj/item/clothing/head/helmet/gladiator
else
@@ -407,7 +407,7 @@
l_pocket = pick(list(/obj/item/crowbar/power, /obj/item/wrench/power, /obj/item/weldingtool/experimental))
if("YeOlde")
mob_gender = FEMALE
- uniform = /obj/item/clothing/under/maid
+ uniform = /obj/item/clothing/under/costume/maid
gloves = /obj/item/clothing/gloves/color/white
shoes = /obj/item/clothing/shoes/laceup
head = /obj/item/clothing/head/helmet/riot/knight
diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm
index c6c08b67656..ab90f2f3d7a 100644
--- a/code/modules/response_team/ert_outfits.dm
+++ b/code/modules/response_team/ert_outfits.dm
@@ -36,7 +36,7 @@
rt_job = "Emergency Response Team Leader"
rt_mob_job = "ERT Commander"
- uniform = /obj/item/clothing/under/rank/centcom_officer/sensor
+ uniform = /obj/item/clothing/under/rank/centcom/sensor
back = /obj/item/storage/backpack/ert/commander
l_ear = /obj/item/radio/headset/ert/alt/commander
@@ -124,7 +124,7 @@
name = "RT Security"
rt_job = "Emergency Response Team Officer"
rt_mob_job = "ERT Security"
- uniform = /obj/item/clothing/under/rank/security/sensor
+ uniform = /obj/item/clothing/under/rank/security/officer/sensor
back = /obj/item/storage/backpack/ert/security
belt = /obj/item/storage/belt/security/response_team
pda = /obj/item/pda/heads/ert/security
@@ -214,7 +214,7 @@
rt_job = "Emergency Response Team Engineer"
rt_mob_job = "ERT Engineering"
back = /obj/item/storage/backpack/ert/engineer
- uniform = /obj/item/clothing/under/rank/engineer
+ uniform = /obj/item/clothing/under/rank/engineering/engineer
belt = /obj/item/storage/belt/utility/full/multitool
pda = /obj/item/pda/heads/ert/engineering
id = /obj/item/card/id/ert/engineering
@@ -297,7 +297,7 @@
name = "RT Medic"
rt_job = "Emergency Response Team Medic"
rt_mob_job = "ERT Medical"
- uniform = /obj/item/clothing/under/rank/medical
+ uniform = /obj/item/clothing/under/rank/medical/doctor
back = /obj/item/storage/backpack/ert/medical
pda = /obj/item/pda/heads/ert/medical
id = /obj/item/card/id/ert/medic
@@ -408,7 +408,7 @@
name = "RT Paranormal"
rt_job = "Emergency Response Team Inquisitor"
rt_mob_job = "ERT Paranormal"
- uniform = /obj/item/clothing/under/rank/chaplain
+ uniform = /obj/item/clothing/under/rank/civilian/chaplain
back = /obj/item/storage/backpack/ert/security
shoes = /obj/item/clothing/shoes/combat
l_ear = /obj/item/radio/headset/ert/alt
diff --git a/code/modules/ruins/lavalandruin_code/ash_walker_den.dm b/code/modules/ruins/lavalandruin_code/ash_walker_den.dm
index a8fe82cf5df..8b184d2bf17 100644
--- a/code/modules/ruins/lavalandruin_code/ash_walker_den.dm
+++ b/code/modules/ruins/lavalandruin_code/ash_walker_den.dm
@@ -90,4 +90,4 @@
/datum/outfit/ashwalker
name ="Ashwalker"
head = /obj/item/clothing/head/helmet/gladiator
- uniform = /obj/item/clothing/under/gladiator/ash_walker
+ uniform = /obj/item/clothing/under/costume/gladiator/ash_walker
diff --git a/code/modules/ruins/lavalandruin_code/hermit.dm b/code/modules/ruins/lavalandruin_code/hermit.dm
index 93056ee1d9a..b0d8f91d2e9 100644
--- a/code/modules/ruins/lavalandruin_code/hermit.dm
+++ b/code/modules/ruins/lavalandruin_code/hermit.dm
@@ -24,7 +24,7 @@
flavour_text += "you were a [pick("arms dealer", "shipwright", "docking manager")]'s assistant on a small trading station several sectors from here. Raiders attacked, and there was \
only one pod left when you got to the escape bay. You took it and launched it alone, and the crowd of terrified faces crowding at the airlock door as your pod's engines burst to \
life and sent you to this hell are forever branded into your memory."
- outfit.uniform = /obj/item/clothing/under/assistantformal
+ outfit.uniform = /obj/item/clothing/under/misc/assistantformal
outfit.shoes = /obj/item/clothing/shoes/black
outfit.back = /obj/item/storage/backpack
if(2)
@@ -37,7 +37,7 @@
if(3)
flavour_text += "you were a doctor on one of Nanotrasen's space stations, but you left behind that damn corporation's tyranny and everything it stood for. From a metaphorical hell \
to a literal one, you find yourself nonetheless missing the recycled air and warm floors of what you left behind... but you'd still rather be here than there."
- outfit.uniform = /obj/item/clothing/under/rank/medical
+ outfit.uniform = /obj/item/clothing/under/rank/medical/doctor
outfit.suit = /obj/item/clothing/suit/storage/labcoat
outfit.back = /obj/item/storage/backpack/medic
outfit.shoes = /obj/item/clothing/shoes/black
diff --git a/icons/mob/clothing/species/drask/under/captain.dmi b/icons/mob/clothing/species/drask/under/captain.dmi
new file mode 100644
index 00000000000..7876f171925
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/captain.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/cargo.dmi b/icons/mob/clothing/species/drask/under/cargo.dmi
new file mode 100644
index 00000000000..fffc66c5f0c
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/cargo.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/centcom.dmi b/icons/mob/clothing/species/drask/under/centcom.dmi
new file mode 100644
index 00000000000..cd25bf17ed2
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/centcom.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/civilian.dmi b/icons/mob/clothing/species/drask/under/civilian.dmi
new file mode 100644
index 00000000000..4f2441e9055
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/civilian.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/color.dmi b/icons/mob/clothing/species/drask/under/color.dmi
new file mode 100644
index 00000000000..a47dc0395c9
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/color.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/costumes.dmi b/icons/mob/clothing/species/drask/under/costumes.dmi
new file mode 100644
index 00000000000..9a39d9ec0fb
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/costumes.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/donator.dmi b/icons/mob/clothing/species/drask/under/donator.dmi
new file mode 100644
index 00000000000..2a8058f9d86
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/donator.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/dress.dmi b/icons/mob/clothing/species/drask/under/dress.dmi
new file mode 100644
index 00000000000..735ab9073af
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/dress.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/engineering.dmi b/icons/mob/clothing/species/drask/under/engineering.dmi
new file mode 100644
index 00000000000..31436d096be
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/engineering.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/medical.dmi b/icons/mob/clothing/species/drask/under/medical.dmi
new file mode 100644
index 00000000000..deb96dac1d7
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/medical.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/misc.dmi b/icons/mob/clothing/species/drask/under/misc.dmi
new file mode 100644
index 00000000000..31bcee42840
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/misc.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/pants.dmi b/icons/mob/clothing/species/drask/under/pants.dmi
new file mode 100644
index 00000000000..9a93d25dfa9
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/pants.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/rnd.dmi b/icons/mob/clothing/species/drask/under/rnd.dmi
new file mode 100644
index 00000000000..66849e88f09
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/rnd.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/security.dmi b/icons/mob/clothing/species/drask/under/security.dmi
new file mode 100644
index 00000000000..be31f33f801
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/security.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/suit.dmi b/icons/mob/clothing/species/drask/under/suit.dmi
new file mode 100644
index 00000000000..350bf246a37
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/suit.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/syndicate.dmi b/icons/mob/clothing/species/drask/under/syndicate.dmi
new file mode 100644
index 00000000000..b75ae9d79e5
Binary files /dev/null and b/icons/mob/clothing/species/drask/under/syndicate.dmi differ
diff --git a/icons/mob/clothing/species/drask/uniform.dmi b/icons/mob/clothing/species/drask/uniform.dmi
deleted file mode 100644
index bbbba4a5085..00000000000
Binary files a/icons/mob/clothing/species/drask/uniform.dmi and /dev/null differ
diff --git a/icons/mob/clothing/species/grey/under/captain.dmi b/icons/mob/clothing/species/grey/under/captain.dmi
new file mode 100644
index 00000000000..0f26a6bd586
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/captain.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/cargo.dmi b/icons/mob/clothing/species/grey/under/cargo.dmi
new file mode 100644
index 00000000000..b54abf4fe76
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/cargo.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/centcom.dmi b/icons/mob/clothing/species/grey/under/centcom.dmi
new file mode 100644
index 00000000000..39e7000a2a9
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/centcom.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/civilian.dmi b/icons/mob/clothing/species/grey/under/civilian.dmi
new file mode 100644
index 00000000000..7881358b7ef
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/civilian.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/color.dmi b/icons/mob/clothing/species/grey/under/color.dmi
new file mode 100644
index 00000000000..b8d05de14ce
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/color.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/costumes.dmi b/icons/mob/clothing/species/grey/under/costumes.dmi
new file mode 100644
index 00000000000..97d5f81c60b
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/costumes.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/donator.dmi b/icons/mob/clothing/species/grey/under/donator.dmi
new file mode 100644
index 00000000000..a645f334a12
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/donator.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/dress.dmi b/icons/mob/clothing/species/grey/under/dress.dmi
new file mode 100644
index 00000000000..375f22e32e4
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/dress.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/engineering.dmi b/icons/mob/clothing/species/grey/under/engineering.dmi
new file mode 100644
index 00000000000..2433a93625a
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/engineering.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/medical.dmi b/icons/mob/clothing/species/grey/under/medical.dmi
new file mode 100644
index 00000000000..c0c79ccd5cc
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/medical.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/misc.dmi b/icons/mob/clothing/species/grey/under/misc.dmi
new file mode 100644
index 00000000000..8449bedfc5c
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/misc.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/pants.dmi b/icons/mob/clothing/species/grey/under/pants.dmi
new file mode 100644
index 00000000000..2a46031ec27
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/pants.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/rnd.dmi b/icons/mob/clothing/species/grey/under/rnd.dmi
new file mode 100644
index 00000000000..3d9b0975cdd
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/rnd.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/security.dmi b/icons/mob/clothing/species/grey/under/security.dmi
new file mode 100644
index 00000000000..0b93f7b080e
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/security.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/solgov.dmi b/icons/mob/clothing/species/grey/under/solgov.dmi
new file mode 100644
index 00000000000..90faf93af0a
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/solgov.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/suit.dmi b/icons/mob/clothing/species/grey/under/suit.dmi
new file mode 100644
index 00000000000..a6488c484fc
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/suit.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/syndicate.dmi b/icons/mob/clothing/species/grey/under/syndicate.dmi
new file mode 100644
index 00000000000..b53f667c7ac
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/syndicate.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/uniform.dmi b/icons/mob/clothing/species/grey/under/uniform.dmi
new file mode 100644
index 00000000000..db38e0ebca8
Binary files /dev/null and b/icons/mob/clothing/species/grey/under/uniform.dmi differ
diff --git a/icons/mob/clothing/species/grey/uniform.dmi b/icons/mob/clothing/species/grey/uniform.dmi
deleted file mode 100644
index ecf8bc15b29..00000000000
Binary files a/icons/mob/clothing/species/grey/uniform.dmi and /dev/null differ
diff --git a/icons/mob/clothing/species/kidan/under/captain.dmi b/icons/mob/clothing/species/kidan/under/captain.dmi
new file mode 100644
index 00000000000..6656c215338
Binary files /dev/null and b/icons/mob/clothing/species/kidan/under/captain.dmi differ
diff --git a/icons/mob/clothing/species/kidan/uniform.dmi b/icons/mob/clothing/species/kidan/uniform.dmi
deleted file mode 100644
index f38a46a6bfe..00000000000
Binary files a/icons/mob/clothing/species/kidan/uniform.dmi and /dev/null differ
diff --git a/icons/mob/clothing/species/vox/under/captain.dmi b/icons/mob/clothing/species/vox/under/captain.dmi
new file mode 100644
index 00000000000..a71d6f7b32d
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/captain.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/cargo.dmi b/icons/mob/clothing/species/vox/under/cargo.dmi
new file mode 100644
index 00000000000..6752f983996
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/cargo.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/centcom.dmi b/icons/mob/clothing/species/vox/under/centcom.dmi
new file mode 100644
index 00000000000..5d4754518ac
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/centcom.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/civilian.dmi b/icons/mob/clothing/species/vox/under/civilian.dmi
new file mode 100644
index 00000000000..943e609a8cd
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/civilian.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/color.dmi b/icons/mob/clothing/species/vox/under/color.dmi
new file mode 100644
index 00000000000..815abe4f8a5
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/color.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/costumes.dmi b/icons/mob/clothing/species/vox/under/costumes.dmi
new file mode 100644
index 00000000000..6db96df0b04
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/costumes.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/donator.dmi b/icons/mob/clothing/species/vox/under/donator.dmi
new file mode 100644
index 00000000000..3961c77b478
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/donator.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/dress.dmi b/icons/mob/clothing/species/vox/under/dress.dmi
new file mode 100644
index 00000000000..a8beeecd260
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/dress.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/engineering.dmi b/icons/mob/clothing/species/vox/under/engineering.dmi
new file mode 100644
index 00000000000..2a7c6b6a2cb
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/engineering.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/medical.dmi b/icons/mob/clothing/species/vox/under/medical.dmi
new file mode 100644
index 00000000000..2453fd19be9
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/medical.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/misc.dmi b/icons/mob/clothing/species/vox/under/misc.dmi
new file mode 100644
index 00000000000..74cacd03647
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/misc.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/pants.dmi b/icons/mob/clothing/species/vox/under/pants.dmi
new file mode 100644
index 00000000000..5f486334d3c
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/pants.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/rnd.dmi b/icons/mob/clothing/species/vox/under/rnd.dmi
new file mode 100644
index 00000000000..c40cf219d03
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/rnd.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/security.dmi b/icons/mob/clothing/species/vox/under/security.dmi
new file mode 100644
index 00000000000..49b8e7d957c
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/security.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/suit.dmi b/icons/mob/clothing/species/vox/under/suit.dmi
new file mode 100644
index 00000000000..f06affb9dbe
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/suit.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/syndicate.dmi b/icons/mob/clothing/species/vox/under/syndicate.dmi
new file mode 100644
index 00000000000..da48b9899e8
Binary files /dev/null and b/icons/mob/clothing/species/vox/under/syndicate.dmi differ
diff --git a/icons/mob/clothing/species/vox/uniform.dmi b/icons/mob/clothing/species/vox/uniform.dmi
deleted file mode 100644
index a61283eada2..00000000000
Binary files a/icons/mob/clothing/species/vox/uniform.dmi and /dev/null differ
diff --git a/icons/mob/clothing/under/captain.dmi b/icons/mob/clothing/under/captain.dmi
new file mode 100644
index 00000000000..8ce93e87b2e
Binary files /dev/null and b/icons/mob/clothing/under/captain.dmi differ
diff --git a/icons/mob/clothing/under/cargo.dmi b/icons/mob/clothing/under/cargo.dmi
new file mode 100644
index 00000000000..9cb280078b3
Binary files /dev/null and b/icons/mob/clothing/under/cargo.dmi differ
diff --git a/icons/mob/clothing/under/centcom.dmi b/icons/mob/clothing/under/centcom.dmi
new file mode 100644
index 00000000000..a7a10ce9299
Binary files /dev/null and b/icons/mob/clothing/under/centcom.dmi differ
diff --git a/icons/mob/clothing/under/civilian.dmi b/icons/mob/clothing/under/civilian.dmi
new file mode 100644
index 00000000000..85cb6c7a523
Binary files /dev/null and b/icons/mob/clothing/under/civilian.dmi differ
diff --git a/icons/mob/clothing/under/color.dmi b/icons/mob/clothing/under/color.dmi
new file mode 100644
index 00000000000..dbf4beca5e1
Binary files /dev/null and b/icons/mob/clothing/under/color.dmi differ
diff --git a/icons/mob/clothing/under/costumes.dmi b/icons/mob/clothing/under/costumes.dmi
new file mode 100644
index 00000000000..1e0ee007ee7
Binary files /dev/null and b/icons/mob/clothing/under/costumes.dmi differ
diff --git a/icons/mob/clothing/under/donator.dmi b/icons/mob/clothing/under/donator.dmi
new file mode 100644
index 00000000000..e6f29a0ca7f
Binary files /dev/null and b/icons/mob/clothing/under/donator.dmi differ
diff --git a/icons/mob/clothing/under/dress.dmi b/icons/mob/clothing/under/dress.dmi
new file mode 100644
index 00000000000..e8e3e5bfc2c
Binary files /dev/null and b/icons/mob/clothing/under/dress.dmi differ
diff --git a/icons/mob/clothing/under/engineering.dmi b/icons/mob/clothing/under/engineering.dmi
new file mode 100644
index 00000000000..504ff48ff45
Binary files /dev/null and b/icons/mob/clothing/under/engineering.dmi differ
diff --git a/icons/mob/clothing/under/medical.dmi b/icons/mob/clothing/under/medical.dmi
new file mode 100644
index 00000000000..658f27f98fa
Binary files /dev/null and b/icons/mob/clothing/under/medical.dmi differ
diff --git a/icons/mob/clothing/under/misc.dmi b/icons/mob/clothing/under/misc.dmi
new file mode 100644
index 00000000000..aaadff0a2d6
Binary files /dev/null and b/icons/mob/clothing/under/misc.dmi differ
diff --git a/icons/mob/clothing/under/pants.dmi b/icons/mob/clothing/under/pants.dmi
new file mode 100644
index 00000000000..2bce2e94295
Binary files /dev/null and b/icons/mob/clothing/under/pants.dmi differ
diff --git a/icons/mob/clothing/under/retro.dmi b/icons/mob/clothing/under/retro.dmi
new file mode 100644
index 00000000000..76a4716b9b6
Binary files /dev/null and b/icons/mob/clothing/under/retro.dmi differ
diff --git a/icons/mob/clothing/under/rnd.dmi b/icons/mob/clothing/under/rnd.dmi
new file mode 100644
index 00000000000..b2daba27bf6
Binary files /dev/null and b/icons/mob/clothing/under/rnd.dmi differ
diff --git a/icons/mob/clothing/under/security.dmi b/icons/mob/clothing/under/security.dmi
new file mode 100644
index 00000000000..df5859aea59
Binary files /dev/null and b/icons/mob/clothing/under/security.dmi differ
diff --git a/icons/mob/clothing/under/solgov.dmi b/icons/mob/clothing/under/solgov.dmi
new file mode 100644
index 00000000000..18dba16fa57
Binary files /dev/null and b/icons/mob/clothing/under/solgov.dmi differ
diff --git a/icons/mob/clothing/under/suit.dmi b/icons/mob/clothing/under/suit.dmi
new file mode 100644
index 00000000000..0553b8ef468
Binary files /dev/null and b/icons/mob/clothing/under/suit.dmi differ
diff --git a/icons/mob/clothing/under/syndicate.dmi b/icons/mob/clothing/under/syndicate.dmi
new file mode 100644
index 00000000000..de80063d80c
Binary files /dev/null and b/icons/mob/clothing/under/syndicate.dmi differ
diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi
deleted file mode 100644
index 5cb69049ceb..00000000000
Binary files a/icons/mob/clothing/uniform.dmi and /dev/null differ
diff --git a/icons/obj/clothing/under/captain.dmi b/icons/obj/clothing/under/captain.dmi
new file mode 100644
index 00000000000..3ecfd28381e
Binary files /dev/null and b/icons/obj/clothing/under/captain.dmi differ
diff --git a/icons/obj/clothing/under/cargo.dmi b/icons/obj/clothing/under/cargo.dmi
new file mode 100644
index 00000000000..2dfc494ab60
Binary files /dev/null and b/icons/obj/clothing/under/cargo.dmi differ
diff --git a/icons/obj/clothing/under/centcom.dmi b/icons/obj/clothing/under/centcom.dmi
new file mode 100644
index 00000000000..a36c4b367e9
Binary files /dev/null and b/icons/obj/clothing/under/centcom.dmi differ
diff --git a/icons/obj/clothing/under/civilian.dmi b/icons/obj/clothing/under/civilian.dmi
new file mode 100644
index 00000000000..9ffbb1a23c5
Binary files /dev/null and b/icons/obj/clothing/under/civilian.dmi differ
diff --git a/icons/obj/clothing/under/color.dmi b/icons/obj/clothing/under/color.dmi
new file mode 100644
index 00000000000..f8dfee322a0
Binary files /dev/null and b/icons/obj/clothing/under/color.dmi differ
diff --git a/icons/obj/clothing/under/costumes.dmi b/icons/obj/clothing/under/costumes.dmi
new file mode 100644
index 00000000000..27931e75b8c
Binary files /dev/null and b/icons/obj/clothing/under/costumes.dmi differ
diff --git a/icons/obj/clothing/under/donator.dmi b/icons/obj/clothing/under/donator.dmi
new file mode 100644
index 00000000000..d5a0c10d010
Binary files /dev/null and b/icons/obj/clothing/under/donator.dmi differ
diff --git a/icons/obj/clothing/under/dress.dmi b/icons/obj/clothing/under/dress.dmi
new file mode 100644
index 00000000000..2837f166df1
Binary files /dev/null and b/icons/obj/clothing/under/dress.dmi differ
diff --git a/icons/obj/clothing/under/engineering.dmi b/icons/obj/clothing/under/engineering.dmi
new file mode 100644
index 00000000000..21a66605b79
Binary files /dev/null and b/icons/obj/clothing/under/engineering.dmi differ
diff --git a/icons/obj/clothing/under/medical.dmi b/icons/obj/clothing/under/medical.dmi
new file mode 100644
index 00000000000..26b0b49c358
Binary files /dev/null and b/icons/obj/clothing/under/medical.dmi differ
diff --git a/icons/obj/clothing/under/misc.dmi b/icons/obj/clothing/under/misc.dmi
new file mode 100644
index 00000000000..ac819d74a7e
Binary files /dev/null and b/icons/obj/clothing/under/misc.dmi differ
diff --git a/icons/obj/clothing/under/pants.dmi b/icons/obj/clothing/under/pants.dmi
new file mode 100644
index 00000000000..e0e06b3ef0d
Binary files /dev/null and b/icons/obj/clothing/under/pants.dmi differ
diff --git a/icons/obj/clothing/under/retro.dmi b/icons/obj/clothing/under/retro.dmi
new file mode 100644
index 00000000000..e5d6771303e
Binary files /dev/null and b/icons/obj/clothing/under/retro.dmi differ
diff --git a/icons/obj/clothing/under/rnd.dmi b/icons/obj/clothing/under/rnd.dmi
new file mode 100644
index 00000000000..5eaaf542c21
Binary files /dev/null and b/icons/obj/clothing/under/rnd.dmi differ
diff --git a/icons/obj/clothing/under/security.dmi b/icons/obj/clothing/under/security.dmi
new file mode 100644
index 00000000000..b8a9eebed44
Binary files /dev/null and b/icons/obj/clothing/under/security.dmi differ
diff --git a/icons/obj/clothing/under/solgov.dmi b/icons/obj/clothing/under/solgov.dmi
new file mode 100644
index 00000000000..d4b6e81f752
Binary files /dev/null and b/icons/obj/clothing/under/solgov.dmi differ
diff --git a/icons/obj/clothing/under/suit.dmi b/icons/obj/clothing/under/suit.dmi
new file mode 100644
index 00000000000..82db8a6bd00
Binary files /dev/null and b/icons/obj/clothing/under/suit.dmi differ
diff --git a/icons/obj/clothing/under/syndicate.dmi b/icons/obj/clothing/under/syndicate.dmi
new file mode 100644
index 00000000000..e9f501c66fa
Binary files /dev/null and b/icons/obj/clothing/under/syndicate.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
deleted file mode 100644
index 958e2f780d3..00000000000
Binary files a/icons/obj/clothing/uniforms.dmi and /dev/null differ
diff --git a/paradise.dme b/paradise.dme
index 297b941f4bf..86447f6f077 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1519,19 +1519,26 @@
#include "code\modules\clothing\suits\toggles.dm"
#include "code\modules\clothing\suits\utility.dm"
#include "code\modules\clothing\suits\wiz_robe.dm"
+#include "code\modules\clothing\under\centcom.dm"
#include "code\modules\clothing\under\color.dm"
+#include "code\modules\clothing\under\costumes.dm"
+#include "code\modules\clothing\under\dress.dm"
#include "code\modules\clothing\under\miscellaneous.dm"
-#include "code\modules\clothing\under\oldstation_uni.dm"
#include "code\modules\clothing\under\pants.dm"
-#include "code\modules\clothing\under\shorts.dm"
+#include "code\modules\clothing\under\retro.dm"
+#include "code\modules\clothing\under\solgov.dm"
+#include "code\modules\clothing\under\suit.dm"
#include "code\modules\clothing\under\syndicate.dm"
#include "code\modules\clothing\under\accessories\accessory.dm"
#include "code\modules\clothing\under\accessories\armband.dm"
#include "code\modules\clothing\under\accessories\holster.dm"
#include "code\modules\clothing\under\accessories\storage.dm"
+#include "code\modules\clothing\under\jobs\captain.dm"
+#include "code\modules\clothing\under\jobs\cargo.dm"
#include "code\modules\clothing\under\jobs\civilian.dm"
#include "code\modules\clothing\under\jobs\engineering.dm"
-#include "code\modules\clothing\under\jobs\medsci.dm"
+#include "code\modules\clothing\under\jobs\medical.dm"
+#include "code\modules\clothing\under\jobs\rnd.dm"
#include "code\modules\clothing\under\jobs\security.dm"
#include "code\modules\clothing\under\jobs\plasmamen\_plasmamen.dm"
#include "code\modules\clothing\under\jobs\plasmamen\antags.dm"