diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index b2dfae05444..0406099616a 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -3,6 +3,7 @@ */ var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears indexed by type +var/global/list/hair_accesories_list= list()// Stores /datum/sprite_accessory/hair_accessory indexed by type var/global/list/tail_styles_list = list() // Stores /datum/sprite_accessory/tail indexed by type var/global/list/wing_styles_list = list() // Stores /datum/sprite_accessory/wing indexed by type var/global/list/negative_traits = list() // Negative custom species traits, indexed by path @@ -451,6 +452,12 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN, var/datum/sprite_accessory/wing/instance = new path() wing_styles_list[path] = instance + // Custom Hair Accessories + paths = typesof(/datum/sprite_accessory/hair_accessory) - /datum/sprite_accessory/hair_accessory + for(var/path in paths) + var/datum/sprite_accessory/hair_accessory/instance = new path() + hair_accesories_list[path] = instance + // Custom species traits paths = typesof(/datum/trait) - /datum/trait for(var/path in paths) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 96c6fdbd671..7401a5674a5 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -408,6 +408,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() //Reset our hair remove_layer(HAIR_LAYER) + remove_layer(HAIR_ACCESSORY_LAYER) //VOREStation Edit update_eyes() //Pirated out of here, for glowing eyes. var/obj/item/organ/external/head/head_organ = get_organ(BP_HEAD) @@ -456,7 +457,20 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() var/icon/ears_s = get_ears_overlay() if(ears_s) face_standing.Blend(ears_s, ICON_OVERLAY) - to_chat(src, "getting hair accessory...") + if(istype(head_organ,/obj/item/organ/external/head/vr)) + var/obj/item/organ/external/head/vr/head_organ_vr = head_organ + overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER, "pixel_y" = head_organ_vr.head_offset) + apply_layer(HAIR_LAYER) + return + // VOREStation Edit - END + + if(head_organ.transparent) //VOREStation Edit. For better slime limbs. + face_standing += rgb(,,,120) + + overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER) + apply_layer(HAIR_LAYER) + + // VOREStation Edit - START var/icon/hair_acc_s = get_hair_accessory_overlay() var/image/hair_acc_s_image = null to_chat(src, "checking for hair_acc_s...") @@ -467,32 +481,20 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() hair_acc_s_image = image(hair_acc_s) hair_acc_s_image.plane = PLANE_LIGHTING_ABOVE hair_acc_s_image.appearance_flags = appearance_flags - if(istype(head_organ,/obj/item/organ/external/head/vr)) - var/obj/item/organ/external/head/vr/head_organ_vr = head_organ - overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER, "pixel_y" = head_organ_vr.head_offset) - apply_layer(HAIR_LAYER) - to_chat(src, "checking for hair_acc_s in the head organ check...") - if(hair_acc_s) - to_chat(src, "hair_acc_s found!") - to_chat(src, "checking for hair_acc_s_image...") - if (hair_acc_s_image) - to_chat(src, "hair_acc_s_image found!") - overlays_standing[HAIR_ACCESSORY_LAYER] = hair_acc_s_image - apply_layer(HAIR_ACCESSORY_LAYER) - return - to_chat(src, "no hair_acc_s_image! wat.") - overlays_standing[HAIR_ACCESSORY_LAYER] = hair_acc_s + to_chat(src, "hair_acc_s found!") + to_chat(src, "checking for hair_acc_s_image...") + if (hair_acc_s_image) + to_chat(src, "hair_acc_s_image found!") + overlays_standing[HAIR_ACCESSORY_LAYER] = hair_acc_s_image to_chat(src, "applying hair_acc_s!") apply_layer(HAIR_ACCESSORY_LAYER) - return + return + to_chat(src, "no hair_acc_s_image! wat.") + overlays_standing[HAIR_ACCESSORY_LAYER] = image(hair_acc_s, layer = BODY_LAYER+HAIR_ACCESSORY_LAYER) + to_chat(src, "applying hair_acc_s!") + apply_layer(HAIR_ACCESSORY_LAYER) // VOREStation Edit - END - if(head_organ.transparent) //VOREStation Edit. For better slime limbs. - face_standing += rgb(,,,120) - - overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER) - apply_layer(HAIR_LAYER) - /mob/living/carbon/human/update_eyes() if(QDESTROYING(src)) return diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index b8fb21f261f..0bf95147634 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -2041,8 +2041,6 @@ var/ignores_lighting = 0 // Whether or not this hair accessory will ignore lighting and glow in the dark. var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 - var/extra_overlay // Icon state of an additional overlay to blend in. - var/extra_overlay2 var/desc = "You should not see this..." /datum/sprite_accessory/hair_accessory/verie_hair_glow diff --git a/code/modules/vore/appearance/update_icons_vr.dm b/code/modules/vore/appearance/update_icons_vr.dm index 2cd8311b2cf..de44a0bd567 100644 --- a/code/modules/vore/appearance/update_icons_vr.dm +++ b/code/modules/vore/appearance/update_icons_vr.dm @@ -21,26 +21,11 @@ var/global/list/wing_icon_cache = list() return null /mob/living/carbon/human/proc/get_hair_accessory_overlay() - to_chat(src, "starting get_hair_accessory_overlay()...") if(hair_accessory_style && !(head && (head.flags_inv & BLOCKHEADHAIR))) - to_chat(src, "found hair accessory style! and ur head's intact. nice") var/icon/hair_acc_s = icon(hair_accessory_style.icon, hair_accessory_style.icon_state) - to_chat(src, "hair_acc_s set!") if(hair_accessory_style.do_colouration) hair_acc_s.Blend(rgb(src.r_ears, src.g_ears, src.b_ears), hair_accessory_style.color_blend_mode) - if(hair_accessory_style.extra_overlay) - var/icon/overlay = icon(hair_accessory_style.icon, hair_accessory_style.extra_overlay) - overlay.Blend(rgb(src.r_ears2, src.g_ears2, src.b_ears2), hair_accessory_style.color_blend_mode) - hair_acc_s.Blend(overlay, ICON_OVERLAY) - qdel(overlay) - - if(hair_accessory_style.extra_overlay2) //MORE COLOURS IS BETTERER - var/icon/overlay = icon(hair_accessory_style.icon, hair_accessory_style.extra_overlay2) - overlay.Blend(rgb(src.r_ears3, src.g_ears3, src.b_ears3), hair_accessory_style.color_blend_mode) - hair_acc_s.Blend(overlay, ICON_OVERLAY) - qdel(overlay) - to_chat(src, "get_hair_accessory_overlay() completed!") return hair_acc_s return null diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index fbe9e2d92c0..36e769a082e 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -2274,7 +2274,8 @@ Departamental Swimsuits, for general use name = "salaciously stylised suit" desc = "It's kind of difficult to identify the type of material that makes up this form-fitting suit. It is stretchy and flexible, but \ is firm in its toughness, and clings tightly to the skin. Come to think of it, it glistens quite a bit in the light and- \ - oh god it's latex." + oh god it's latex.\ + \n... A Verie appropriate material choice indeed." //the wordplay never ends icon = 'icons/vore/custom_clothes_vr.dmi' icon_state = "veriesuit" @@ -2283,8 +2284,4 @@ Departamental Swimsuits, for general use body_parts_covered = UPPER_TORSO|LOWER_TORSO|FEET|ARMS|HANDS -/obj/item/clothing/under/fluff/verie/examine(mob/user) - //the wordplay never ends - . = ..() - . += "... A Verie appropriate material choice indeed." diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index 57102f0486c..37d9c95f51a 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -1376,13 +1376,26 @@ this device was not made for people like you.") return - user.hair_accessory_style = /datum/sprite_accessory/hair_accessory/verie_hair_glow - user.update_hair() - user.visible_message("[user] combs her hair. \The [src] leaves behind glowing cyan highlights as it passes through \ - her black strands.", \ - "You brush your hair. \The [src]'s teeth begin to vibrate and glow as they react to your nanites. \ - The teeth stimulate the nanites in your hair strands until your hair give off a brilliant, faintly pulsing \ - cyan glow!") + if (!user.hair_accessory_style) + var/datum/sprite_accessory/hair_accessory/verie_hair_glow/V = new(user) + user.hair_accessory_style = V + user.update_hair() + user.visible_message("[user] combs her hair. \The [src] leaves behind glowing cyan highlights as it passes through \ + her black strands.", \ + "You brush your hair. \The [src]'s teeth begin to vibrate and glow as they react to your nanites. \ + The teeth stimulate the nanites in your hair strands until your hair give off a brilliant, faintly pulsing \ + cyan glow!") + + else + user.visible_message("[user] combs her hair. \The [src] brushes away her glowing cyan highlights. Neat!", \ + "You brush your hair. \The [src]'s teeth wipe away the glowing streaks in your hair \ + like a sponge scrubbing away a stain.") + user.hair_accessory_style = null + for(var/datum/sprite_accessory/hair_accessory/verie_hair_glow/V in user) + to_chat(user, "found a V to delete!") + qdel(V) + user.update_hair() + else to_chat(user, "\The [src] isn't compatible with your body as it is now.") diff --git a/icons/mob/vore/hair_accessories_vr.dmi b/icons/mob/vore/hair_accessories_vr.dmi index e519a6e445a..4411f5c00c5 100644 Binary files a/icons/mob/vore/hair_accessories_vr.dmi and b/icons/mob/vore/hair_accessories_vr.dmi differ