mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
facepaint (#35286)
This commit is contained in:
@@ -488,7 +488,10 @@ var/list/all_supply_groups = list("Supplies","Clothing","Security","Hospitality"
|
|||||||
|
|
||||||
/datum/supply_packs/spookycostume
|
/datum/supply_packs/spookycostume
|
||||||
name = "Halloween costumes"
|
name = "Halloween costumes"
|
||||||
contains = list(/obj/item/clothing/suit/space/plasmaman/moltar,
|
contains = list(
|
||||||
|
/obj/item/weapon/facepaint_spray,
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/space/plasmaman/moltar,
|
||||||
/obj/item/clothing/head/helmet/space/plasmaman/moltar,
|
/obj/item/clothing/head/helmet/space/plasmaman/moltar,
|
||||||
/obj/item/clothing/head/snake,
|
/obj/item/clothing/head/snake,
|
||||||
/obj/item/clothing/head/franken_bolt,
|
/obj/item/clothing/head/franken_bolt,
|
||||||
|
|||||||
@@ -139,14 +139,83 @@
|
|||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>Where are the eyes on that?</span>")
|
to_chat(user, "<span class='notice'>Where are the eyes on that?</span>")
|
||||||
|
|
||||||
//you can wipe off eyeshadow with paper!
|
/obj/item/weapon/facepaint_spray
|
||||||
|
name = "face paint spray"
|
||||||
|
desc = "A can of Dr. Frankenstein's instant facepaint. There is a dial on the top for pattern selection."
|
||||||
|
icon = 'icons/obj/items.dmi'
|
||||||
|
icon_state = "face_paint"
|
||||||
|
flags = FPRINT
|
||||||
|
w_class = W_CLASS_TINY
|
||||||
|
|
||||||
|
var/selected_pattern = 1
|
||||||
|
var/list/pattern_list = list(
|
||||||
|
"Deathly Pallor" = "pallor",
|
||||||
|
"Zombie Fever" = "zombie",
|
||||||
|
"Martian Menace" = "alien",
|
||||||
|
"Impish Visage" = "devil"
|
||||||
|
)
|
||||||
|
|
||||||
|
/obj/item/weapon/facepaint_spray/attack(mob/M, mob/user)
|
||||||
|
if(!istype(M, /mob))
|
||||||
|
return
|
||||||
|
|
||||||
|
if(ishuman(M))
|
||||||
|
var/mob/living/carbon/human/H = M
|
||||||
|
if(H.face_style) //if they already have facepaint on
|
||||||
|
to_chat(user, "<span class='notice'>You need to wipe off the old facepaint first!</span>")
|
||||||
|
return
|
||||||
|
|
||||||
|
var/pattern = pattern_list[pattern_list[selected_pattern]]
|
||||||
|
|
||||||
|
if(H == user)
|
||||||
|
user.visible_message("<span class='notice'>[user] sprays their face with \the [src].</span>", \
|
||||||
|
"<span class='notice'>You shut your eyes and spray your face with \the [src], trying not to inhale any paint.</span>")
|
||||||
|
H.face_style = pattern
|
||||||
|
H.update_body()
|
||||||
|
|
||||||
|
else
|
||||||
|
user.visible_message("<span class='warning'>[user] begins to spray [H]'s face with \the [src].</span>", \
|
||||||
|
"<span class='notice'>You begin to apply \the [src].</span>")
|
||||||
|
if(do_after(user,H, 20)) //user needs to keep their active hand, H does not.
|
||||||
|
user.visible_message("<span class='notice'>[user] does [H]'s eyes with \the [src].</span>", \
|
||||||
|
"<span class='notice'>You apply \the [src].</span>")
|
||||||
|
H.face_style = pattern
|
||||||
|
H.update_body()
|
||||||
|
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='notice'>Where are the eyes on that?</span>")
|
||||||
|
|
||||||
|
/obj/item/weapon/facepaint_spray/attack_self(mob/user as mob)
|
||||||
|
selected_pattern += 1
|
||||||
|
selected_pattern = selected_pattern > pattern_list.len ? 1 : selected_pattern
|
||||||
|
to_chat(user, "<span class='notice'>You set the spray to \"[pattern_list[selected_pattern]]\" mode</span>")
|
||||||
|
|
||||||
|
/obj/item/weapon/facepaint_spray/examine(mob/user, size, show_name)
|
||||||
|
. = ..()
|
||||||
|
to_chat(user, "<span class='notice'>It is set to \"[pattern_list[selected_pattern]]\" mode</span>")
|
||||||
|
|
||||||
|
//you can wipe off makeup with paper!
|
||||||
/obj/item/weapon/paper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
/obj/item/weapon/paper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||||
if(!ishuman(M))
|
if(!ishuman(M))
|
||||||
return
|
return
|
||||||
|
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
|
|
||||||
if(user.zone_sel.selecting == "eyes")
|
if(user.zone_sel.selecting == "head")
|
||||||
|
if(H == user)
|
||||||
|
to_chat(user, "<span class='notice'>You wipe off the face paint with [src].</span>")
|
||||||
|
H.face_style = null
|
||||||
|
H.update_body()
|
||||||
|
else
|
||||||
|
user.visible_message("<span class='warning'>[user] begins to wipe [H]'s face paint off with \the [src].</span>", \
|
||||||
|
"<span class='notice'>You begin to wipe off [H]'s face paint .</span>")
|
||||||
|
if(do_after(user, H, 10) && do_after(H, null, 10, 5, 0)) //user needs to keep their active hand, H does not.
|
||||||
|
user.visible_message("<span class='notice'>[user] wipes [H]'s face paint off with \the [src].</span>", \
|
||||||
|
"<span class='notice'>You wipe off [H]'s face paint .</span>")
|
||||||
|
H.face_style = null
|
||||||
|
H.update_body()
|
||||||
|
|
||||||
|
else if(user.zone_sel.selecting == "eyes")
|
||||||
if(H == user)
|
if(H == user)
|
||||||
to_chat(user, "<span class='notice'>You wipe off the eyeshadow with [src].</span>")
|
to_chat(user, "<span class='notice'>You wipe off the eyeshadow with [src].</span>")
|
||||||
H.eye_style = null
|
H.eye_style = null
|
||||||
@@ -159,6 +228,7 @@
|
|||||||
"<span class='notice'>You wipe off [H]'s eyeshadow.</span>")
|
"<span class='notice'>You wipe off [H]'s eyeshadow.</span>")
|
||||||
H.eye_style = null
|
H.eye_style = null
|
||||||
H.update_body()
|
H.update_body()
|
||||||
|
|
||||||
else if(user.zone_sel.selecting == "mouth")
|
else if(user.zone_sel.selecting == "mouth")
|
||||||
if(H == user)
|
if(H == user)
|
||||||
to_chat(user, "<span class='notice'>You wipe off the lipstick with [src].</span>")
|
to_chat(user, "<span class='notice'>You wipe off the lipstick with [src].</span>")
|
||||||
|
|||||||
@@ -1913,6 +1913,7 @@
|
|||||||
var/static/list/resettable_vars = list(
|
var/static/list/resettable_vars = list(
|
||||||
"lip_style",
|
"lip_style",
|
||||||
"eye_style",
|
"eye_style",
|
||||||
|
"face_style",
|
||||||
"wear_suit",
|
"wear_suit",
|
||||||
"w_uniform",
|
"w_uniform",
|
||||||
"shoes",
|
"shoes",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
|
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
|
||||||
var/eye_style = null
|
var/eye_style = null
|
||||||
|
var/face_style = null
|
||||||
|
|
||||||
mob_bump_flag = HUMAN
|
mob_bump_flag = HUMAN
|
||||||
mob_push_flags = ALLMOBS
|
mob_push_flags = ALLMOBS
|
||||||
|
|||||||
@@ -277,12 +277,16 @@ var/global/list/damage_icon_parts = list()
|
|||||||
eyes.Blend(rgb(my_appearance.r_eyes, my_appearance.g_eyes, my_appearance.b_eyes), ICON_ADD)
|
eyes.Blend(rgb(my_appearance.r_eyes, my_appearance.g_eyes, my_appearance.b_eyes), ICON_ADD)
|
||||||
stand_icon.Blend(eyes, ICON_OVERLAY)
|
stand_icon.Blend(eyes, ICON_OVERLAY)
|
||||||
|
|
||||||
|
|
||||||
|
if (face_style)
|
||||||
|
stand_icon.Blend(new/icon('icons/mob/makeup.dmi', "facepaint_[face_style]_s"), ICON_OVERLAY)
|
||||||
|
|
||||||
//Mouth (lipstick!)
|
//Mouth (lipstick!)
|
||||||
if(lip_style)
|
if(lip_style)
|
||||||
stand_icon.Blend(new/icon('icons/mob/hair_styles.dmi', "lips_[lip_style]_s"), ICON_OVERLAY)
|
stand_icon.Blend(new/icon('icons/mob/makeup.dmi', "lips_[lip_style]_s"), ICON_OVERLAY)
|
||||||
|
|
||||||
if(eye_style)
|
if(eye_style)
|
||||||
stand_icon.Blend(new/icon('icons/mob/hair_styles.dmi', "eyeshadow_[eye_style]_light_s"), ICON_OVERLAY)
|
stand_icon.Blend(new/icon('icons/mob/makeup.dmi', "eyeshadow_[eye_style]_light_s"), ICON_OVERLAY)
|
||||||
|
|
||||||
|
|
||||||
//Underwear
|
//Underwear
|
||||||
@@ -1494,11 +1498,15 @@ var/global/list/damage_icon_parts = list()
|
|||||||
eyes_l.Blend(rgb(my_appearance.r_eyes, my_appearance.g_eyes, my_appearance.b_eyes), ICON_ADD)
|
eyes_l.Blend(rgb(my_appearance.r_eyes, my_appearance.g_eyes, my_appearance.b_eyes), ICON_ADD)
|
||||||
face_lying.Blend(eyes_l, ICON_OVERLAY)
|
face_lying.Blend(eyes_l, ICON_OVERLAY)
|
||||||
|
|
||||||
|
|
||||||
|
if (face_style)
|
||||||
|
stand_icon.Blend(new/icon('icons/mob/makeup.dmi', "facepaint_[face_style]_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
if(lip_style)
|
if(lip_style)
|
||||||
face_lying.Blend(new/icon('icons/mob/hair_styles.dmi', "lips_[lip_style]_l"), ICON_OVERLAY)
|
face_lying.Blend(new/icon('icons/mob/makeup.dmi', "lips_[lip_style]_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
if(eye_style)
|
if(eye_style)
|
||||||
face_lying.Blend(new/icon('icons/mob/hair_styles.dmi', "eyeshadow_[eye_style]_light_l"), ICON_OVERLAY)
|
face_lying.Blend(new/icon('icons/mob/makeup.dmi', "eyeshadow_[eye_style]_light_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
var/image/face_lying_image = new /image(icon = face_lying)
|
var/image/face_lying_image = new /image(icon = face_lying)
|
||||||
return face_lying_image
|
return face_lying_image
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 163 KiB |
BIN
icons/mob/makeup.dmi
Normal file
BIN
icons/mob/makeup.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Reference in New Issue
Block a user