diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 9d554181eb..63c8856ac3 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -126,8 +126,10 @@ new /obj/item/clothing/mask/bandana/black(src) if(prob(40)) new /obj/item/clothing/under/assistantformal(src) + new /obj/item/clothing/suit/hooded/wintercoat/aformal(src) if(prob(40)) new /obj/item/clothing/under/assistantformal(src) + new /obj/item/clothing/suit/hooded/wintercoat/aformal(src) if(prob(30)) new /obj/item/clothing/suit/hooded/wintercoat(src) new /obj/item/clothing/shoes/winterboots(src) @@ -169,4 +171,6 @@ if(prob(30)) new /obj/item/clothing/suit/hooded/wintercoat(src) new /obj/item/clothing/shoes/winterboots(src) + if (prob(30)) + new /obj/item/clothing/suit/hooded/wintercoat/polychromic(src) return diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 127d2e4f04..84609e29d8 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -922,3 +922,78 @@ /obj/item/clothing/head/hooded/winterhood/christmashoodrg icon_state = "christmashoodrg" + +/obj/item/clothing/suit/hooded/wintercoat/polychromic + name = "polychromic winter coat" + icon_state = "coatpoly" + item_state = "coatpoly" + item_color = "coatpoly" + hoodtype = /obj/item/clothing/head/hooded/winterhood/polychromic + hasprimary = TRUE + hassecondary = TRUE + hastertiary = TRUE + primary_color = "#6A6964" + secondary_color = "#C4B8A6" + tertiary_color = "#0000FF" + +/obj/item/clothing/head/hooded/winterhood/polychromic + icon_state = "winterhood_poly" + item_color = "winterhood_poly" + item_state = "winterhood_poly" + +/obj/item/clothing/head/hooded/winterhood/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. + . = ..() + if(suit.hasprimary | suit.hassecondary) + if(!isinhands) //prevents the worn sprites from showing up if you're just holding them + if(suit.hasprimary) //checks if overlays are enabled + var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary") //automagical sprite selection + primary_worn.color = suit.primary_color //colors the overlay + . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. + if(suit.hassecondary) + var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary") + secondary_worn.color = suit.secondary_color + . += secondary_worn + +/obj/item/clothing/suit/hooded/wintercoat/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. + . = ..() + if(hasprimary | hassecondary | hastertiary) + if(!isinhands) //prevents the worn sprites from showing up if you're just holding them + if(hasprimary) //checks if overlays are enabled + var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary[suittoggled ? "_t" : ""]") //automagical sprite selection + primary_worn.color = primary_color //colors the overlay + . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. + if(hassecondary) + var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary[suittoggled ? "_t" : ""]") + secondary_worn.color = secondary_color + . += secondary_worn + if(hastertiary) + var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[item_color]-tertiary[suittoggled ? "_t" : ""]") + tertiary_worn.color = tertiary_color + . += tertiary_worn + +/obj/item/clothing/suit/hooded/wintercoat/AltClick(mob/user) + . = ..() + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return + if(hasprimary | hassecondary | hastertiary) + var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays + switch(choice) //Lets the list's options actually lead to something + if("Primary Color") + var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it. + if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL. + primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly + update_icon() //updates the item icon + user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works. + if("Secondary Color") + var/secondary_color_input = input(usr,"","Choose Secondary Color",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.regenerate_icons() + if("Tertiary Color") + var/tertiary_color_input = input(usr,"","Choose Tertiary Color",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.regenerate_icons() + return TRUE \ No newline at end of file diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index af720f6d4e..e74e82351b 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -170,7 +170,8 @@ /obj/item/clothing/suit/jacket/leather/overcoat = 4, /obj/item/clothing/under/pants/mustangjeans = 3, /obj/item/clothing/neck/necklace/dope = 5, - /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5) + /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5, + /obj/item/clothing/suit/hooded/wintercoat/polychromic = 5) refill_canister = /obj/item/vending_refill/clothing /obj/item/vending_refill/clothing diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index d3028c9b47..499b1db21d 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index bddc3e6a56..6b1b9591b7 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/suit_digi.dmi b/icons/mob/suit_digi.dmi index f8210ed48e..bb00742a17 100644 Binary files a/icons/mob/suit_digi.dmi and b/icons/mob/suit_digi.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 552dc76f9c..d355ade9fe 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 5d70eab5f7..81ef85bb08 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index d5f2e3cbd1..9b39d006bd 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -79,6 +79,12 @@ category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/hooded/wintercoat/ratvar/fake +/datum/gear/coat/polycoat + name = "Polychromic winter coat" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/suit/hooded/wintercoat/polychromic + cost = 4 //too many people with neon green coats is hard on the eyes + /* Commented out until it is "balanced" /datum/gear/coat/sec name = "Security winter coat"