Add new sprites and coloring methods for basic jumpsuits. (#31568)
* Add new sprites and coloring methods for basic jumpsuits. * Move palettes to dye_registry.dm. Add palette keys to jumpskirts. * Add colored inhands, inventory sprites, icon and palette updates. * Add jumpskirt item sprite. * Add prisoner jumpsuit, psychedelic jumpsuit, random jumpskirt. - Add new sprites for prisoner jumpsuits, skirts, and their rolldowns. - Generate psychedelic jumpsuit icon in code, using colors it was originally composed of overlayed on the white jumpsuit. - Add psychedelic jumpskirt, rolldowns, and inhands, since they are now easy to generate. - Add a subtype for random jumpskirts patterned after random jumpsuits. - Tweak orange color palette. - Ensure randomized jumpsuits and skirts get the proper names and descriptions. * Add dummy psychedelic suit sprites to satisfy linters. * Attempt dyeing. Cleanup icon states. Update references. - Moves jumpsuit coloring out of human_update_icons.dm to color.dm and updates dyeing.dm to hopefully enable dyeing. In the current state it only colors object sprites properly. - Deletes icon states that will no longer be used for each solid color jumpsuit. - Updates references to old icon states in datacore.dm, character.dm, and chameleon.dm to the white icon with a swapped palette where possible. * Thanks, linters. * Thanks, linters. part 2 * Fix dyeing. Add misc prison jumpsuit sprites. * Dye chameleon jumpsuit when it mimics colored jumpsuit. * Eliminate chameleon lag by caching jumpsuit icons. * Add missing keyword args. Thanks, linters. * Replace resistance flags in black jumpsuit. Signed-off-by: Alan <alfalfascout@users.noreply.github.com> * Tweak jumpskirt shading on south humans and greys. --------- Signed-off-by: Alan <alfalfascout@users.noreply.github.com>
@@ -23,11 +23,18 @@
|
||||
#define DYE_PURPLE "purple"
|
||||
#define DYE_BLACK "black"
|
||||
#define DYE_WHITE "white"
|
||||
#define DYE_PINK "pink"
|
||||
#define DYE_YELLOWGREEN "yellowgreen"
|
||||
#define DYE_DARKBLUE "darkblue"
|
||||
#define DYE_LIGHTBLUE "lightblue"
|
||||
#define DYE_LIGHTPURPLE "lightpurple"
|
||||
#define DYE_AQUA "aqua"
|
||||
#define DYE_BROWN "brown"
|
||||
#define DYE_LIGHTBROWN "lightbrown"
|
||||
#define DYE_DARKRED "darkred"
|
||||
#define DYE_LIGHTRED "lightred"
|
||||
#define DYE_LIGHTGREEN "lightgreen"
|
||||
#define DYE_YELLOWGREEN "yellowgreen"
|
||||
#define DYE_LIGHTPURPLE "lightpurple"
|
||||
#define DYE_PINK "pink"
|
||||
#define DYE_GREY "grey"
|
||||
#define DYE_RAINBOW "rainbow"
|
||||
#define DYE_MIME "mime"
|
||||
#define DYE_COSMIC "cosmic"
|
||||
|
||||
@@ -547,3 +547,10 @@ GLOBAL_LIST_EMPTY(bicon_cache)
|
||||
"x" = icon_width > world.icon_size && pixel_x != 0 ? (icon_width - world.icon_size) * 0.5 : 0,
|
||||
"y" = icon_height > world.icon_size && pixel_y != 0 ? (icon_height - world.icon_size) * 0.5 : 0,
|
||||
)
|
||||
|
||||
/// Swaps an entire palette, for convenience, given two same-length lists of rgb or rgba colors
|
||||
/icon/proc/swap_palette(list/old_colors, list/new_colors)
|
||||
if(length(old_colors) != length(new_colors))
|
||||
return FALSE
|
||||
for(var/index in 1 to length(old_colors))
|
||||
SwapColor(old_colors[index], new_colors[index])
|
||||
|
||||
@@ -321,3 +321,72 @@ GLOBAL_LIST_INIT(dye_registry, list(
|
||||
DYE_NTREP = /obj/item/clothing/head/helmet/space/syndicate/blue,
|
||||
),
|
||||
))
|
||||
|
||||
// Palettes for clothing
|
||||
#define PALETTE_JS_RED list("#4d0d1d", "#7e111e", "#ab312c", "#cb4836")
|
||||
#define PALETTE_JS_ORANGE list("#651d22", "#9d3720", "#c05425", "#d67a2f")
|
||||
#define PALETTE_JS_YELLOW list("#733b22", "#9d6025", "#c48c1a", "#d9b114")
|
||||
#define PALETTE_JS_GREEN list("#112624", "#1c492c", "#2a7330", "#3d9339")
|
||||
#define PALETTE_JS_BLUE list("#0d1a4d", "#0c3473", "#0e56af", "#2771cb")
|
||||
#define PALETTE_JS_PURPLE list("#2f0f54", "#571485", "#7f2ea8", "#a043bf")
|
||||
#define PALETTE_JS_BLACK list("#151414", "#212022", "#2f2e31", "#424144")
|
||||
#define PALETTE_JS_WHITE list("#6f6f75", "#9da3a3", "#caccca", "#f0efed")
|
||||
#define PALETTE_JS_DARKBLUE list("#131426", "#1c2649", "#203d65", "#28527a")
|
||||
#define PALETTE_JS_LIGHTBLUE list("#355780", "#477eb3", "#5fa4cc", "#85c1e6")
|
||||
#define PALETTE_JS_AQUA list("#285081", "#2d7b9d", "#3badb6", "#5ad2ca")
|
||||
#define PALETTE_JS_BROWN list("#270806", "#44150e", "#632f18", "#7b4323")
|
||||
#define PALETTE_JS_LIGHTBROWN list("#814537", "#a86141", "#cb8857", "#dca26a")
|
||||
#define PALETTE_JS_DARKRED list("#2a0611", "#50091a", "#77161c", "#962525")
|
||||
#define PALETTE_JS_LIGHTRED list("#853236", "#bd4b4b", "#d9755f", "#ea9275")
|
||||
#define PALETTE_JS_LIGHTGREEN list("#356241", "#429349", "#66bd5c", "#8dd97e")
|
||||
#define PALETTE_JS_YELLOWGREEN list("#776934", "#938d45", "#acbd57", "#bddc6e")
|
||||
#define PALETTE_JS_LIGHTPURPLE list("#564788", "#7e5ac4", "#af77e0", "#ce91ee")
|
||||
#define PALETTE_JS_PINK list("#853d5b", "#bd5379", "#e07791", "#ee919c")
|
||||
#define PALETTE_JS_GREY list("#3b363d", "#62626e", "#7e8789", "#9dabab")
|
||||
|
||||
GLOBAL_LIST_INIT(palette_registry, list(
|
||||
DYE_REGISTRY_UNDER = list(
|
||||
DYE_RED = PALETTE_JS_RED,
|
||||
DYE_ORANGE = PALETTE_JS_ORANGE,
|
||||
DYE_YELLOW = PALETTE_JS_YELLOW,
|
||||
DYE_GREEN = PALETTE_JS_GREEN,
|
||||
DYE_BLUE = PALETTE_JS_BLUE,
|
||||
DYE_PURPLE = PALETTE_JS_PURPLE,
|
||||
DYE_BLACK = PALETTE_JS_BLACK,
|
||||
DYE_WHITE = PALETTE_JS_WHITE,
|
||||
DYE_DARKBLUE = PALETTE_JS_DARKBLUE,
|
||||
DYE_LIGHTBLUE = PALETTE_JS_LIGHTBLUE,
|
||||
DYE_AQUA = PALETTE_JS_AQUA,
|
||||
DYE_BROWN = PALETTE_JS_BROWN,
|
||||
DYE_LIGHTBROWN = PALETTE_JS_LIGHTBROWN,
|
||||
DYE_DARKRED = PALETTE_JS_DARKRED,
|
||||
DYE_LIGHTRED = PALETTE_JS_LIGHTRED,
|
||||
DYE_LIGHTGREEN = PALETTE_JS_LIGHTGREEN,
|
||||
DYE_YELLOWGREEN = PALETTE_JS_YELLOWGREEN,
|
||||
DYE_LIGHTPURPLE = PALETTE_JS_LIGHTPURPLE,
|
||||
DYE_PINK = PALETTE_JS_PINK,
|
||||
DYE_GREY = PALETTE_JS_GREY,
|
||||
),
|
||||
DYE_REGISTRY_JUMPSKIRT = list(
|
||||
DYE_RED = PALETTE_JS_RED,
|
||||
DYE_ORANGE = PALETTE_JS_ORANGE,
|
||||
DYE_YELLOW = PALETTE_JS_YELLOW,
|
||||
DYE_GREEN = PALETTE_JS_GREEN,
|
||||
DYE_BLUE = PALETTE_JS_BLUE,
|
||||
DYE_PURPLE = PALETTE_JS_PURPLE,
|
||||
DYE_BLACK = PALETTE_JS_BLACK,
|
||||
DYE_WHITE = PALETTE_JS_WHITE,
|
||||
DYE_DARKBLUE = PALETTE_JS_DARKBLUE,
|
||||
DYE_LIGHTBLUE = PALETTE_JS_LIGHTBLUE,
|
||||
DYE_AQUA = PALETTE_JS_AQUA,
|
||||
DYE_BROWN = PALETTE_JS_BROWN,
|
||||
DYE_LIGHTBROWN = PALETTE_JS_LIGHTBROWN,
|
||||
DYE_DARKRED = PALETTE_JS_DARKRED,
|
||||
DYE_LIGHTRED = PALETTE_JS_LIGHTRED,
|
||||
DYE_LIGHTGREEN = PALETTE_JS_LIGHTGREEN,
|
||||
DYE_YELLOWGREEN = PALETTE_JS_YELLOWGREEN,
|
||||
DYE_LIGHTPURPLE = PALETTE_JS_LIGHTPURPLE,
|
||||
DYE_PINK = PALETTE_JS_PINK,
|
||||
DYE_GREY = PALETTE_JS_GREY,
|
||||
),
|
||||
))
|
||||
|
||||
@@ -579,7 +579,8 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
|
||||
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/under/color.dmi', "grey_s")
|
||||
clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "color_s")
|
||||
clothes_s.swap_palette(PALETTE_JS_WHITE, PALETTE_JS_GREY)
|
||||
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
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
worn_icon_state = initial(target_obj.worn_icon_state)
|
||||
inhand_icon_state = initial(target_obj.inhand_icon_state)
|
||||
sprite_sheets = target_obj.sprite_sheets
|
||||
desc = target_obj.desc
|
||||
base_icon_state = target_obj.base_icon_state
|
||||
|
||||
// update inhand sprites
|
||||
@@ -41,11 +40,41 @@
|
||||
|
||||
// update the name/description
|
||||
name = initial(target_obj.name)
|
||||
desc += "\nThe colors look a little dodgy."
|
||||
desc = target_obj.desc + "\nThe colors look a little dodgy."
|
||||
qdel(target_obj)
|
||||
|
||||
update_appearance(ALL)
|
||||
return target_type
|
||||
|
||||
/// Because of jumpsuit palettes, we have to do some extra icon shenanigans.
|
||||
/obj/item/clothing/under/dye_item(dye_color, dye_key_override)
|
||||
if(!dyeable || !dye_color)
|
||||
return
|
||||
var/dye_key_selector = dye_key_override ? dye_key_override : dyeing_key
|
||||
var/obj/item/clothing/under/target_type = GLOB.dye_registry[dye_key_selector][dye_color]
|
||||
|
||||
// If we're dying it to a colored jumpsuit...
|
||||
if(target_type in typesof(/obj/item/clothing/under/color))
|
||||
var/obj/item/clothing/under/color/target_obj = new target_type(null)
|
||||
set_icon_from_cache(palette_key = target_obj.icon_palette_key, dye_key = target_obj.dyeing_key)
|
||||
// update the name/description
|
||||
name = initial(target_obj.name)
|
||||
desc = target_obj.desc + "\nThe colors look a little dodgy."
|
||||
qdel(target_obj)
|
||||
|
||||
// If it also started as a colored jumpsuit, change the palette key
|
||||
if("icon_palette_key" in vars)
|
||||
var/obj/item/clothing/under/color/dyed_item = src
|
||||
dyed_item.icon_palette_key = dye_color
|
||||
return
|
||||
|
||||
// If we're not, but it started as a colored jumpsuit, unset the palette key so icon updates don't mess it up
|
||||
else if("icon_palette_key" in vars)
|
||||
var/obj/item/clothing/under/color/dyed_item = src
|
||||
dyed_item.icon_palette_key = null
|
||||
|
||||
return ..()
|
||||
|
||||
/// Beanies use the color var for their appearance, we don't normally copy this over but we have to for beanies
|
||||
/obj/item/clothing/head/beanie/dye_item(dye_color, dye_key_override)
|
||||
. = ..()
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
/datum/asset/icon_cache/clothing
|
||||
var/list/sprite_sheets = list()
|
||||
|
||||
/datum/asset/icon_cache/clothing/New()
|
||||
. = ..()
|
||||
for(var/each_subtype in subtypesof(/obj/item/clothing/under/color))
|
||||
var/obj/item/clothing/under/color/jumpsuit_type = each_subtype
|
||||
// If it doesn't have a palette key, the icon already exists and we don't need to generate it again.
|
||||
// UNLESS it's the psychedelic jumpsuits.
|
||||
var/is_psychedelic = jumpsuit_type::icon_state == "psyche" || jumpsuit_type::icon_state == "psycheskirt"
|
||||
if(!jumpsuit_type::icon_palette_key && !is_psychedelic)
|
||||
continue
|
||||
|
||||
var/palette_keys = is_psychedelic ? list(DYE_DARKBLUE, DYE_RED, DYE_BLACK, DYE_YELLOW, DYE_AQUA, DYE_PURPLE, DYE_LIGHTGREEN, DYE_PINK) : list(jumpsuit_type::icon_palette_key)
|
||||
var/registry_key = ispath(jumpsuit_type, /obj/item/clothing/under/color/jumpskirt) ? DYE_REGISTRY_JUMPSKIRT : DYE_REGISTRY_UNDER
|
||||
var/list/all_sheets = list(
|
||||
"Vox" = 'icons/mob/clothing/species/vox/under/color.dmi',
|
||||
"Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/color.dmi',
|
||||
"Drask" = 'icons/mob/clothing/species/drask/under/color.dmi',
|
||||
"Grey" = 'icons/mob/clothing/species/grey/under/color.dmi',
|
||||
"Kidan" = 'icons/mob/clothing/species/kidan/under/color.dmi',
|
||||
"Human" = jumpsuit_type::worn_icon,
|
||||
"Obj" = jumpsuit_type::icon,
|
||||
"Lefthand" = jumpsuit_type::lefthand_file,
|
||||
"Righthand" = jumpsuit_type::righthand_file)
|
||||
var/list/state_names = list(jumpsuit_type::icon_state,
|
||||
"[jumpsuit_type::worn_icon_state || jumpsuit_type::icon_state]_s",
|
||||
"[jumpsuit_type::worn_icon_state || jumpsuit_type::icon_state]_d_s",
|
||||
jumpsuit_type::inhand_icon_state,)
|
||||
// For every sprite sheet...
|
||||
for(var/sheet_key in all_sheets)
|
||||
var/filepath = all_sheets[sheet_key]
|
||||
var/icon/jumpsuit = new(filepath)
|
||||
var/icon/new_suit = new()
|
||||
|
||||
// If each icon state exists in the file...
|
||||
for(var/white_state in state_names)
|
||||
if(!white_state)
|
||||
continue
|
||||
if(!(white_state in jumpsuit.IconStates()))
|
||||
continue
|
||||
|
||||
// For every frame of color we need to dye it...
|
||||
for(var/frame_num in 1 to length(palette_keys))
|
||||
// Dye it the color we want.
|
||||
var/icon/colored_icon = new(filepath, white_state)
|
||||
colored_icon.swap_palette(
|
||||
GLOB.palette_registry[registry_key][jumpsuit_type::default_palette_key],
|
||||
GLOB.palette_registry[registry_key][palette_keys[frame_num]]
|
||||
)
|
||||
new_suit.Insert(colored_icon, white_state, frame = frame_num, delay = 1)
|
||||
|
||||
// Set the new sprite we just made to the one this jumpsuit uses.
|
||||
all_sheets[sheet_key] = new_suit
|
||||
var/suit_key = is_psychedelic ? jumpsuit_type::icon_state : jumpsuit_type::icon_palette_key
|
||||
if(!sprite_sheets[registry_key])
|
||||
sprite_sheets[registry_key] = list()
|
||||
sprite_sheets[registry_key][suit_key] = all_sheets
|
||||
@@ -1062,7 +1062,8 @@
|
||||
var/has_gloves = FALSE
|
||||
|
||||
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('icons/mob/clothing/under/color.dmi', "grey_s")
|
||||
clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "color_s")
|
||||
clothes_s.swap_palette(PALETTE_JS_WHITE, PALETTE_JS_GREY)
|
||||
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)
|
||||
|
||||
@@ -185,6 +185,7 @@
|
||||
target.name = initial(picked_item.name)
|
||||
target.desc = initial(picked_item.desc)
|
||||
target.icon_state = initial(picked_item.icon_state)
|
||||
target.icon = initial(picked_item.icon)
|
||||
|
||||
if(isitem(target))
|
||||
var/obj/item/I = target
|
||||
@@ -202,14 +203,20 @@
|
||||
else
|
||||
I.sprite_sheets = null
|
||||
|
||||
if(isclothing(I) && isclothing(picked_item))
|
||||
if(isclothing(I) && ispath(picked_item, /obj/item/clothing))
|
||||
var/obj/item/clothing/CL = I
|
||||
var/obj/item/clothing/PCL = picked_item
|
||||
CL.flags_cover = initial(PCL.flags_cover)
|
||||
if(istype(I, /obj/item/clothing/under) && ispath(picked_item, /obj/item/clothing/under/color))
|
||||
var/obj/item/clothing/under/color/colored_jumpsuit = picked_item
|
||||
if(colored_jumpsuit.icon_palette_key)
|
||||
var/obj/item/clothing/under/target_jumpsuit = I
|
||||
target_jumpsuit.set_icon_from_cache(palette_key = colored_jumpsuit::icon_palette_key, dye_key = colored_jumpsuit::dyeing_key)
|
||||
else if(ispath(colored_jumpsuit, /obj/item/clothing/under/color/psyche) || ispath(colored_jumpsuit, /obj/item/clothing/under/color/jumpskirt/psyche))
|
||||
var/obj/item/clothing/under/target_jumpsuit = I
|
||||
target_jumpsuit.set_icon_from_cache(palette_key = colored_jumpsuit::icon_state, dye_key = colored_jumpsuit::dyeing_key)
|
||||
I.update_appearance()
|
||||
|
||||
target.icon = initial(picked_item.icon)
|
||||
|
||||
/datum/action/item_action/chameleon_change/Trigger(left_click)
|
||||
if(!IsAvailable())
|
||||
return
|
||||
@@ -232,12 +239,12 @@
|
||||
random_look(owner)
|
||||
|
||||
/obj/item/clothing/under/chameleon
|
||||
name = "black jumpsuit"
|
||||
name = "white jumpsuit"
|
||||
desc = "It's a plain jumpsuit. It has a small dial on the wrist."
|
||||
icon = 'icons/obj/clothing/under/color.dmi'
|
||||
icon_state = "black"
|
||||
icon_state = "color"
|
||||
worn_icon = 'icons/mob/clothing/under/color.dmi'
|
||||
inhand_icon_state = "bl_suit"
|
||||
inhand_icon_state = "color_suit"
|
||||
random_sensor = FALSE
|
||||
resistance_flags = NONE
|
||||
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 50)
|
||||
@@ -260,6 +267,9 @@
|
||||
/obj/item/clothing/under/dress,
|
||||
/obj/item/clothing/under/pants,
|
||||
/obj/item/clothing/under/color,
|
||||
/obj/item/clothing/under/color/random,
|
||||
/obj/item/clothing/under/color/jumpskirt,
|
||||
/obj/item/clothing/under/color/jumpskirt/random,
|
||||
/obj/item/clothing/under/retro,
|
||||
/obj/item/clothing/under/solgov,
|
||||
/obj/item/clothing/under/suit,
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
|
||||
icon = 'icons/obj/clothing/under/color.dmi'
|
||||
worn_icon = 'icons/mob/clothing/under/color.dmi'
|
||||
icon_state = "color"
|
||||
inhand_icon_state = "color_suit"
|
||||
dyeable = TRUE
|
||||
var/default_palette_key = DYE_WHITE
|
||||
var/icon_palette_key = null
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/clothing/species/vox/under/color.dmi',
|
||||
"Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/color.dmi',
|
||||
@@ -14,10 +18,43 @@
|
||||
/obj/item/clothing/under/color/jumpskirt
|
||||
desc = "A standard issue colored jumpskirt. Variety is the spice of life!"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
icon_state = "colorskirt"
|
||||
dyeing_key = DYE_REGISTRY_JUMPSKIRT
|
||||
|
||||
/obj/item/clothing/under/color/random/Initialize(mapload)
|
||||
/obj/item/clothing/under/color/Initialize(mapload)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/clothing/under/color/update_icon()
|
||||
. = ..()
|
||||
set_icon_from_cache()
|
||||
|
||||
/obj/item/clothing/under/proc/set_icon_from_cache(palette_key = null, dye_key = null)
|
||||
if(!palette_key && ("icon_palette_key" in vars))
|
||||
var/obj/item/clothing/under/color/colored_jumpsuit = src
|
||||
palette_key = palette_key || colored_jumpsuit.icon_palette_key
|
||||
if(!palette_key)
|
||||
return FALSE
|
||||
dye_key = dye_key || dyeing_key
|
||||
if(!GLOB.palette_registry[dye_key])
|
||||
stack_trace("Item just tried to be colored with an invalid registry key: [dye_key]")
|
||||
var/datum/asset/icon_cache/clothing/icon_cache = get_asset_datum(/datum/asset/icon_cache/clothing/)
|
||||
|
||||
// Set icons
|
||||
for(var/sheet_key in sprite_sheets)
|
||||
sprite_sheets[sheet_key] = icon_cache.sprite_sheets[dye_key][palette_key][sheet_key]
|
||||
icon = icon_cache.sprite_sheets[dye_key][palette_key]["Obj"]
|
||||
worn_icon = icon_cache.sprite_sheets[dye_key][palette_key]["Human"]
|
||||
lefthand_file = icon_cache.sprite_sheets[dye_key][palette_key]["Lefthand"]
|
||||
righthand_file = icon_cache.sprite_sheets[dye_key][palette_key]["Righthand"]
|
||||
|
||||
// Set icon states
|
||||
var/icon_state_prefix = findtext(palette_key, "psyche") ? "psyche" : "color"
|
||||
var/icon_state_skirt = dye_key == "under" ? "" : "skirt"
|
||||
icon_state = "[icon_state_prefix][icon_state_skirt]"
|
||||
inhand_icon_state = "[icon_state_prefix]_suit"
|
||||
|
||||
/obj/item/clothing/under/color/random/Initialize(mapload)
|
||||
var/list/excluded = list(/obj/item/clothing/under/color/random,
|
||||
/obj/item/clothing/under/color/blue/dodgeball,
|
||||
/obj/item/clothing/under/color/orange/prison,
|
||||
@@ -28,48 +65,57 @@
|
||||
var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - excluded)
|
||||
name = initial(C.name)
|
||||
icon_state = initial(C.icon_state)
|
||||
icon_palette_key = initial(C.icon_palette_key)
|
||||
inhand_icon_state = initial(C.inhand_icon_state)
|
||||
. = ..()
|
||||
if(C == /obj/item/clothing/under/color/psyche)
|
||||
set_icon_from_cache(palette_key = "psyche")
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/random/Initialize(mapload)
|
||||
var/list/excluded = list(/obj/item/clothing/under/color/jumpskirt/random,
|
||||
/obj/item/clothing/under/color/jumpskirt/orange/prison,)
|
||||
var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color/jumpskirt) - excluded)
|
||||
name = initial(C.name)
|
||||
icon_state = initial(C.icon_state)
|
||||
icon_palette_key = initial(C.icon_palette_key)
|
||||
inhand_icon_state = initial(C.inhand_icon_state)
|
||||
. = ..()
|
||||
if(C == /obj/item/clothing/under/color/jumpskirt/psyche)
|
||||
set_icon_from_cache(palette_key = "psycheskirt")
|
||||
|
||||
/obj/item/clothing/under/color/black
|
||||
name = "black jumpsuit"
|
||||
icon_state = "black"
|
||||
inhand_icon_state = "bl_suit"
|
||||
icon_palette_key = DYE_BLACK
|
||||
resistance_flags = NONE
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/black
|
||||
name = "black jumpskirt"
|
||||
icon_state = "blackskirt"
|
||||
inhand_icon_state = "bl_suit"
|
||||
icon_palette_key = DYE_BLACK
|
||||
resistance_flags = NONE // I am going to assume this is here for a reason
|
||||
|
||||
/obj/item/clothing/under/color/blue
|
||||
name = "blue jumpsuit"
|
||||
icon_state = "blue"
|
||||
inhand_icon_state = "b_suit"
|
||||
icon_palette_key = DYE_BLUE
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/blue
|
||||
name = "blue jumpskirt"
|
||||
icon_state = "blueskirt"
|
||||
inhand_icon_state = "b_suit"
|
||||
icon_palette_key = DYE_BLUE
|
||||
|
||||
/obj/item/clothing/under/color/blue/dodgeball
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/under/color/green
|
||||
name = "green jumpsuit"
|
||||
icon_state = "green"
|
||||
inhand_icon_state = "g_suit"
|
||||
icon_palette_key = DYE_GREEN
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/green
|
||||
name = "green jumpskirt"
|
||||
icon_state = "greenskirt"
|
||||
inhand_icon_state = "g_suit"
|
||||
icon_palette_key = DYE_GREEN
|
||||
|
||||
/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"
|
||||
icon_palette_key = DYE_GREY
|
||||
|
||||
/obj/item/clothing/under/color/grey/greytide
|
||||
flags = NODROP
|
||||
@@ -77,29 +123,28 @@
|
||||
/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 = "greyskirt"
|
||||
inhand_icon_state = "gy_suit"
|
||||
icon_palette_key = DYE_GREY
|
||||
|
||||
/obj/item/clothing/under/color/grey/glorf
|
||||
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 = "ancient"
|
||||
icon_palette_key = null
|
||||
|
||||
/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"
|
||||
icon_palette_key = DYE_ORANGE
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/orange
|
||||
name = "orange jumpskirt"
|
||||
desc = "Don't wear this near paranoid security officers."
|
||||
icon_state = "orangeskirt"
|
||||
inhand_icon_state = "o_suit"
|
||||
icon_palette_key = DYE_ORANGE
|
||||
|
||||
/obj/item/clothing/under/color/orange/prison
|
||||
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
|
||||
icon_state = "prisoner"
|
||||
icon_palette_key = null
|
||||
inhand_icon_state = "prisoner"
|
||||
has_sensor = 2
|
||||
sensor_mode = SENSOR_COORDS
|
||||
@@ -107,6 +152,7 @@
|
||||
/obj/item/clothing/under/color/jumpskirt/orange/prison
|
||||
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
|
||||
icon_state = "prisonerskirt"
|
||||
icon_palette_key = null
|
||||
inhand_icon_state = "prisoner"
|
||||
has_sensor = 2
|
||||
sensor_mode = SENSOR_COORDS
|
||||
@@ -114,74 +160,81 @@
|
||||
/obj/item/clothing/under/color/pink
|
||||
name = "pink jumpsuit"
|
||||
desc = "Just looking at this makes you feel <i>fabulous</i>."
|
||||
icon_state = "pink"
|
||||
inhand_icon_state = "p_suit"
|
||||
icon_palette_key = DYE_PINK
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/pink
|
||||
name = "pink jumpskirt"
|
||||
desc = "Just looking at this makes you feel <i>fabulous</i>."
|
||||
icon_state = "pinkskirt"
|
||||
inhand_icon_state = "p_suit"
|
||||
icon_palette_key = DYE_PINK
|
||||
|
||||
/obj/item/clothing/under/color/red
|
||||
name = "red jumpsuit"
|
||||
icon_state = "red"
|
||||
inhand_icon_state = "r_suit"
|
||||
icon_palette_key = DYE_RED
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/red
|
||||
name = "red jumpskirt"
|
||||
icon_state = "redskirt"
|
||||
inhand_icon_state = "r_suit"
|
||||
icon_palette_key = DYE_RED
|
||||
|
||||
/obj/item/clothing/under/color/red/dodgeball
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/under/color/white
|
||||
name = "white jumpsuit"
|
||||
icon_state = "white"
|
||||
icon_palette_key = DYE_WHITE
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/white
|
||||
name = "white jumpskirt"
|
||||
icon_state = "whiteskirt"
|
||||
icon_palette_key = DYE_WHITE
|
||||
|
||||
/obj/item/clothing/under/color/yellow
|
||||
name = "yellow jumpsuit"
|
||||
icon_state = "yellow"
|
||||
icon_palette_key = DYE_YELLOW
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/yellow
|
||||
name = "yellow jumpskirt"
|
||||
icon_state = "yellowskirt"
|
||||
icon_palette_key = DYE_YELLOW
|
||||
|
||||
/obj/item/clothing/under/color/psyche
|
||||
name = "psychedelic jumpsuit"
|
||||
desc = "Groovy!"
|
||||
icon_state = "psyche"
|
||||
inhand_icon_state = "psyche_suit"
|
||||
|
||||
/obj/item/clothing/under/color/psyche/set_icon_from_cache(palette_key = "psyche", dye_key = null)
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/psyche
|
||||
name = "psychedelic jumpskirt"
|
||||
desc = "Far out!"
|
||||
icon_state = "psycheskirt"
|
||||
inhand_icon_state = "psyche_suit"
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/psyche/set_icon_from_cache(palette_key = "psycheskirt", dye_key = null)
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/under/color/lightblue
|
||||
name = "light blue jumpsuit"
|
||||
icon_state = "lightblue"
|
||||
icon_palette_key = DYE_LIGHTBLUE
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/lightblue
|
||||
name = "light blue jumpskirt"
|
||||
icon_state = "lightblueskirt"
|
||||
icon_palette_key = DYE_LIGHTBLUE
|
||||
|
||||
/obj/item/clothing/under/color/aqua
|
||||
name = "aqua jumpsuit"
|
||||
icon_state = "aqua"
|
||||
icon_palette_key = DYE_AQUA
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/aqua
|
||||
name = "aqua jumpskirt"
|
||||
icon_state = "aquaskirt"
|
||||
icon_palette_key = DYE_AQUA
|
||||
|
||||
/obj/item/clothing/under/color/purple
|
||||
name = "purple jumpsuit"
|
||||
icon_state = "purple"
|
||||
inhand_icon_state = "p_suit"
|
||||
icon_palette_key = DYE_PURPLE
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/purple
|
||||
name = "purple jumpskirt"
|
||||
icon_state = "purpleskirt"
|
||||
inhand_icon_state = "p_suit"
|
||||
icon_palette_key = DYE_PURPLE
|
||||
|
||||
/// for jani ert
|
||||
/obj/item/clothing/under/color/purple/sensor
|
||||
@@ -190,71 +243,71 @@
|
||||
|
||||
/obj/item/clothing/under/color/lightpurple
|
||||
name = "light purple jumpsuit"
|
||||
icon_state = "lightpurple"
|
||||
icon_palette_key = DYE_LIGHTPURPLE
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/lightpurple
|
||||
name = "light purple jumpskirt"
|
||||
icon_state = "lightpurpleskirt"
|
||||
icon_palette_key = DYE_LIGHTPURPLE
|
||||
|
||||
/obj/item/clothing/under/color/lightgreen
|
||||
name = "light green jumpsuit"
|
||||
icon_state = "lightgreen"
|
||||
icon_palette_key = DYE_LIGHTGREEN
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/lightgreen
|
||||
name = "light green jumpskirt"
|
||||
icon_state = "lightgreenskirt"
|
||||
icon_palette_key = DYE_LIGHTGREEN
|
||||
|
||||
/obj/item/clothing/under/color/lightbrown
|
||||
name = "light brown jumpsuit"
|
||||
icon_state = "lightbrown"
|
||||
icon_palette_key = DYE_LIGHTBROWN
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/lightbrown
|
||||
name = "light brown jumpskirt"
|
||||
icon_state = "lightbrownskirt"
|
||||
icon_palette_key = DYE_LIGHTBROWN
|
||||
|
||||
/obj/item/clothing/under/color/brown
|
||||
name = "brown jumpsuit"
|
||||
icon_state = "brown"
|
||||
icon_palette_key = DYE_BROWN
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/brown
|
||||
name = "brown jumpskirt"
|
||||
icon_state = "brownskirt"
|
||||
icon_palette_key = DYE_BROWN
|
||||
|
||||
/obj/item/clothing/under/color/yellowgreen
|
||||
name = "yellow green jumpsuit"
|
||||
icon_state = "yellowgreen"
|
||||
icon_palette_key = DYE_YELLOWGREEN
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/yellowgreen
|
||||
name = "yellow green jumpskirt"
|
||||
icon_state = "yellowgreenskirt"
|
||||
icon_palette_key = DYE_YELLOWGREEN
|
||||
|
||||
/obj/item/clothing/under/color/darkblue
|
||||
name = "dark blue jumpsuit"
|
||||
icon_state = "darkblue"
|
||||
icon_palette_key = DYE_DARKBLUE
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/darkblue
|
||||
name = "dark blue jumpskirt"
|
||||
icon_state = "darkblueskirt"
|
||||
icon_palette_key = DYE_DARKBLUE
|
||||
|
||||
/obj/item/clothing/under/color/lightred
|
||||
name = "light red jumpsuit"
|
||||
icon_state = "lightred"
|
||||
icon_palette_key = DYE_LIGHTRED
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/lightred
|
||||
name = "light red jumpskirt"
|
||||
icon_state = "lightredskirt"
|
||||
icon_palette_key = DYE_LIGHTRED
|
||||
|
||||
/obj/item/clothing/under/color/darkred
|
||||
name = "dark red jumpsuit"
|
||||
icon_state = "darkred"
|
||||
icon_palette_key = DYE_DARKRED
|
||||
|
||||
/obj/item/clothing/under/color/jumpskirt/darkred
|
||||
name = "dark red jumpskirt"
|
||||
icon_state = "darkredskirt"
|
||||
icon_palette_key = DYE_DARKRED
|
||||
|
||||
/obj/item/clothing/under/color/rainbow
|
||||
name = "rainbow jumpsuit"
|
||||
desc = "rainbow."
|
||||
desc = "Rainbow."
|
||||
icon_state = "rainbow"
|
||||
inhand_icon_state = "rainbow"
|
||||
|
||||
@@ -268,8 +321,10 @@
|
||||
name = "red team jersey"
|
||||
desc = "The jersey of the Nanotrasen Phi-ghters!"
|
||||
icon_state = "redjersey"
|
||||
icon_palette_key = null
|
||||
|
||||
/obj/item/clothing/under/color/blue/jersey
|
||||
name = "blue team jersey"
|
||||
desc = "The jersey of the Nanotrasen Pi-rates!"
|
||||
icon_state = "bluejersey"
|
||||
icon_palette_key = null
|
||||
|
||||
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 2.0 KiB |
@@ -1930,6 +1930,7 @@
|
||||
#include "code\modules\asset_cache\assets\asset_chess.dm"
|
||||
#include "code\modules\asset_cache\assets\asset_claw_game.dm"
|
||||
#include "code\modules\asset_cache\assets\asset_cloning.dm"
|
||||
#include "code\modules\asset_cache\assets\asset_clothing_icons.dm"
|
||||
#include "code\modules\asset_cache\assets\asset_common.dm"
|
||||
#include "code\modules\asset_cache\assets\asset_emoji.dm"
|
||||
#include "code\modules\asset_cache\assets\asset_icon_ref_map.dm"
|
||||
|
||||