diff --git a/modular_citadel/icons/polyclothes/item/uniform.dmi b/modular_citadel/icons/polyclothes/item/uniform.dmi new file mode 100644 index 0000000000..4406da89fa Binary files /dev/null and b/modular_citadel/icons/polyclothes/item/uniform.dmi differ diff --git a/modular_citadel/icons/polyclothes/mob/uniform.dmi b/modular_citadel/icons/polyclothes/mob/uniform.dmi new file mode 100644 index 0000000000..84c957d711 Binary files /dev/null and b/modular_citadel/icons/polyclothes/mob/uniform.dmi differ diff --git a/modular_citadel/polychromic_clothes.dm b/modular_citadel/polychromic_clothes.dm new file mode 100644 index 0000000000..b14a083f3e --- /dev/null +++ b/modular_citadel/polychromic_clothes.dm @@ -0,0 +1,194 @@ +/obj/item/clothing/under/polychromic + name = "polychromic suit" + desc = "For when you want to show off your horrible colour coordination skills." + icon = 'modular_citadel/icons/polyclothes/item/uniform.dmi' + icon_override = 'modular_citadel/icons/polyclothes/mob/uniform.dmi' + icon_state = "polysuit" + item_color = "polysuit" + item_state = "sl_suit" + can_adjust = FALSE + + var/hasprimary = TRUE + var/hassecondary = TRUE + var/hastertiary = TRUE + + var/primary_color = "#FFFFFF" //RGB in hexcode + var/secondary_color = "#FFFFFF" + var/tertiary_color = "#808080" + +/obj/item/clothing/under/polychromic/update_icon() + ..() + cut_overlays() + + if(hasprimary) + var/mutable_appearance/primary_overlay = mutable_appearance('modular_citadel/icons/polyclothes/item/uniform.dmi', "[item_color]-primary") + primary_overlay.color = primary_color + add_overlay(primary_overlay) + + if(hassecondary) + var/mutable_appearance/secondary_overlay = mutable_appearance('modular_citadel/icons/polyclothes/item/uniform.dmi', "[item_color]-secondary") + secondary_overlay.color = secondary_color + add_overlay(secondary_overlay) + + if(hastertiary) + var/mutable_appearance/tertiary_overlay = mutable_appearance('modular_citadel/icons/polyclothes/item/uniform.dmi', "[item_color]-tertiary") + tertiary_overlay.color = tertiary_color + add_overlay(tertiary_overlay) + +/obj/item/clothing/under/polychromic/AltClick(mob/living/user) + if(user.incapacitated() || !istype(user)) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user)) + return + if(user.incapacitated() || !istype(user) || !in_range(src, user)) + return + + var/choice = input(user,"polychromic thread options", "Clothing Recolor") in list("Primary Color","Secondary Color","Tertiary Color","*CANCEL*") + switch(choice) + + if("Primary Color") + var/primary_color_input = input(usr,"Choose Primary Color") as color|null + if(primary_color_input) + primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) + update_icon() + user.update_inv_w_uniform() + + if("Secondary Color") + var/secondary_color_input = input(usr,"Choose Secondary Color") as color|null + if(secondary_color_input) + secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1) + update_icon() + user.update_inv_w_uniform() + + if("Tertiary Color") + var/tertiary_color_input = input(usr,"Choose Tertiary Color") as color|null + if(tertiary_color_input) + tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1) + update_icon() + user.update_inv_w_uniform() + +/obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file) + . = ..() + if(!isinhands) + if(hasprimary) + var/mutable_appearance/primary_worn = mutable_appearance('modular_citadel/icons/polyclothes/mob/uniform.dmi', "[item_color]-primary") + primary_worn.color = primary_color + . += primary_worn + if(hassecondary) + var/mutable_appearance/secondary_worn = mutable_appearance('modular_citadel/icons/polyclothes/mob/uniform.dmi', "[item_color]-secondary") + secondary_worn.color = secondary_color + . += secondary_worn + if(hastertiary) + var/mutable_appearance/tertiary_worn = mutable_appearance('modular_citadel/icons/polyclothes/mob/uniform.dmi', "[item_color]-tertiary") + tertiary_worn.color = tertiary_color + . += tertiary_worn + +/obj/item/clothing/under/polychromic/examine(mob/user) + ..() + to_chat(user, "Alt-click to recolor it.") + +/obj/item/clothing/under/polychromic/Initialize() + ..() + update_icon() + +/obj/item/clothing/under/polychromic/shirt + name = "polychromic button-up shirt" + desc = "A fancy button-up shirt made with polychromic threads." + icon_state = "polysuit" + item_color = "polysuit" + item_state = "sl_suit" + hasprimary = TRUE + hassecondary = TRUE + hastertiary = TRUE + primary_color = "#FFFFFF" //RGB in hexcode + secondary_color = "#353535" + tertiary_color = "#353535" + +/obj/item/clothing/under/polychromic/kilt + name = "polychromic kilt" + desc = "It's not a skirt!" + icon_state = "polykilt" + item_color = "polykilt" + item_state = "kilt" + hasprimary = TRUE + hassecondary = TRUE + hastertiary = TRUE + primary_color = "#FFFFFF" //RGB in hexcode + secondary_color = "#F08080" + tertiary_color = "#808080" + +/obj/item/clothing/under/polychromic/skirt + name = "polychromic skirt" + desc = "A fancy skirt made with polychromic threads." + icon_state = "polyskirt" + item_color = "polyskirt" + item_state = "rainbow" + hasprimary = TRUE + hassecondary = TRUE + hastertiary = TRUE + primary_color = "#FFFFFF" //RGB in hexcode + secondary_color = "#F08080" + tertiary_color = "#808080" + +/obj/item/clothing/under/polychromic/shorts + name = "polychromic shorts" + desc = "For ease of movement and style." + icon_state = "polyshorts" + item_color = "polyshorts" + item_state = "rainbow" + hasprimary = TRUE + hassecondary = TRUE + hastertiary = TRUE + primary_color = "#353535" //RGB in hexcode + secondary_color = "#808080" + tertiary_color = "#808080" + +/obj/item/clothing/under/polychromic/jumpsuit + name = "polychromic tri-tone jumpsuit" + desc = "A fancy jumpsuit made with polychromic threads." + icon_state = "polyjump" + item_color = "polyjump" + item_state = "rainbow" + hasprimary = TRUE + hassecondary = TRUE + hastertiary = TRUE + primary_color = "#FFFFFF" //RGB in hexcode + secondary_color = "#808080" + tertiary_color = "#FF3535" + +//replaces the jumpsuit contents of the mixed wardrobe + +/obj/structure/closet/wardrobe/mixed/PopulateContents() + if(prob(40)) + new /obj/item/clothing/suit/jacket(src) + if(prob(40)) + new /obj/item/clothing/suit/jacket(src) + new /obj/item/clothing/under/polychromic/jumpsuit(src) + new /obj/item/clothing/under/polychromic/jumpsuit(src) + new /obj/item/clothing/under/polychromic/jumpsuit(src) + new /obj/item/clothing/under/polychromic/shirt(src) + new /obj/item/clothing/under/polychromic/shirt(src) + new /obj/item/clothing/under/polychromic/shirt(src) + new /obj/item/clothing/under/polychromic/kilt(src) + new /obj/item/clothing/under/polychromic/kilt(src) + new /obj/item/clothing/under/polychromic/kilt(src) + new /obj/item/clothing/under/polychromic/skirt(src) + new /obj/item/clothing/under/polychromic/skirt(src) + new /obj/item/clothing/under/polychromic/skirt(src) + new /obj/item/clothing/under/polychromic/shorts(src) + new /obj/item/clothing/under/polychromic/shorts(src) + new /obj/item/clothing/under/polychromic/shorts(src) + new /obj/item/clothing/mask/bandana/red(src) + new /obj/item/clothing/mask/bandana/red(src) + new /obj/item/clothing/mask/bandana/blue(src) + new /obj/item/clothing/mask/bandana/blue(src) + new /obj/item/clothing/mask/bandana/gold(src) + new /obj/item/clothing/mask/bandana/gold(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/clothing/shoes/sneakers/white(src) + if(prob(30)) + new /obj/item/clothing/suit/hooded/wintercoat(src) + new /obj/item/clothing/shoes/winterboots(src) + return \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index e5d267b667..ef5120c4c3 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2402,4 +2402,5 @@ #include "interface\skin.dmf" #include "modular_citadel\cit_medkits.dm" #include "modular_citadel\cit_screenshake.dm" +#include "modular_citadel\polychromic_clothes.dm" // END_INCLUDE