This commit is contained in:
jellyveggie2
2023-10-30 03:29:21 +01:00
committed by GitHub
parent b67f7dc6e9
commit 8eacc04c6f
8 changed files with 90 additions and 7 deletions

View File

@@ -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,

View File

@@ -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>")

View File

@@ -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",

View File

@@ -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

View File

@@ -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

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