begins adding Verie's hair brush and a framework to support hair accessories

This commit is contained in:
Amy
2020-12-05 20:54:01 -06:00
parent 3e11834cc8
commit 19a2a70175
7 changed files with 129 additions and 1 deletions
@@ -455,6 +455,9 @@ 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)
var/icon/hair_acc_s = get_hair_accessory_overlay()
if(hair_acc_s)
face_standing.Blend(hair_acc_s, ICON_OVERLAY)
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)
@@ -10,6 +10,16 @@
/mob/living/carbon/human
// Horray Furries!
var/datum/sprite_accessory/hair_accessory/hair_accessory_style = null
var/r_acc = 30
var/g_acc = 30
var/b_acc = 30
var/r_acc2 = 30
var/g_acc2 = 30
var/b_acc2 = 30
var/r_acc3 = 30
var/g_acc3 = 30
var/b_acc3 = 30
var/datum/sprite_accessory/ears/ear_style = null
var/r_ears = 30
var/g_ears = 30
@@ -2022,3 +2022,33 @@
icon_state = "xenotailalt_fullcolour"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/*
////////////////////////////
/ =--------------------= /
/ == Misc Definitions == /
/ =--------------------= /
////////////////////////////
*/
// Yes, I have to add all of this just to make some glowy hair.
// No, this isn't a character creation option, but... I guess in the future it could be, if anyone wants that?
/datum/sprite_accessory/hair_accessory
name = "You should not see this..."
icon = 'icons/mob/vore/hair_accessories.dmi'
do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color
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
name = "verie's hair glow"
desc = ""
icon_state = "verie_hair_glow"
ignores_lighting = 1
ckeys_allowed = list("vitoras") // This probably won't come into play EVER but better safe than sorry
@@ -20,6 +20,57 @@ var/global/list/wing_icon_cache = list()
return ears_s
return null
/mob/living/carbon/human/proc/get_hair_accessory_overlay()
if(hair_accessory_style && !(head && (head.flags_inv & BLOCKHEADHAIR)))
if(hair_accessory_style.ignores_lighting)
var/image/hair_acc_s = get_hair_accessory_glow_image()
hair_acc_s.plane = PLANE_LIGHTING_ABOVE
return hair_acc_s
else
var/icon/hair_acc_s = get_hair_accessory_icon()
return hair_acc_s
return null
/mob/living/carbon/human/proc/get_hair_accessory_icon()
var/icon/hair_acc_s = new/icon("icon" = hair_accessory_style.icon, "icon_state" = hair_accessory_style.icon_state)
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 = new/icon("icon" = hair_accessory_style.icon, "icon_state" = 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 = new/icon("icon" = hair_accessory_style.icon, "icon_state" = 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)
return hair_acc_s
/mob/living/carbon/human/proc/get_hair_accessory_glow_image()
var/image/hair_acc_s = new/image("icon" = hair_accessory_style.icon, "icon_state" = hair_accessory_style.icon_state)
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)
hair_accessory_style.plane = PLANE_LIGHTING_ABOVE
if(hair_accessory_style.extra_overlay)
var/image/overlay = new/image("icon" = hair_accessory_style.icon, "icon_state" = hair_accessory_style.extra_overlay)
overlay.Blend(rgb(src.r_ears2, src.g_ears2, src.b_ears2), hair_accessory_style.color_blend_mode)
overlay.plane = PLANE_LIGHTING_ABOVE
hair_acc_s.Blend(overlay, ICON_OVERLAY)
qdel(overlay)
if(hair_accessory_style.extra_overlay2) //MORE COLOURS IS BETTERER
var/image/overlay = new/image("icon" = hair_accessory_style.icon, "icon_state" = hair_accessory_style.extra_overlay2)
overlay.Blend(rgb(src.r_ears3, src.g_ears3, src.b_ears3), hair_accessory_style.color_blend_mode)
overlay.plane = PLANE_LIGHTING_ABOVE
hair_acc_s.Blend(overlay, ICON_OVERLAY)
qdel(overlay)
return hair_acc_s
/mob/living/carbon/human/proc/get_tail_image()
//If you are FBP with tail style and didn't set a custom one
var/datum/robolimb/model = isSynthetic()
@@ -103,6 +154,7 @@ var/global/list/wing_icon_cache = list()
return image(wing_s)
// TODO - Move this to where it should go ~Leshana
/mob/proc/stop_flying()
if(QDESTROYING(src))
@@ -1354,4 +1354,37 @@
/obj/item/weapon/reagent_containers/food/drinks/glass2/fluff/claraflask/update_icon()
..()
name = initial(name)
desc = initial(desc)
desc = initial(desc)
//Vitoras: Verie
/obj/item/weapon/fluff/verie
name = "glowy hairbrush"
desc = "A pulse of light periodically zips across the top of this blue brush. This... is not an ordinary hair care tool. \
A small inscription can be seen in one side of the brush: \"THIS DEVICE IS ONLY COMPATIBLE WITH MODEL <b>RI</b> \
POSITRONICS IN A MODEL <b>E</b> CHASSIS.\""
icon = 'icons/vore/custom_items_vr.dmi'
icon_state = "verie_brush"
var/owner = "vitoras"
/obj/item/weapon/fluff/verie/attack_self(mob/living/carbon/human/user)
if (istype(user))
// It's only made for Verie's chassis silly!
if (user.ckey != owner)
to_chat(user, "<span class='warning'>The brush's teeth are far too rough to even comb your hair. Apparently, \
this device was not made for people like you.</span>")
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.", \
"<span class='notice'>You brush your hair. The teeth react to your nanites and stimulate them into giving off a brillian cyan glow!</span>")
return
else
to_chat(user, "<span class='warning'>\The [src] isn't compatible with your body as it is now.</span>")