diff --git a/code/game/objects/items/dyekit.dm b/code/game/objects/items/dyekit.dm index 2cbfbca6332b..86c6e90a3290 100644 --- a/code/game/objects/items/dyekit.dm +++ b/code/game/objects/items/dyekit.dm @@ -38,3 +38,30 @@ return playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5) human_target.update_hair() + +/obj/item/colorsalve + name = "Elzuose color salve" + desc = "A Kalixcian beauty product for Elzuose that comes in the form of a salve packaged with various color additives. Used to temporarily change the pigment color of light emitting cells in the skin, requiring an extensive amount of time to prepare and apply. Wears off after a few hours." + icon = 'icons/obj/dyespray.dmi' + icon_state = "colorsalve" + +/obj/item/colorsalve/attack_self(mob/living/user) + if(!iselzuose(user)) + return + + var/mob/living/carbon/human/H = user + var/datum/species/elzuose/species_datum = H.dna.species + // select new color + var/new_etherealcolor = input(user, "Choose your Elzuose color:", "Character Preference", species_datum.default_color) as color|null + if(new_etherealcolor) + var/temp_hsv = RGBtoHSV(new_etherealcolor) + if(ReadHSV(temp_hsv)[3] >= ReadHSV("#505050")[3]) // elzu colors should be bright ok?? + if(!do_after(usr, 30 SECONDS, user)) + return + playsound(src, 'sound/effects/ointment.ogg', 5, TRUE, 5) + species_datum.default_color = sanitize_hexcolor(new_etherealcolor, 6, TRUE) + species_datum.current_color = species_datum.health_adjusted_color(user, species_datum.default_color) + species_datum.spec_updatehealth(user) + user.visible_message(span_notice("[user] applies the salve, changing [user.p_their()] color to [new_etherealcolor]")) + else + to_chat(user, span_danger("Invalid color. Your color is not bright enough.")) diff --git a/code/modules/client/loadout/loadout_general.dm b/code/modules/client/loadout/loadout_general.dm index 5b8df328e6e2..4fda0f3f8f4a 100644 --- a/code/modules/client/loadout/loadout_general.dm +++ b/code/modules/client/loadout/loadout_general.dm @@ -150,6 +150,10 @@ display_name = "hair dye" path = /obj/item/dyespray +/datum/gear/colorsalve + display_name = "Elzuose color salve" + path = /obj/item/colorsalve + /datum/gear/tablebell display_name = "table bell, brass" path = /obj/item/table_bell/brass diff --git a/icons/obj/dyespray.dmi b/icons/obj/dyespray.dmi index eb056036799a..1d1813f38c50 100644 Binary files a/icons/obj/dyespray.dmi and b/icons/obj/dyespray.dmi differ