diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index c11d2b63c9..fb8700f589 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -438,6 +438,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O . += "Change Secondary Color [color_square(hex = pref.read_preference(/datum/preference/color/human/ears_color2))]
" if(ear.extra_overlay2) . += "Change Tertiary Color [color_square(hex = pref.read_preference(/datum/preference/color/human/ears_color3))]
" + .+= "Change Ears Alpha Current:[pref.read_preference(/datum/preference/numeric/human/ears_alpha)]
" else . += " Style: Select
" @@ -447,6 +448,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O . += " Style: [ears_secondary.name]
" for(var/channel in 1 to min(ears_secondary.get_color_channel_count(), length(GLOB.fancy_sprite_accessory_color_channel_names))) . += "Change [GLOB.fancy_sprite_accessory_color_channel_names[channel]] Color [color_square(hex = LAZYACCESS(pref.ear_secondary_colors, channel) || "#ffffff")]
" + .+= "Change Horns Alpha Current:[pref.read_preference(/datum/preference/numeric/human/ears_alpha/secondary)]
" else . += " Style: Select
" @@ -461,6 +463,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O . += "Change Secondary Color [color_square(hex = pref.read_preference(/datum/preference/color/human/tail_color2))]
" if(tail.extra_overlay2) . += "Change Tertiary Color [color_square(hex = pref.read_preference(/datum/preference/color/human/tail_color3))]
" + .+= "Change Tail Alpha Current:[pref.read_preference(/datum/preference/numeric/human/tail_alpha)]
" else . += " Style: Select
" @@ -475,6 +478,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O . += "Change Secondary Color [color_square(hex = pref.read_preference(/datum/preference/color/human/wing_color2))]
" if(wings.extra_overlay2) . += "Change Secondary Color [color_square(hex = pref.read_preference(/datum/preference/color/human/wing_color3))]
" + .+= "Change Wing Alpha Current:[pref.read_preference(/datum/preference/numeric/human/wing_alpha)]
" else . += " Style: Select
" @@ -1078,6 +1082,20 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.update_preference_by_type(/datum/preference/color/human/ears_color3, new_earc3) return TOPIC_REFRESH_UPDATE_PREVIEW + else if (href_list["ears_alpha"]) + var/new_ear_alpha = tgui_input_number(user, "Choose how transparent your character's primary ears are.", "Character Preference", + pref.read_preference(/datum/preference/numeric/human/ears_alpha), 255, 0) + if(new_ear_alpha) + pref.update_preference_by_type(/datum/preference/numeric/human/ears_alpha, new_ear_alpha) + return TOPIC_REFRESH_UPDATE_PREVIEW + + else if (href_list["secondary_ears_alpha"]) + var/new_ear_alpha = tgui_input_number(user, "Choose how transparent your character's horns are.", "Character Preference", + pref.read_preference(/datum/preference/numeric/human/ears_alpha/secondary), 255, 0) + if(new_ear_alpha) + pref.update_preference_by_type(/datum/preference/numeric/human/ears_alpha/secondary, new_ear_alpha) + return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["ear_secondary_style"]) var/new_style = tgui_input_list(user, "Select an ear style for this character:", "Character Preference", pref.get_available_styles(global.ear_styles_list), pref.ear_secondary_style) if(!new_style) @@ -1131,6 +1149,13 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.update_preference_by_type(/datum/preference/color/human/tail_color3, new_tailc3) return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["tail_alpha"]) + var/new_tail_alpha = tgui_input_number(user, "Choose how transparent your character's tail is.", "Character Preference", + pref.read_preference(/datum/preference/numeric/human/tail_alpha), 255, 0) + if(new_tail_alpha) + pref.update_preference_by_type(/datum/preference/numeric/human/tail_alpha, new_tail_alpha) + return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["wing_style"]) var/new_wing_style = tgui_input_list(user, "Select a wing style for this character:", "Character Preference", pref.get_available_styles(global.wing_styles_list), pref.wing_style) if(new_wing_style) @@ -1158,6 +1183,12 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O if(new_wingc) pref.update_preference_by_type(/datum/preference/color/human/wing_color3, new_wingc) return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["wing_alpha"]) + var/new_wing_alpha = tgui_input_number(user, "Choose how transparent your character's wings are.", "Character Preference", + pref.read_preference(/datum/preference/numeric/human/wing_alpha), 255, 0) + if(new_wing_alpha) + pref.update_preference_by_type(/datum/preference/numeric/human/wing_alpha, new_wing_alpha) + return TOPIC_REFRESH_UPDATE_PREVIEW return ..() /datum/category_item/player_setup_item/general/body/proc/reset_limbs() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 5051e43913..ac138a153a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -534,6 +534,9 @@ var/list/preferences_datums = list() var/datum/preference/color/wing_color3 = GLOB.preference_entries[/datum/preference/color/human/wing_color3] wing_color3.apply_pref_to(character, read_preference(/datum/preference/color/human/wing_color3)) + var/datum/preference/numeric/wing_alpha = GLOB.preference_entries[/datum/preference/numeric/human/wing_alpha] + wing_alpha.apply_pref_to(character,read_preference(/datum/preference/numeric/human/wing_alpha)) + character.set_gender(biological_gender) // Destroy/cyborgize organs and limbs. diff --git a/code/modules/client/preferences/types/character/general/03_body.dm b/code/modules/client/preferences/types/character/general/03_body.dm index 1e4215b516..3b2a1adde0 100644 --- a/code/modules/client/preferences/types/character/general/03_body.dm +++ b/code/modules/client/preferences/types/character/general/03_body.dm @@ -97,6 +97,19 @@ target.g_tail3 = hex2num(copytext(value, 4, 6)) target.b_tail3 = hex2num(copytext(value, 6, 8)) +/datum/preference/numeric/human/tail_alpha + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "tail_alpha" + can_randomize = FALSE + minimum = 0 + maximum = 255 + +/datum/preference/numeric/human/tail_alpha/apply_to_human(mob/living/carbon/human/target, value) + target.a_tail = value + +/datum/preference/numeric/human/tail_alpha/create_default_value() + return 255 //nada. /datum/preference/color/human/wing_color1 category = PREFERENCE_CATEGORY_MANUALLY_RENDERED @@ -131,6 +144,20 @@ target.g_wing3 = hex2num(copytext(value, 4, 6)) target.b_wing3 = hex2num(copytext(value, 6, 8)) +/datum/preference/numeric/human/wing_alpha + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "wing_alpha" + can_randomize = FALSE + minimum = 0 + maximum = 255 //while it'd be dumb to have fully transparent wings, I'm not your mom. + +/datum/preference/numeric/human/wing_alpha/create_default_value() + return 255 //no randomization here. + +/datum/preference/numeric/human/wing_alpha/apply_to_human(mob/living/carbon/human/target, value) + target.a_wing = value + /datum/preference/color/human/ears_color1 category = PREFERENCE_CATEGORY_MANUALLY_RENDERED @@ -164,3 +191,23 @@ target.r_ears3 = hex2num(copytext(value, 2, 4)) target.g_ears3 = hex2num(copytext(value, 4, 6)) target.b_ears3 = hex2num(copytext(value, 6, 8)) + +/datum/preference/numeric/human/ears_alpha + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "ears_alpha" + can_randomize = FALSE + minimum = 0 + maximum = 255 + +/datum/preference/numeric/human/ears_alpha/secondary + savefile_key = "secondary_ears_alpha" + +/datum/preference/numeric/human/ears_alpha/secondary/apply_to_human(mob/living/carbon/human/target, value) + target.a_ears2 = value; + +/datum/preference/numeric/human/ears_alpha/apply_to_human(mob/living/carbon/human/target, value) + target.a_ears = value + +/datum/preference/numeric/human/ears_alpha/create_default_value() + return 255 //no randomization here. diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 08f781288a..ecbf6b0a98 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -130,6 +130,8 @@ var/r_ears3 = 30 //Trust me, we could always use more colour. No japes. var/g_ears3 = 30 var/b_ears3 = 30 + var/a_ears = 255 //applied to the ears + var/a_ears2 = 255 //applied to the horns /// secondary ears sprite accessory reference var/datum/sprite_accessory/ears/ear_secondary_style @@ -146,6 +148,10 @@ var/r_tail3 = 30 var/g_tail3 = 30 var/b_tail3 = 30 + var/a_tail = 255 //applied to the entire tail + + var/wagging = 0 //UGH. + var/datum/sprite_accessory/wing/wing_style = null var/r_wing = 30 var/g_wing = 30 @@ -157,7 +163,8 @@ var/g_wing3 = 30 var/b_wing3 = 30 - var/wagging = 0 //UGH. + var/a_wing = 255 //applied to both portions. + var/flapping = 0 // Custom Species Name diff --git a/code/modules/mob/living/carbon/human/human_helpers_vr.dm b/code/modules/mob/living/carbon/human/human_helpers_vr.dm index 074979a1f0..2e205383ba 100644 --- a/code/modules/mob/living/carbon/human/human_helpers_vr.dm +++ b/code/modules/mob/living/carbon/human/human_helpers_vr.dm @@ -178,6 +178,7 @@ var/static/icon/ingame_hud_med_vr = icon('icons/mob/hud_med_vr.dmi') r_ears3 = character.r_ears3 b_ears3 = character.b_ears3 g_ears3 = character.g_ears3 + a_ears = character.a_ears tail_style = character.tail_style r_tail = character.r_tail @@ -189,6 +190,7 @@ var/static/icon/ingame_hud_med_vr = icon('icons/mob/hud_med_vr.dmi') r_tail3 = character.r_tail3 b_tail3 = character.b_tail3 g_tail3 = character.g_tail3 + a_tail = character.a_tail wing_style = character.wing_style r_wing = character.r_wing @@ -200,6 +202,7 @@ var/static/icon/ingame_hud_med_vr = icon('icons/mob/hud_med_vr.dmi') r_wing3 = character.r_wing3 b_wing3 = character.b_wing3 g_wing3 = character.g_wing3 + a_wing = character.a_wing var/bodytype = character.species?.get_bodytype() diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm index ca1657bf85..453771e90e 100644 --- a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm @@ -54,6 +54,10 @@ g_ears3 = new_color_rgb_list[2] b_ears3 = new_color_rgb_list[3] + var/new_ear_alpha = tgui_input_number(src, "Set ear alpha (0-255):","Ear Alpha", a_ears,255,0) + if(new_ear_alpha) + a_ears = new_ear_alpha + update_hair() //Includes Virgo ears /mob/living/carbon/human/proc/shapeshifter_select_secondary_ears() @@ -85,7 +89,9 @@ var/default = LAZYACCESS(ear_secondary_colors, channel) || "#ffffff" var/new_color = tgui_color_picker(src, "Pick [channel_name]", "Ear Color ([channel_name])", default) new_colors += new_color || default - + var/new_ear_alpha = tgui_input_number(src, "Set ear alpha (0-255):","Ear Alpha", a_ears2,255,0) + if(new_ear_alpha) + a_ears2 = new_ear_alpha update_hair() /mob/living/carbon/human/proc/shapeshifter_select_tail() @@ -140,6 +146,11 @@ g_tail3 = new_color_rgb_list[2] b_tail3 = new_color_rgb_list[3] + + var/new_tail_alpha = tgui_input_number(src, "Set tail alpha (0-255):","Tail Alpha", a_tail,255,0) + if(new_tail_alpha) + a_tail = new_tail_alpha + update_tail_showing() /mob/living/carbon/human/proc/shapeshifter_select_wings() @@ -194,6 +205,10 @@ g_wing3 = new_color_rgb_list[2] b_wing3 = new_color_rgb_list[3] + var/new_alpha = tgui_input_number(src, "Set wing alpha (0-255):","Wing Alpha", a_wing,255,0) + if(new_alpha) + a_wing = new_alpha + update_wing_showing() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 0c60b15d70..f96c8a2001 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -500,8 +500,8 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() if(head_organ.transparent) //VORESTATION EDIT: transparent instead of nonsolid face_standing += rgb(,,,120) - if (ears_s) - ears_s += rgb(,,,180) + //if (ears_s) //maybe cap this instead of removing it? ae, if your ears are above 180 a reduce it down? + //ears_s += rgb(,,,180) var/image/em_block_ears if(ears_s) @@ -1026,7 +1026,6 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() var/image/tail_image = get_tail_image() if(tail_image) tail_image.layer = BODY_LAYER+tail_layer - tail_image.alpha = chest?.transparent ? 180 : 255 //VORESTATION EDIT: transparent instead of nonsolid overlays_standing[tail_layer] = tail_image apply_layer(tail_layer) return @@ -1037,7 +1036,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() if(species_tail && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) var/icon/tail_s = get_tail_icon() tail_image = image(icon = tail_s, icon_state = "[species_tail]_s", layer = BODY_LAYER+tail_layer) - tail_image.alpha = chest?.transparent ? 180 : 255 //VORESTATION EDIT: transparent instead of nonsolid + tail_image.alpha = chest?.transparent ? 180 : 255 //VORESTATION EDIT: transparent instead of nonsolid //keeping this as is overlays_standing[tail_layer] = tail_image animate_tail_reset() @@ -1146,7 +1145,6 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() if(wing_image) wing_image.layer = BODY_LAYER+WING_LAYER - wing_image.alpha = chest?.transparent ? 180 : 255 //VORESTATION EDIT: transparent instead of nonsolid overlays_standing[WING_LAYER] = wing_image if(wing_style && wing_style.multi_dir) wing_image = get_wing_image(TRUE) @@ -1265,6 +1263,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() wing_s.Blend(overlay, ICON_OVERLAY) qdel(overlay) var/image/working = image(wing_s) + working.alpha = src.a_wing if(wing_style.em_block) working.overlays += em_block_image_generic(working) // Leaving this as overlays += working.pixel_x -= wing_style.wing_offset @@ -1295,6 +1294,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() ears_s.Blend(overlay, ICON_OVERLAY) qdel(overlay) rendered = ears_s + rendered += rgb(,,,src.a_ears) //idk why this isn't an img but there's surely a good reason // todo: this is utterly horrible but i don't think i should be violently refactoring sprite acc rendering in a feature PR ~silicons if(ear_secondary_style && !(head && (head.flags_inv & BLOCKHEADHAIR))) @@ -1317,6 +1317,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() overlay.Blend(color, ear_secondary_style.color_blend_mode) ears_s.Blend(overlay, ICON_OVERLAY) qdel(overlay) + ears_s += rgb(,,,src.a_ears2) if(!rendered) rendered = ears_s else @@ -1378,6 +1379,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon() else if(islongtail(tail_style)) working.pixel_x = tail_style.offset_x working.pixel_y = tail_style.offset_y + working.alpha = src.a_tail return working return null diff --git a/code/modules/tgui/modules/appearance_changer.dm b/code/modules/tgui/modules/appearance_changer.dm index c71545e140..fa693a01ac 100644 --- a/code/modules/tgui/modules/appearance_changer.dm +++ b/code/modules/tgui/modules/appearance_changer.dm @@ -263,6 +263,23 @@ owner.update_hair() changed_hook(APPEARANCECHANGER_CHANGED_HAIRCOLOR) return 1 + if("ears_alpha") + var/new_alpha = clamp(params["ears_alpha"], 0, 255) + if(isnum(new_alpha) && can_still_topic(ui.user, state)) + owner.a_ears = new_alpha + update_dna(owner) + owner.update_hair() + changed_hook(APPEARANCECHANGER_CHANGED_HAIRCOLOR) + return 1 + if("secondary_ears_alpha") + var/new_alpha = clamp(params["secondary_ears_alpha"], 0, 255) + if(isnum(new_alpha) && can_still_topic(ui.user, state)) + owner.a_ears2 = new_alpha + update_dna(owner) + owner.update_hair() + changed_hook(APPEARANCECHANGER_CHANGED_HAIRCOLOR) + return 1 + if("ears_secondary_color") if(can_change(owner, APPEARANCE_HAIR_COLOR)) var/channel = params["channel"] @@ -321,6 +338,15 @@ owner.update_tail_showing() changed_hook(APPEARANCECHANGER_CHANGED_HAIRCOLOR) return 1 + if("tail_alpha") + var/new_alpha = clamp(params["tail_alpha"], 0, 255) + if(isnum(new_alpha) && can_still_topic(ui.user, state)) + owner.a_tail = new_alpha + update_dna(owner) + owner.update_tail_showing() + changed_hook(APPEARANCECHANGER_CHANGED_HAIRCOLOR) + return 1 + if("wing") if(can_change(owner, APPEARANCE_ALL_HAIR)) var/datum/sprite_accessory/wing/instance = locate(params["ref"]) @@ -366,6 +392,16 @@ owner.update_wing_showing() changed_hook(APPEARANCECHANGER_CHANGED_HAIRCOLOR) return 1 + + if("wing_alpha") + var/new_alpha = clamp(params["wing_alpha"], 0, 255) + if(isnum(new_alpha) && can_still_topic(ui.user, state)) + owner.a_wing = new_alpha + update_dna(owner) + owner.update_wing_showing() + changed_hook(APPEARANCECHANGER_CHANGED_HAIRCOLOR) + return 1 + if("marking") if(can_change(owner, APPEARANCE_ALL_HAIR)) var/todo = params["todo"] @@ -812,6 +848,10 @@ data["wing_color"] = rgb(owner.r_wing, owner.g_wing, owner.b_wing) data["wing2_color"] = rgb(owner.r_wing2, owner.g_wing2, owner.b_wing2) data["wing3_color"] = rgb(owner.r_wing3, owner.g_wing3, owner.b_wing3) + data["wing_alpha"] = owner.a_wing + data["tail_alpha"] = owner.a_tail + data["ears_alpha"] = owner.a_ears + data["secondary_ears_alpha"] = owner.a_ears2 data["change_facial_hair_color"] = can_change(owner, APPEARANCE_FACIAL_HAIR_COLOR) if(data["change_facial_hair_color"]) diff --git a/code/modules/vore/persist/persist_vr.dm b/code/modules/vore/persist/persist_vr.dm index b60441312d..ae68baab39 100644 --- a/code/modules/vore/persist/persist_vr.dm +++ b/code/modules/vore/persist/persist_vr.dm @@ -138,6 +138,7 @@ prefs.update_preference_by_type(/datum/preference/color/human/ears_color1, rgb(character.r_ears, character.g_ears, character.b_ears)) prefs.update_preference_by_type(/datum/preference/color/human/ears_color2, rgb(character.r_ears2, character.g_ears2, character.b_ears2)) prefs.update_preference_by_type(/datum/preference/color/human/ears_color3, rgb(character.r_ears3, character.g_ears3, character.b_ears3)) + prefs.update_preference_by_type(/datum/preference/numeric/human/ears_alpha, character.a_ears) // secondary ears prefs.ear_secondary_style = character.ear_secondary_style?.name @@ -146,11 +147,13 @@ prefs.update_preference_by_type(/datum/preference/color/human/tail_color1, rgb(character.r_tail, character.g_tail, character.b_tail)) prefs.update_preference_by_type(/datum/preference/color/human/tail_color2, rgb(character.r_tail2, character.g_tail2, character.b_tail2)) prefs.update_preference_by_type(/datum/preference/color/human/tail_color3, rgb(character.r_tail3, character.g_tail3, character.b_tail3)) + prefs.update_preference_by_type(/datum/preference/numeric/human/tail_alpha, character.a_tail) // TODO: This will break if update_preference_by_type starts to respect is_accessible prefs.update_preference_by_type(/datum/preference/color/human/wing_color1, rgb(character.r_wing, character.g_wing, character.b_wing)) prefs.update_preference_by_type(/datum/preference/color/human/wing_color2, rgb(character.r_wing2, character.g_wing2, character.b_wing2)) prefs.update_preference_by_type(/datum/preference/color/human/wing_color3, rgb(character.r_wing3, character.g_wing3, character.b_wing3)) + prefs.update_preference_by_type(/datum/preference/numeric/human/wing_alpha, character.a_wing) prefs.custom_species = character.custom_species prefs.digitigrade = character.digitigrade diff --git a/tgui/packages/tgui/interfaces/AppearanceChanger/AppearanceChangerDetails.tsx b/tgui/packages/tgui/interfaces/AppearanceChanger/AppearanceChangerDetails.tsx index eca0f2f93f..34ba2ad031 100644 --- a/tgui/packages/tgui/interfaces/AppearanceChanger/AppearanceChangerDetails.tsx +++ b/tgui/packages/tgui/interfaces/AppearanceChanger/AppearanceChangerDetails.tsx @@ -8,6 +8,7 @@ import { ImageButton, Input, LabeledList, + NumberInput, Section, Stack, Tabs, @@ -37,12 +38,16 @@ export const AppearanceChangerColors = (props) => { facial_hair_color, ears_color, ears2_color, + ears_alpha, + secondary_ears_alpha, tail_color, tail2_color, tail3_color, + tail_alpha, wing_color, wing2_color, wing3_color, + wing_alpha, ear_secondary_colors, hair_grads, } = data; @@ -108,6 +113,16 @@ export const AppearanceChangerColors = (props) => { Change Ears Color (Secondary) + + Ears Alpha:{' '} + act('ears_alpha', { ears_alpha: val })} + /> + {ear_secondary_colors.map((color, index) => ( @@ -121,6 +136,18 @@ export const AppearanceChangerColors = (props) => { ))} + + Horns Alpha:{' '} + + act('secondary_ears_alpha', { secondary_ears_alpha: val }) + } + /> + @@ -137,6 +164,16 @@ export const AppearanceChangerColors = (props) => { Change Tertiary Tail Color + + Tail Alpha:{' '} + act('tail_alpha', { tail_alpha: val })} + /> + @@ -153,6 +190,16 @@ export const AppearanceChangerColors = (props) => { Change Tertiary Wing Color + + Wing Alpha:{' '} + act('wing_alpha', { wing_alpha: val })} + /> + ) : null} {change_facial_hair_color ? ( diff --git a/tgui/packages/tgui/interfaces/AppearanceChanger/types.ts b/tgui/packages/tgui/interfaces/AppearanceChanger/types.ts index a958e1de44..1b272e6646 100644 --- a/tgui/packages/tgui/interfaces/AppearanceChanger/types.ts +++ b/tgui/packages/tgui/interfaces/AppearanceChanger/types.ts @@ -35,12 +35,16 @@ export type Data = { facial_hair_color: string; ears_color: string; ears2_color: string; + ears_alpha: number; + secondary_ears_alpha: number; tail_color: string; tail2_color: string; tail3_color: string; + tail_alpha: number; wing_color: string; wing2_color: string; wing3_color: string; + wing_alpha: number; facial_hair_styles: bodyStyle[]; hair_styles: bodyStyle[]; hair_grads: string[];