diff --git a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
index fb5e8ff166e..08b7d28c497 100644
--- a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
+++ b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
@@ -125,7 +125,7 @@
/obj/item/food/meat/slab/human/mutant/lizard,
/obj/item/food/meat/slab/human/mutant/lizard,
/obj/item/food/meat/slab/human/mutant/lizard,
-/obj/item/clothing/under/rank/prisoner,
+/obj/item/clothing/under/color/prisoner,
/obj/item/food/meat/slab/human/mutant/lizard,
/obj/item/food/meat/slab/human/mutant/lizard,
/obj/item/food/meat/slab/human/mutant/lizard,
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 23852f500b1..fe4feae3a8a 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -80617,8 +80617,8 @@
"pmV" = (
/obj/structure/closet/crate/trashcart/laundry,
/obj/effect/spawner/lootdrop/prison_contraband,
-/obj/item/clothing/under/rank/prisoner/skirt,
-/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
/obj/structure/cable,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index 4acdae40845..ef4cd3a7c25 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -4284,10 +4284,10 @@
},
/obj/structure/closet/crate/trashcart/laundry,
/obj/effect/spawner/lootdrop/prison_contraband,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner/skirt,
-/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
/turf/open/floor/iron/cafeteria,
/area/security/prison)
"anP" = (
@@ -8511,7 +8511,7 @@
pixel_x = -6;
pixel_y = -8
},
-/obj/item/clothing/under/rank/prisoner{
+/obj/item/clothing/under/color/prisoner{
pixel_x = 8;
pixel_y = 5
},
@@ -8519,15 +8519,15 @@
/area/security/prison)
"aGL" = (
/obj/structure/table,
-/obj/item/clothing/under/rank/prisoner/skirt{
+/obj/item/clothing/under/color/jumpskirt/prisoner{
pixel_x = -13;
pixel_y = 5
},
-/obj/item/clothing/under/rank/prisoner/skirt{
+/obj/item/clothing/under/color/jumpskirt/prisoner{
pixel_x = 9;
pixel_y = 5
},
-/obj/item/clothing/under/rank/prisoner{
+/obj/item/clothing/under/color/prisoner{
pixel_x = -2;
pixel_y = 5
},
@@ -41343,7 +41343,7 @@
/obj/item/clothing/head/beanie/orange{
pixel_y = 8
},
-/obj/item/clothing/shoes/wheelys/skishoes{
+/obj/item/clothing/shoes/sneakers/wheelys/skishoes{
pixel_y = -8
},
/turf/open/floor/plating/asteroid/snow/icemoon,
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index f3745bf807a..be62b6ebfbd 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -28318,7 +28318,7 @@
pixel_x = -6;
pixel_y = -8
},
-/obj/item/clothing/under/rank/prisoner{
+/obj/item/clothing/under/color/prisoner{
pixel_x = 8;
pixel_y = 5
},
@@ -28337,15 +28337,15 @@
/area/security/prison)
"bti" = (
/obj/structure/table,
-/obj/item/clothing/under/rank/prisoner/skirt{
+/obj/item/clothing/under/color/jumpskirt/prisoner{
pixel_x = -13;
pixel_y = 5
},
-/obj/item/clothing/under/rank/prisoner/skirt{
+/obj/item/clothing/under/color/jumpskirt/prisoner{
pixel_x = 9;
pixel_y = 5
},
-/obj/item/clothing/under/rank/prisoner{
+/obj/item/clothing/under/color/prisoner{
pixel_x = -2;
pixel_y = 5
},
@@ -74158,10 +74158,10 @@
},
/obj/structure/closet/crate/trashcart/laundry,
/obj/effect/spawner/lootdrop/prison_contraband,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner/skirt,
-/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
/turf/open/floor/iron/cafeteria,
/area/security/prison)
"omv" = (
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 2519b148338..6434d8323a0 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -1289,10 +1289,10 @@
},
/obj/structure/closet/crate/trashcart/laundry,
/obj/effect/spawner/lootdrop/prison_contraband,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner/skirt,
-/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
/obj/structure/window/reinforced{
dir = 1
},
@@ -4955,11 +4955,11 @@
/area/hallway/primary/fore)
"aGr" = (
/obj/structure/rack,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/prisoner,
/obj/item/clothing/shoes/sneakers/orange,
/obj/item/clothing/shoes/sneakers/orange,
/obj/item/clothing/shoes/sneakers/orange,
@@ -41918,10 +41918,10 @@
"kHA" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
-/obj/item/clothing/shoes/wheelys/rollerskates{
+/obj/item/clothing/shoes/sneakers/wheelys/rollerskates{
pixel_y = 5
},
-/obj/item/clothing/shoes/wheelys/rollerskates,
+/obj/item/clothing/shoes/sneakers/wheelys/rollerskates,
/obj/structure/extinguisher_cabinet{
pixel_x = -26
},
@@ -54117,7 +54117,7 @@
pixel_x = -6;
pixel_y = -8
},
-/obj/item/clothing/under/rank/prisoner{
+/obj/item/clothing/under/color/prisoner{
pixel_x = 8;
pixel_y = 5
},
@@ -57305,15 +57305,15 @@
/area/hallway/secondary/exit/departure_lounge)
"pOr" = (
/obj/structure/table,
-/obj/item/clothing/under/rank/prisoner/skirt{
+/obj/item/clothing/under/color/jumpskirt/prisoner{
pixel_x = -13;
pixel_y = 5
},
-/obj/item/clothing/under/rank/prisoner/skirt{
+/obj/item/clothing/under/color/jumpskirt/prisoner{
pixel_x = 9;
pixel_y = 5
},
-/obj/item/clothing/under/rank/prisoner{
+/obj/item/clothing/under/color/prisoner{
pixel_x = -2;
pixel_y = 5
},
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index 46d324d60d4..b405b4121d7 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -22745,8 +22745,8 @@
"ewN" = (
/obj/structure/closet/crate/trashcart/laundry,
/obj/effect/spawner/lootdrop/prison_contraband,
-/obj/item/clothing/under/rank/prisoner,
-/obj/item/clothing/under/rank/prisoner,
+/obj/item/clothing/under/color/prisoner,
+/obj/item/clothing/under/color/prisoner,
/obj/item/clothing/shoes/sneakers/orange,
/obj/item/clothing/shoes/sneakers/orange,
/turf/open/floor/iron/cafeteria,
@@ -68775,9 +68775,9 @@
/area/commons/dorms)
"wIw" = (
/obj/structure/closet/crate/trashcart/laundry,
-/obj/item/clothing/under/rank/prisoner/skirt,
-/obj/item/clothing/under/rank/prisoner/skirt,
-/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
+/obj/item/clothing/under/color/jumpskirt/prisoner,
/obj/item/clothing/shoes/sneakers/orange,
/turf/open/floor/iron/cafeteria,
/area/security/prison)
diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm
index 00f59cde168..5bcd350a63c 100644
--- a/code/datums/components/crafting/tailoring.dm
+++ b/code/datums/components/crafting/tailoring.dm
@@ -146,14 +146,14 @@
/datum/crafting_recipe/prisonsuit
name = "Prisoner Uniform (Suit)"
- result = /obj/item/clothing/under/rank/prisoner
+ result = /obj/item/clothing/under/color/prisoner
reqs = list(/obj/item/stack/sheet/cloth = 3, /obj/item/stack/license_plates = 1)
time = 20
category = CAT_CLOTHING
/datum/crafting_recipe/prisonskirt
name = "Prisoner Uniform (Skirt)"
- result = /obj/item/clothing/under/rank/prisoner/skirt
+ result = /obj/item/clothing/under/color/jumpskirt/prisoner
reqs = list(/obj/item/stack/sheet/cloth = 3, /obj/item/stack/license_plates = 1)
time = 20
category = CAT_CLOTHING
diff --git a/code/datums/greyscale/greyscale_configs.dm b/code/datums/greyscale/greyscale_configs.dm
index 5250c37dac3..e013d179ff0 100644
--- a/code/datums/greyscale/greyscale_configs.dm
+++ b/code/datums/greyscale/greyscale_configs.dm
@@ -40,3 +40,55 @@
/datum/greyscale_config/screwdriver_belt
icon_file = 'icons/obj/clothing/belt_overlays.dmi'
json_config = 'code/datums/greyscale/json_configs/screwdriver_worn.json'
+
+/datum/greyscale_config/jumpsuit
+ icon_file = 'icons/obj/clothing/under/color.dmi'
+ json_config = 'code/datums/greyscale/json_configs/jumpsuit.json'
+
+/datum/greyscale_config/jumpsuit_worn
+ icon_file = 'icons/mob/clothing/under/color.dmi'
+ json_config = 'code/datums/greyscale/json_configs/jumpsuit_worn.json'
+
+/datum/greyscale_config/jumpsuit_inhand_left
+ icon_file = 'icons/mob/inhands/clothing_lefthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/jumpsuit_inhand.json'
+
+/datum/greyscale_config/jumpsuit_inhand_right
+ icon_file = 'icons/mob/inhands/clothing_righthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/jumpsuit_inhand.json'
+
+/datum/greyscale_config/jumpsuit_prison
+ icon_file = 'icons/obj/clothing/under/color.dmi'
+ json_config = 'code/datums/greyscale/json_configs/jumpsuit_prison.json'
+
+/datum/greyscale_config/jumpsuit_prison_worn
+ icon_file = 'icons/mob/clothing/under/color.dmi'
+ json_config = 'code/datums/greyscale/json_configs/jumpsuit_prison_worn.json'
+
+/datum/greyscale_config/jumpsuit_prison_inhand_left
+ icon_file = 'icons/mob/inhands/clothing_lefthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json'
+
+/datum/greyscale_config/jumpsuit_prison_inhand_right
+ icon_file = 'icons/mob/inhands/clothing_righthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json'
+
+/datum/greyscale_config/sneakers
+ icon_file = 'icons/obj/clothing/shoes.dmi'
+ json_config = 'code/datums/greyscale/json_configs/sneakers.json'
+
+/datum/greyscale_config/sneakers_worn
+ icon_file = 'icons/mob/clothing/feet.dmi'
+ json_config = 'code/datums/greyscale/json_configs/sneakers_worn.json'
+
+/datum/greyscale_config/sneakers_orange
+ icon_file = 'icons/obj/clothing/shoes.dmi'
+ json_config = 'code/datums/greyscale/json_configs/sneakers_orange.json'
+
+/datum/greyscale_config/sneakers_orange_worn
+ icon_file = 'icons/mob/clothing/feet.dmi'
+ json_config = 'code/datums/greyscale/json_configs/sneakers_orange_worn.json'
+
+/datum/greyscale_config/sneakers_wheelys
+ icon_file = 'icons/obj/clothing/shoes.dmi'
+ json_config = 'code/datums/greyscale/json_configs/sneakers_wheelys.json'
diff --git a/code/datums/greyscale/json_configs/jumpsuit.json b/code/datums/greyscale/json_configs/jumpsuit.json
new file mode 100644
index 00000000000..03044770b95
--- /dev/null
+++ b/code/datums/greyscale/json_configs/jumpsuit.json
@@ -0,0 +1,28 @@
+{
+ "jumpsuit": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_accessories",
+ "blend_mode": "overlay"
+ }
+ ],
+ "jumpskirt": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_accessories",
+ "blend_mode": "overlay"
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/jumpsuit_inhand.json b/code/datums/greyscale/json_configs/jumpsuit_inhand.json
new file mode 100644
index 00000000000..754620651b9
--- /dev/null
+++ b/code/datums/greyscale/json_configs/jumpsuit_inhand.json
@@ -0,0 +1,15 @@
+{
+ "jumpsuit": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_accessories",
+ "blend_mode": "overlay"
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/jumpsuit_prison.json b/code/datums/greyscale/json_configs/jumpsuit_prison.json
new file mode 100644
index 00000000000..1ac85b764bf
--- /dev/null
+++ b/code/datums/greyscale/json_configs/jumpsuit_prison.json
@@ -0,0 +1,28 @@
+{
+ "jumpsuit": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_prison",
+ "blend_mode": "overlay"
+ }
+ ],
+ "jumpskirt": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_prison",
+ "blend_mode": "overlay"
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json b/code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json
new file mode 100644
index 00000000000..be537b5a00a
--- /dev/null
+++ b/code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json
@@ -0,0 +1,15 @@
+{
+ "jumpsuit": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_prison",
+ "blend_mode": "overlay"
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/jumpsuit_prison_worn.json b/code/datums/greyscale/json_configs/jumpsuit_prison_worn.json
new file mode 100644
index 00000000000..0096c95e812
--- /dev/null
+++ b/code/datums/greyscale/json_configs/jumpsuit_prison_worn.json
@@ -0,0 +1,54 @@
+{
+ "jumpsuit": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_prison",
+ "blend_mode": "overlay"
+ }
+ ],
+ "jumpsuit_d" : [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_d",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_d_prison",
+ "blend_mode": "overlay"
+ }
+ ],
+ "jumpskirt": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt_prison",
+ "blend_mode": "overlay"
+ }
+ ],
+ "jumpskirt_d" : [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt_d",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt_d_prison",
+ "blend_mode": "overlay"
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/jumpsuit_worn.json b/code/datums/greyscale/json_configs/jumpsuit_worn.json
new file mode 100644
index 00000000000..b2e81aa1b15
--- /dev/null
+++ b/code/datums/greyscale/json_configs/jumpsuit_worn.json
@@ -0,0 +1,44 @@
+{
+ "jumpsuit": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_accessories",
+ "blend_mode": "overlay"
+ }
+ ],
+ "jumpsuit_d" : [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpsuit_d",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "jumpskirt": [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt_accessories",
+ "blend_mode": "overlay"
+ }
+ ],
+ "jumpskirt_d" : [
+ {
+ "type": "icon_state",
+ "icon_state": "jumpskirt_d",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/sneakers.json b/code/datums/greyscale/json_configs/sneakers.json
new file mode 100644
index 00000000000..50a064bb02b
--- /dev/null
+++ b/code/datums/greyscale/json_configs/sneakers.json
@@ -0,0 +1,16 @@
+{
+ "sneakers": [
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_back",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_front",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/sneakers_orange.json b/code/datums/greyscale/json_configs/sneakers_orange.json
new file mode 100644
index 00000000000..f0e27c02814
--- /dev/null
+++ b/code/datums/greyscale/json_configs/sneakers_orange.json
@@ -0,0 +1,35 @@
+{
+ "sneakers": [
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_back",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_front",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ }
+ ],
+ "sneakers_chained": [
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_alt_back",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_alt_front",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_alt_chained",
+ "blend_mode": "overlay"
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/sneakers_orange_worn.json b/code/datums/greyscale/json_configs/sneakers_orange_worn.json
new file mode 100644
index 00000000000..fb0a07ff196
--- /dev/null
+++ b/code/datums/greyscale/json_configs/sneakers_orange_worn.json
@@ -0,0 +1,35 @@
+{
+ "sneakers": [
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_back",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_front",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ }
+ ],
+ "sneakers_chained": [
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_back",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_front",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_chained",
+ "blend_mode": "overlay"
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/sneakers_wheelys.json b/code/datums/greyscale/json_configs/sneakers_wheelys.json
new file mode 100644
index 00000000000..221dd5717fe
--- /dev/null
+++ b/code/datums/greyscale/json_configs/sneakers_wheelys.json
@@ -0,0 +1,21 @@
+{
+ "sneakers": [
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_back",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_front",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_wheelys",
+ "blend_mode": "overlay"
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/sneakers_worn.json b/code/datums/greyscale/json_configs/sneakers_worn.json
new file mode 100644
index 00000000000..50a064bb02b
--- /dev/null
+++ b/code/datums/greyscale/json_configs/sneakers_worn.json
@@ -0,0 +1,16 @@
+{
+ "sneakers": [
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_back",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "sneakers_front",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ }
+ ]
+}
diff --git a/code/game/machinery/computer/arcade/arcade.dm b/code/game/machinery/computer/arcade/arcade.dm
index 83286125e3e..604df2883e0 100644
--- a/code/game/machinery/computer/arcade/arcade.dm
+++ b/code/game/machinery/computer/arcade/arcade.dm
@@ -46,7 +46,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
/obj/item/extendohand/acme = 1,
/obj/item/hot_potato/harmless/toy = 1,
/obj/item/card/emagfake = 1,
- /obj/item/clothing/shoes/wheelys = 2,
+ /obj/item/clothing/shoes/sneakers/wheelys = 2,
/obj/item/clothing/shoes/kindle_kicks = 2,
/obj/item/toy/plush/goatplushie = 2,
/obj/item/toy/plush/moth = 2,
diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm
index 547d09c824b..bc2dea7fcbf 100644
--- a/code/game/machinery/gulag_teleporter.dm
+++ b/code/game/machinery/gulag_teleporter.dm
@@ -21,8 +21,8 @@ The console is located at computer/gulag_teleporter.dm
var/locked = FALSE
var/message_cooldown
var/breakout_time = 600
- var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner
- var/jumpskirt_type = /obj/item/clothing/under/rank/prisoner/skirt
+ var/jumpsuit_type = /obj/item/clothing/under/color/prisoner
+ var/jumpskirt_type = /obj/item/clothing/under/color/jumpskirt/prisoner
var/shoes_type = /obj/item/clothing/shoes/sneakers/orange
var/emergency_plasglove_type = /obj/item/clothing/gloves/color/plasmaman
var/obj/machinery/gulag_item_reclaimer/linked_reclaimer
diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm
index dae679bed49..f545311d2bb 100644
--- a/code/game/machinery/washing_machine.dm
+++ b/code/game/machinery/washing_machine.dm
@@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(dye_registry, list(
DYE_RD = /obj/item/clothing/under/rank/rnd/research_director,
DYE_CMO = /obj/item/clothing/under/rank/medical/chief_medical_officer,
DYE_REDCOAT = /obj/item/clothing/under/costume/redcoat,
- DYE_PRISONER = /obj/item/clothing/under/rank/prisoner,
+ DYE_PRISONER = /obj/item/clothing/under/color/prisoner,
DYE_SYNDICATE = /obj/item/clothing/under/syndicate,
DYE_CENTCOM = /obj/item/clothing/under/rank/centcom/commander
),
@@ -45,7 +45,7 @@ GLOBAL_LIST_INIT(dye_registry, list(
DYE_CE = /obj/item/clothing/under/rank/engineering/chief_engineer/skirt,
DYE_RD = /obj/item/clothing/under/rank/rnd/research_director/skirt,
DYE_CMO = /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt,
- DYE_PRISONER = /obj/item/clothing/under/rank/prisoner/skirt,
+ DYE_PRISONER = /obj/item/clothing/under/color/jumpskirt/prisoner,
),
DYE_REGISTRY_GLOVES = list(
DYE_RED = /obj/item/clothing/gloves/color/red,
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 93c513abee2..f0f45835944 100755
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -218,8 +218,8 @@
/obj/structure/closet/secure_closet/brig/PopulateContents()
..()
- new /obj/item/clothing/under/rank/prisoner( src )
- new /obj/item/clothing/under/rank/prisoner/skirt( src )
+ new /obj/item/clothing/under/color/prisoner( src )
+ new /obj/item/clothing/under/color/jumpskirt/prisoner( src )
new /obj/item/clothing/shoes/sneakers/orange( src )
/obj/structure/closet/secure_closet/courtroom
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index bca315340a4..3dd87278deb 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -75,9 +75,9 @@
/obj/structure/closet/wardrobe/orange/PopulateContents()
for(var/i in 1 to 3)
- new /obj/item/clothing/under/rank/prisoner(src)
+ new /obj/item/clothing/under/color/prisoner(src)
for(var/i in 1 to 3)
- new /obj/item/clothing/under/rank/prisoner/skirt(src)
+ new /obj/item/clothing/under/color/jumpskirt/prisoner(src)
for(var/i in 1 to 3)
new /obj/item/clothing/shoes/sneakers/orange(src)
return
diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm
index 7f8c0d64ee7..a39ca0e8876 100644
--- a/code/game/objects/structures/ghost_role_spawners.dm
+++ b/code/game/objects/structures/ghost_role_spawners.dm
@@ -290,7 +290,7 @@
flavour_text += "you're an exile from the Tiger Cooperative. Their technological fanaticism drove you to question the power and beliefs of the Exolitics, and they saw you as a \
heretic and subjected you to hours of horrible torture. You were hours away from execution when a high-ranking friend of yours in the Cooperative managed to secure you a pod, \
scrambled its destination's coordinates, and launched it. You awoke from stasis when you landed and have been surviving - barely - ever since."
- outfit.uniform = /obj/item/clothing/under/rank/prisoner
+ outfit.uniform = /obj/item/clothing/under/color/prisoner
outfit.shoes = /obj/item/clothing/shoes/sneakers/orange
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 \
@@ -359,7 +359,7 @@
/datum/outfit/lavalandprisoner
name = "Lavaland Prisoner"
- uniform = /obj/item/clothing/under/rank/prisoner
+ uniform = /obj/item/clothing/under/color/prisoner
mask = /obj/item/clothing/mask/breath
shoes = /obj/item/clothing/shoes/sneakers/orange
r_pocket = /obj/item/tank/internals/emergency_oxygen
diff --git a/code/modules/antagonists/fugitive/fugitive_outfits.dm b/code/modules/antagonists/fugitive/fugitive_outfits.dm
index a893d2b22f2..0ff95e27147 100644
--- a/code/modules/antagonists/fugitive/fugitive_outfits.dm
+++ b/code/modules/antagonists/fugitive/fugitive_outfits.dm
@@ -1,6 +1,6 @@
/datum/outfit/prisoner
name = "Prison Escapee"
- uniform = /obj/item/clothing/under/rank/prisoner
+ uniform = /obj/item/clothing/under/color/prisoner
shoes = /obj/item/clothing/shoes/sneakers/orange
r_pocket = /obj/item/kitchen/knife/shiv
@@ -95,7 +95,7 @@
/datum/outfit/bountyarmor
name = "Bounty Hunter - Armored"
- uniform = /obj/item/clothing/under/rank/prisoner
+ uniform = /obj/item/clothing/under/color/prisoner
back = /obj/item/storage/backpack
head = /obj/item/clothing/head/hunter
suit = /obj/item/clothing/suit/space/hunter
@@ -120,7 +120,7 @@
/datum/outfit/bountyhook
name = "Bounty Hunter - Hook"
- uniform = /obj/item/clothing/under/rank/prisoner
+ uniform = /obj/item/clothing/under/color/prisoner
back = /obj/item/storage/backpack
head = /obj/item/clothing/head/scarecrow_hat
gloves = /obj/item/clothing/gloves/botanic_leather
@@ -146,7 +146,7 @@
/datum/outfit/bountysynth
name = "Bounty Hunter - Synth"
- uniform = /obj/item/clothing/under/rank/prisoner
+ uniform = /obj/item/clothing/under/color/prisoner
back = /obj/item/storage/backpack
suit = /obj/item/clothing/suit/armor/riot
shoes = /obj/item/clothing/shoes/jackboots
diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm
index d9332b99f61..b91a743d0e4 100644
--- a/code/modules/asset_cache/asset_list_items.dm
+++ b/code/modules/asset_cache/asset_list_items.dm
@@ -425,7 +425,11 @@
if (!ispath(item, /atom))
continue
- var/icon_file = initial(item.icon)
+ var/icon_file
+ if (initial(item.greyscale_colors) && initial(item.greyscale_config))
+ icon_file = SSgreyscale.GetColoredIconByType(initial(item.greyscale_config), initial(item.greyscale_colors))
+ else
+ icon_file = initial(item.icon)
var/icon_state = initial(item.icon_state)
var/icon/I
diff --git a/code/modules/cargo/bounties/security.dm b/code/modules/cargo/bounties/security.dm
index a6ce06ec8d6..f7bdfb551e6 100644
--- a/code/modules/cargo/bounties/security.dm
+++ b/code/modules/cargo/bounties/security.dm
@@ -17,7 +17,7 @@
description = "Terragov has been unable to source any new prisoner uniforms, so if you have any spares, we'll take them off your hands."
reward = CARGO_CRATE_VALUE * 4
required_count = 4
- wanted_types = list(/obj/item/clothing/under/rank/prisoner)
+ wanted_types = list(/obj/item/clothing/under/color/prisoner)
/datum/bounty/item/security/plates
name = "License Plates"
diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm
index 73c106ec313..24d5954e9fb 100644
--- a/code/modules/clothing/shoes/colour.dm
+++ b/code/modules/clothing/shoes/colour.dm
@@ -1,10 +1,18 @@
/obj/item/clothing/shoes/sneakers
dying_key = DYE_REGISTRY_SNEAKERS
+ icon_state = "sneakers"
+ greyscale_config = /datum/greyscale_config/sneakers
+ var/datum/greyscale_config/greyscale_config_worn = /datum/greyscale_config/sneakers_worn
+
+/obj/item/clothing/shoes/sneakers/Initialize()
+ . = ..()
+ if(greyscale_config_worn && greyscale_colors)
+ worn_icon = SSgreyscale.GetColoredIconByType(greyscale_config_worn, greyscale_colors)
/obj/item/clothing/shoes/sneakers/black
name = "black shoes"
- icon_state = "black"
desc = "A pair of black shoes."
+ greyscale_colors = "#545454#ffffff"
custom_price = PAYCHECK_ASSISTANT
cold_protection = FEET
@@ -15,49 +23,53 @@
/obj/item/clothing/shoes/sneakers/brown
name = "brown shoes"
desc = "A pair of brown shoes."
- icon_state = "brown"
+ greyscale_colors = "#814112#ffffff"
/obj/item/clothing/shoes/sneakers/blue
name = "blue shoes"
- icon_state = "blue"
+ greyscale_colors = "#16a9eb#ffffff"
/obj/item/clothing/shoes/sneakers/green
name = "green shoes"
- icon_state = "green"
+ greyscale_colors = "#54eb16#ffffff"
/obj/item/clothing/shoes/sneakers/yellow
name = "yellow shoes"
- icon_state = "yellow"
+ greyscale_colors = "#ebe216#ffffff"
/obj/item/clothing/shoes/sneakers/purple
name = "purple shoes"
- icon_state = "purple"
+ greyscale_colors = "#ad16eb#ffffff"
/obj/item/clothing/shoes/sneakers/red
name = "red shoes"
desc = "Stylish red shoes."
- icon_state = "red"
+ greyscale_colors = "#ff2626#ffffff"
/obj/item/clothing/shoes/sneakers/white
name = "white shoes"
- icon_state = "white"
+ greyscale_colors = "#ffffff#ffffff"
permeability_coefficient = 0.01
/obj/item/clothing/shoes/sneakers/rainbow
name = "rainbow shoes"
desc = "Very gay shoes."
icon_state = "rain_bow"
+ greyscale_colors = null
+ greyscale_config = null
/obj/item/clothing/shoes/sneakers/orange
name = "orange shoes"
- icon_state = "orange"
+ greyscale_colors = "#eb7016#ffffff"
+ greyscale_config = /datum/greyscale_config/sneakers_orange
+ greyscale_config_worn = /datum/greyscale_config/sneakers_orange_worn
/obj/item/clothing/shoes/sneakers/orange/attack_self(mob/user)
if (src.chained)
src.chained = null
src.slowdown = SHOES_SLOWDOWN
new /obj/item/restraints/handcuffs( user.loc )
- src.icon_state = "orange"
+ src.icon_state = ""
return
/obj/item/clothing/shoes/sneakers/orange/attackby(obj/H, loc, params)
@@ -67,7 +79,7 @@
qdel(H)
src.chained = 1
src.slowdown = 15
- src.icon_state = "orange1"
+ src.icon_state = "sneakers_chained"
return
/obj/item/clothing/shoes/sneakers/orange/allow_attack_hand_drop(mob/user)
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 27a4d8f5899..de67e491df7 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -1,6 +1,6 @@
/obj/item/clothing/shoes/sneakers/mime
name = "mime shoes"
- icon_state = "mime"
+ greyscale_colors = "#ffffff"
/obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses
name = "combat boots"
@@ -212,10 +212,10 @@
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
-/obj/item/clothing/shoes/cyborg
+/obj/item/clothing/shoes/sneakers/cyborg
name = "cyborg boots"
desc = "Shoes for a cyborg costume."
- icon_state = "boots"
+ greyscale_colors = "#4e4e4e#4e4e4e"
/obj/item/clothing/shoes/laceup
name = "laceup shoes"
@@ -272,8 +272,8 @@
recharging_time = world.time + recharging_rate
else
to_chat(user, "Something prevents you from dashing forward!")
-
-/obj/item/clothing/shoes/bhop/rocket
+
+/obj/item/clothing/shoes/bhop/rocket
name = "rocket boots"
desc = "Very special boots with built-in rocket thrusters! SHAZBOT!"
icon_state = "rocketboots"
@@ -305,11 +305,13 @@
. = ..()
AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/magic/clockwork/fellowship_armory.ogg' = 1), 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
-/obj/item/clothing/shoes/wheelys
+/obj/item/clothing/shoes/sneakers/wheelys
name = "Wheely-Heels"
desc = "Uses patented retractable wheel technology. Never sacrifice speed for style - not that this provides much of either." //Thanks Fel
- icon_state = "wheelys"
worn_icon_state = "wheelys"
+ greyscale_colors = "#545454#ffffff"
+ greyscale_config = /datum/greyscale_config/sneakers_wheelys
+ greyscale_config_worn = null
inhand_icon_state = "wheelys"
worn_icon = 'icons/mob/large-worn-icons/64x64/feet.dmi'
worn_x_dimension = 64
@@ -321,16 +323,16 @@
///The vehicle associated with the shoes
var/obj/vehicle/ridden/scooter/skateboard/wheelys/wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys
-/obj/item/clothing/shoes/wheelys/Initialize()
+/obj/item/clothing/shoes/sneakers/wheelys/Initialize()
. = ..()
AddElement(/datum/element/update_icon_updates_onmob)
wheels = new wheels(null)
wheels.link_shoes(src)
-/obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action)
+/obj/item/clothing/shoes/sneakers/wheelys/ui_action_click(mob/user, action)
if(!isliving(user))
return
- if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/wheelys))
+ if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/sneakers/wheelys))
to_chat(user, "You must be wearing the wheely-heels to use them!")
return
if(!(wheels.is_occupant(user)))
@@ -343,38 +345,42 @@
wheels.buckle_mob(user)
wheelToggle = TRUE
-/obj/item/clothing/shoes/wheelys/dropped(mob/user)
+/obj/item/clothing/shoes/sneakers/wheelys/dropped(mob/user)
if(wheelToggle)
wheels.unbuckle_mob(user)
wheelToggle = FALSE
..()
-/obj/item/clothing/shoes/wheelys/proc/toggle_wheels(status)
+/obj/item/clothing/shoes/sneakers/wheelys/proc/toggle_wheels(status)
if (status)
- worn_icon_state = "[initial(icon_state)]-on"
+ worn_icon_state = "[initial(worn_icon_state)]-on"
else
- worn_icon_state = "[initial(icon_state)]"
+ worn_icon_state = "[initial(worn_icon_state)]"
playsound(src, 'sound/weapons/tap.ogg', 10, TRUE)
update_appearance()
-/obj/item/clothing/shoes/wheelys/Destroy()
+/obj/item/clothing/shoes/sneakers/wheelys/Destroy()
QDEL_NULL(wheels)
. = ..()
-/obj/item/clothing/shoes/wheelys/rollerskates
+/obj/item/clothing/shoes/sneakers/wheelys/rollerskates
name = "roller skates"
desc = "An EightO brand pair of roller skates. The wheels are retractable, though're quite bulky to walk in."
icon_state = "rollerskates"
+ greyscale_colors = null
+ greyscale_config = null
worn_icon_state = "rollerskates"
slowdown = SHOES_SLOWDOWN+1
wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys/rollerskates
custom_premium_price = PAYCHECK_EASY * 5
custom_price = PAYCHECK_EASY * 5
-/obj/item/clothing/shoes/wheelys/skishoes
+/obj/item/clothing/shoes/sneakers/wheelys/skishoes
name = "ski shoes"
desc = "A pair of shoes equipped with foldable skis! Very handy to move in snowy environments unimpeded."
icon_state = "skishoes"
+ greyscale_colors = null
+ greyscale_config = null
worn_icon_state = "skishoes"
slowdown = SHOES_SLOWDOWN+1
wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys/skishoes
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index b705b014b37..73c38c2c5f2 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -1,20 +1,27 @@
/obj/item/clothing/under/color
desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
dying_key = DYE_REGISTRY_UNDER
+ greyscale_config = /datum/greyscale_config/jumpsuit
+ var/datum/greyscale_config/greyscale_config_inhand_left = /datum/greyscale_config/jumpsuit_inhand_left
+ var/datum/greyscale_config/greyscale_config_inhand_right = /datum/greyscale_config/jumpsuit_inhand_right
+ var/datum/greyscale_config/greyscale_config_worn = /datum/greyscale_config/jumpsuit_worn
icon = 'icons/obj/clothing/under/color.dmi'
+ icon_state = "jumpsuit"
+ inhand_icon_state = "jumpsuit"
worn_icon = 'icons/mob/clothing/under/color.dmi'
/obj/item/clothing/under/color/jumpskirt
body_parts_covered = CHEST|GROIN|ARMS
dying_key = DYE_REGISTRY_JUMPSKIRT
fitted = FEMALE_UNIFORM_TOP
+ icon_state = "jumpskirt"
/obj/item/clothing/under/color/random
icon_state = "random_jumpsuit"
/obj/item/clothing/under/color/random/Initialize()
..()
- var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/ancient - /obj/item/clothing/under/color/black/ghost)
+ var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/ancient - /obj/item/clothing/under/color/black/ghost - /obj/item/clothing/under/color/prisoner)
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING, initial=TRUE) //or else you end up with naked assistants running around everywhere...
@@ -27,7 +34,7 @@
/obj/item/clothing/under/color/jumpskirt/random/Initialize()
..()
- var/obj/item/clothing/under/color/jumpskirt/C = pick(subtypesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/jumpskirt/random)
+ var/obj/item/clothing/under/color/jumpskirt/C = pick(subtypesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/jumpskirt/random - /obj/item/clothing/under/color/jumpskirt/prisoner)
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING, initial=TRUE)
@@ -35,16 +42,24 @@
new C(loc)
return INITIALIZE_HINT_QDEL
+/obj/item/clothing/under/color/Initialize()
+ . = ..()
+ if(greyscale_colors)
+ if(greyscale_config_inhand_left)
+ lefthand_file = SSgreyscale.GetColoredIconByType(greyscale_config_inhand_left, greyscale_colors)
+ if(greyscale_config_inhand_right)
+ righthand_file = SSgreyscale.GetColoredIconByType(greyscale_config_inhand_right, greyscale_colors)
+ if(greyscale_config_worn)
+ worn_icon = SSgreyscale.GetColoredIconByType(greyscale_config_worn, greyscale_colors)
+
/obj/item/clothing/under/color/black
name = "black jumpsuit"
- icon_state = "black"
- inhand_icon_state = "bl_suit"
resistance_flags = NONE
+ greyscale_colors = "#3f3f3f"
/obj/item/clothing/under/color/jumpskirt/black
name = "black jumpskirt"
- icon_state = "black_skirt"
- inhand_icon_state = "bl_suit"
+ greyscale_colors = "#3f3f3f"
/obj/item/clothing/under/color/black/ghost
item_flags = DROPDEL
@@ -56,169 +71,147 @@
/obj/item/clothing/under/color/grey
name = "grey jumpsuit"
desc = "A tasteful grey jumpsuit that reminds you of the good old days."
- icon_state = "grey"
- inhand_icon_state = "gy_suit"
+ greyscale_colors = "#b3b3b3"
/obj/item/clothing/under/color/jumpskirt/grey
name = "grey jumpskirt"
desc = "A tasteful grey jumpskirt that reminds you of the good old days."
- icon_state = "grey_skirt"
- inhand_icon_state = "gy_suit"
+ greyscale_colors = "#b3b3b3"
/obj/item/clothing/under/color/grey/ancient
name = "ancient jumpsuit"
desc = "A terribly ragged and frayed grey jumpsuit. It looks like it hasn't been washed in over a decade."
icon_state = "grey_ancient"
+ inhand_icon_state = "gy_suit"
+ greyscale_config = null
+ greyscale_config_inhand_left = null
+ greyscale_config_inhand_right = null
+ greyscale_config_worn = null
can_adjust = FALSE
/obj/item/clothing/under/color/blue
name = "blue jumpsuit"
- icon_state = "blue"
- inhand_icon_state = "b_suit"
+ greyscale_colors = "#52aecc"
/obj/item/clothing/under/color/jumpskirt/blue
name = "blue jumpskirt"
- icon_state = "blue_skirt"
- inhand_icon_state = "b_suit"
+ greyscale_colors = "#52aecc"
/obj/item/clothing/under/color/green
name = "green jumpsuit"
- icon_state = "green"
- inhand_icon_state = "g_suit"
+ greyscale_colors = "#9ed63a"
/obj/item/clothing/under/color/jumpskirt/green
name = "green jumpskirt"
- icon_state = "green_skirt"
- inhand_icon_state = "g_suit"
+ greyscale_colors = "#9ed63a"
/obj/item/clothing/under/color/orange
name = "orange jumpsuit"
desc = "Don't wear this near paranoid security officers."
- icon_state = "orange"
- inhand_icon_state = "o_suit"
+ greyscale_colors = "#ff8c19"
/obj/item/clothing/under/color/jumpskirt/orange
name = "orange jumpskirt"
- icon_state = "orange_skirt"
- inhand_icon_state = "o_suit"
+ greyscale_colors = "#ff8c19"
/obj/item/clothing/under/color/pink
name = "pink jumpsuit"
- icon_state = "pink"
desc = "Just looking at this makes you feel fabulous."
- inhand_icon_state = "p_suit"
+ greyscale_colors = "#ffa69b"
/obj/item/clothing/under/color/jumpskirt/pink
name = "pink jumpskirt"
- icon_state = "pink_skirt"
- inhand_icon_state = "p_suit"
+ greyscale_colors = "#ffa69b"
/obj/item/clothing/under/color/red
name = "red jumpsuit"
- icon_state = "red"
- inhand_icon_state = "r_suit"
+ greyscale_colors = "#eb0c07"
/obj/item/clothing/under/color/jumpskirt/red
name = "red jumpskirt"
- icon_state = "red_skirt"
- inhand_icon_state = "r_suit"
+ greyscale_colors = "#eb0c07"
/obj/item/clothing/under/color/white
name = "white jumpsuit"
- icon_state = "white"
- inhand_icon_state = "w_suit"
+ greyscale_colors = "#ffffff"
/obj/item/clothing/under/color/jumpskirt/white
name = "white jumpskirt"
- icon_state = "white_skirt"
- inhand_icon_state = "w_suit"
+ greyscale_colors = "#ffffff"
/obj/item/clothing/under/color/yellow
name = "yellow jumpsuit"
- icon_state = "yellow"
- inhand_icon_state = "y_suit"
+ greyscale_colors = "#ffe14d"
/obj/item/clothing/under/color/jumpskirt/yellow
name = "yellow jumpskirt"
- icon_state = "yellow_skirt"
- inhand_icon_state = "y_suit"
+ greyscale_colors = "#ffe14d"
/obj/item/clothing/under/color/darkblue
- name = "darkblue jumpsuit"
- icon_state = "darkblue"
- inhand_icon_state = "b_suit"
+ name = "dark blue jumpsuit"
+ greyscale_colors = "#3285ba"
/obj/item/clothing/under/color/jumpskirt/darkblue
- name = "darkblue jumpskirt"
- icon_state = "darkblue_skirt"
- inhand_icon_state = "b_suit"
+ name = "dark blue jumpskirt"
+ greyscale_colors = "#3285ba"
/obj/item/clothing/under/color/teal
name = "teal jumpsuit"
- icon_state = "teal"
- inhand_icon_state = "b_suit"
+ greyscale_colors = "#77f3b7"
/obj/item/clothing/under/color/jumpskirt/teal
name = "teal jumpskirt"
- icon_state = "teal_skirt"
- inhand_icon_state = "b_suit"
-
+ greyscale_colors = "#77f3b7"
/obj/item/clothing/under/color/lightpurple
- name = "purple jumpsuit"
- icon_state = "lightpurple"
- inhand_icon_state = "p_suit"
+ name = "light purple jumpsuit"
+ greyscale_colors = "#9f70cc"
/obj/item/clothing/under/color/jumpskirt/lightpurple
- name = "lightpurple jumpskirt"
- icon_state = "lightpurple_skirt"
- inhand_icon_state = "p_suit"
+ name = "light purple jumpskirt"
+ greyscale_colors = "#9f70cc"
/obj/item/clothing/under/color/darkgreen
- name = "darkgreen jumpsuit"
- icon_state = "darkgreen"
- inhand_icon_state = "g_suit"
+ name = "dark green jumpsuit"
+ greyscale_colors = "#6fbc22"
/obj/item/clothing/under/color/jumpskirt/darkgreen
- name = "darkgreen jumpskirt"
- icon_state = "darkgreen_skirt"
- inhand_icon_state = "g_suit"
+ name = "dark green jumpskirt"
+ greyscale_colors = "#6fbc22"
/obj/item/clothing/under/color/lightbrown
- name = "lightbrown jumpsuit"
- icon_state = "lightbrown"
- inhand_icon_state = "lb_suit"
+ name = "light brown jumpsuit"
+ greyscale_colors = "#c59431"
/obj/item/clothing/under/color/jumpskirt/lightbrown
- name = "lightbrown jumpskirt"
- icon_state = "lightbrown_skirt"
- inhand_icon_state = "lb_suit"
+ name = "light brown jumpskirt"
+ greyscale_colors = "#c59431"
/obj/item/clothing/under/color/brown
name = "brown jumpsuit"
- icon_state = "brown"
- inhand_icon_state = "lb_suit"
+ greyscale_colors = "#a17229"
/obj/item/clothing/under/color/jumpskirt/brown
name = "brown jumpskirt"
- icon_state = "brown_skirt"
- inhand_icon_state = "lb_suit"
+ greyscale_colors = "#a17229"
/obj/item/clothing/under/color/maroon
name = "maroon jumpsuit"
- icon_state = "maroon"
- inhand_icon_state = "r_suit"
+ greyscale_colors = "#cc295f"
/obj/item/clothing/under/color/jumpskirt/maroon
name = "maroon jumpskirt"
- icon_state = "maroon_skirt"
- inhand_icon_state = "r_suit"
+ greyscale_colors = "#cc295f"
/obj/item/clothing/under/color/rainbow
name = "rainbow jumpsuit"
desc = "A multi-colored jumpsuit!"
icon_state = "rainbow"
inhand_icon_state = "rainbow"
+ greyscale_config = null
+ greyscale_config_inhand_left = null
+ greyscale_config_inhand_right = null
+ greyscale_config_worn = null
can_adjust = FALSE
/obj/item/clothing/under/color/jumpskirt/rainbow
@@ -226,4 +219,8 @@
desc = "A multi-colored jumpskirt!"
icon_state = "rainbow_skirt"
inhand_icon_state = "rainbow"
+ greyscale_config = null
+ greyscale_config_inhand_left = null
+ greyscale_config_inhand_right = null
+ greyscale_config_worn = null
can_adjust = FALSE
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index 3dcc055a7b2..9359eb6e1b6 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -210,22 +210,26 @@
inhand_icon_state = "spacepol"
can_adjust = FALSE
-/obj/item/clothing/under/rank/prisoner
+/obj/item/clothing/under/color/prisoner
name = "prison jumpsuit"
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
- icon = 'icons/obj/clothing/under/security.dmi'
- icon_state = "prisoner"
- inhand_icon_state = "o_suit"
- worn_icon = 'icons/mob/clothing/under/security.dmi'
+ greyscale_colors = "#ff8300"
+ greyscale_config = /datum/greyscale_config/jumpsuit_prison
+ greyscale_config_inhand_left = /datum/greyscale_config/jumpsuit_prison_inhand_left
+ greyscale_config_inhand_right = /datum/greyscale_config/jumpsuit_prison_inhand_right
+ greyscale_config_worn = /datum/greyscale_config/jumpsuit_prison_worn
has_sensor = LOCKED_SENSORS
sensor_mode = SENSOR_COORDS
random_sensor = FALSE
-/obj/item/clothing/under/rank/prisoner/skirt
+/obj/item/clothing/under/color/jumpskirt/prisoner
name = "prison jumpskirt"
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
- icon_state = "prisoner_skirt"
- inhand_icon_state = "o_suit"
+ greyscale_colors = "#ff8300"
+ greyscale_config = /datum/greyscale_config/jumpsuit_prison
+ greyscale_config_inhand_left = /datum/greyscale_config/jumpsuit_prison_inhand_left
+ greyscale_config_inhand_right = /datum/greyscale_config/jumpsuit_prison_inhand_right
+ greyscale_config_worn = /datum/greyscale_config/jumpsuit_prison_worn
body_parts_covered = CHEST|GROIN|ARMS
dying_key = DYE_REGISTRY_JUMPSKIRT
fitted = FEMALE_UNIFORM_TOP
diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm
index 20265c76e28..cb41e6e1fa9 100644
--- a/code/modules/jobs/job_types/prisoner.dm
+++ b/code/modules/jobs/job_types/prisoner.dm
@@ -24,7 +24,7 @@
name = "Prisoner"
jobtype = /datum/job/prisoner
- uniform = /obj/item/clothing/under/rank/prisoner
+ uniform = /obj/item/clothing/under/color/prisoner
shoes = /obj/item/clothing/shoes/sneakers/orange
id = /obj/item/card/id/advanced/prisoner
ears = null
diff --git a/code/modules/mafia/outfits.dm b/code/modules/mafia/outfits.dm
index 1c1fbb3cc29..5f91109d96d 100644
--- a/code/modules/mafia/outfits.dm
+++ b/code/modules/mafia/outfits.dm
@@ -100,7 +100,7 @@
/datum/outfit/mafia/fugitive
name = "Mafia Fugitive"
- uniform = /obj/item/clothing/under/rank/prisoner
+ uniform = /obj/item/clothing/under/color/prisoner
shoes = /obj/item/clothing/shoes/sneakers/orange
/datum/outfit/mafia/obsessed
diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm
index 75cdd4456ab..bb34a690247 100644
--- a/code/modules/vehicles/scooter.dm
+++ b/code/modules/vehicles/scooter.dm
@@ -250,7 +250,7 @@
density = FALSE
instability = 12
///Stores the shoes associated with the vehicle
- var/obj/item/clothing/shoes/wheelys/shoes = null
+ var/obj/item/clothing/shoes/sneakers/wheelys/shoes = null
///Name of the wheels, for visible messages
var/wheel_name = "wheels"
///Component typepath to attach in [/obj/vehicle/ridden/scooter/skateboard/wheelys/proc/make_ridable()]
diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm
index 4321952e15a..975e751a1f0 100644
--- a/code/modules/vending/games.dm
+++ b/code/modules/vending/games.dm
@@ -22,10 +22,10 @@
/obj/item/skillchip/light_remover=2,
/obj/item/skillchip/useless_adapter=5)
contraband = list(/obj/item/dice/fudge = 9,
- /obj/item/clothing/shoes/wheelys/skishoes=4,
+ /obj/item/clothing/shoes/sneakers/wheelys/skishoes=4,
/obj/item/instrument/musicalmoth=1)
premium = list(/obj/item/melee/skateboard/pro = 3,
- /obj/item/clothing/shoes/wheelys/rollerskates= 3,
+ /obj/item/clothing/shoes/sneakers/wheelys/rollerskates= 3,
/obj/item/melee/skateboard/hoverboard = 1,
/obj/item/storage/box/tail_pin = 1,
/obj/item/toy/intento = 3)
diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi
index a8ea2da1ccb..1074d09c0a9 100644
Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ
diff --git a/icons/mob/clothing/under/color.dmi b/icons/mob/clothing/under/color.dmi
index 14fbd6e4f69..3d23202db12 100644
Binary files a/icons/mob/clothing/under/color.dmi and b/icons/mob/clothing/under/color.dmi differ
diff --git a/icons/mob/clothing/under/security.dmi b/icons/mob/clothing/under/security.dmi
index 8e115b471b7..4ccf1441840 100644
Binary files a/icons/mob/clothing/under/security.dmi and b/icons/mob/clothing/under/security.dmi differ
diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi
index 4e83b053a94..f1be9d0ac26 100644
Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ
diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi
index 1825c18f727..fcb0053e24a 100644
Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ
diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi
index 89b33da39d2..a937c1ef163 100644
Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ
diff --git a/icons/obj/clothing/under/color.dmi b/icons/obj/clothing/under/color.dmi
index d6fbd61be83..04d2751db8d 100644
Binary files a/icons/obj/clothing/under/color.dmi and b/icons/obj/clothing/under/color.dmi differ
diff --git a/icons/obj/clothing/under/security.dmi b/icons/obj/clothing/under/security.dmi
index 6ddd37eee2e..ed7e840b1c2 100644
Binary files a/icons/obj/clothing/under/security.dmi and b/icons/obj/clothing/under/security.dmi differ