[MIRROR] Allows you to choose between three lipstick styles [MDB IGNORE] (#24275)

* Allows you to choose between three lipstick styles (#78750)

## About The Pull Request

Somehow the lipstick sprite got messed up and was a pixel lower than it
should have been, ending up on the chin instead of the lips.

Edit: I just found https://github.com/tgstation/tgstation/pull/55281 in
the history and now I'm not sure anymore...

I've instead opted into making three different lipstick styles with a
radial to select which one you want to put on your face. You can change
styles via alt click. This way if you want to have it lower like Queen
Amidala you can, or higher if you're like me and think that looks
better.

![dreamseeker_rAdQi13WZ2](https://github.com/tgstation/tgstation/assets/13398309/a8b8f69f-0d90-4130-8433-09b5df7c8372)

![dreamseeker_h2kUUGppud](https://github.com/tgstation/tgstation/assets/13398309/27a0d43e-85f0-415f-b054-f4fbb6843a7b)

<details><summary>Lower (Aka how is is in the current build)</summary>

![dreamseeker_ak13Ou69ER](https://github.com/tgstation/tgstation/assets/13398309/d0a4418a-e3aa-4f9a-a38b-4f85418d930b)

</details>

<details><summary>Upper (All pixels shifted up one)</summary>

![dreamseeker_eeMXvE9y4z](https://github.com/tgstation/tgstation/assets/13398309/f66ddf95-717e-427e-bdfa-f7a9abefd1f1)

</details>

<details><summary>Middle (The new default- pixels shifted up one for the
profile sprites)</summary>

![dreamseeker_FCBJyoAalS](https://github.com/tgstation/tgstation/assets/13398309/50690492-9c0e-4860-890d-d70551173a3e)

</details>

## Why It's Good For The Game

More character customization options

## Changelog

🆑
image: you can now change the style of lipstick to be higher or lower on
the face by alt-clicking the lipstick tube
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>

* Allows you to choose between three lipstick styles

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
This commit is contained in:
SkyratBot
2023-10-11 10:42:45 -04:00
committed by GitHub
co-authored by MrMelbert san7890 Bloop
parent 9fd2876439
commit a15b5fe935
3 changed files with 52 additions and 2 deletions
+52 -2
View File
@@ -1,3 +1,7 @@
#define UPPER_LIP "Upper"
#define MIDDLE_LIP "Middle"
#define LOWER_LIP "Lower"
/obj/item/lipstick
gender = PLURAL
name = "red lipstick"
@@ -9,6 +13,8 @@
var/open = FALSE
/// Actual color of the lipstick, also gets applied to the human
var/lipstick_color = COLOR_RED
/// The style of lipstick. Upper, middle, or lower lip. Default is middle.
var/style = "lipstick"
/// A trait that's applied while someone has this lipstick applied, and is removed when the lipstick is removed
var/lipstick_trait
@@ -22,6 +28,10 @@
if(vname == NAMEOF(src, open))
update_appearance(UPDATE_ICON)
/obj/item/lipstick/examine(mob/user)
. = ..()
. += "Alt-click to change the style."
/obj/item/lipstick/update_icon_state()
icon_state = "lipstick[open ? "_uncap" : null]"
inhand_icon_state = "lipstick[open ? "open" : null]"
@@ -35,6 +45,42 @@
colored_overlay.color = lipstick_color
. += colored_overlay
/obj/item/lipstick/AltClick(mob/user)
. = ..()
if(.)
return TRUE
if(!user.can_perform_action(src, NEED_DEXTERITY|NEED_HANDS|ALLOW_RESTING))
return FALSE
return display_radial_menu(user)
/obj/item/lipstick/proc/display_radial_menu(mob/living/carbon/human/user)
var/style_options = list(
UPPER_LIP = icon('icons/hud/radial.dmi', UPPER_LIP),
MIDDLE_LIP = icon('icons/hud/radial.dmi', MIDDLE_LIP),
LOWER_LIP = icon('icons/hud/radial.dmi', LOWER_LIP),
)
var/pick = show_radial_menu(user, src, style_options, custom_check = CALLBACK(src, PROC_REF(check_menu), user), radius = 36, require_near = TRUE)
if(!pick)
return TRUE
switch(pick)
if(MIDDLE_LIP)
style = "lipstick"
if(LOWER_LIP)
style = "lipstick_lower"
if(UPPER_LIP)
style = "lipstick_upper"
return TRUE
/obj/item/lipstick/proc/check_menu(mob/living/user)
if(!istype(user))
return FALSE
if(user.incapacitated() || !user.is_holding(src))
return FALSE
return TRUE
/obj/item/lipstick/purple
name = "purple lipstick"
lipstick_color = COLOR_PURPLE
@@ -106,7 +152,7 @@
if(target == user)
user.visible_message(span_notice("[user] does [user.p_their()] lips with \the [src]."), \
span_notice("You take a moment to apply \the [src]. Perfect!"))
target.update_lips("lipstick", lipstick_color, lipstick_trait)
target.update_lips(style, lipstick_color, lipstick_trait)
return
user.visible_message(span_warning("[user] begins to do [target]'s lips with \the [src]."), \
@@ -115,7 +161,7 @@
return
user.visible_message(span_notice("[user] does [target]'s lips with \the [src]."), \
span_notice("You apply \the [src] on [target]'s lips."))
target.update_lips("lipstick", lipstick_color, lipstick_trait)
target.update_lips(style, lipstick_color, lipstick_trait)
//you can wipe off lipstick with paper!
/obj/item/paper/attack(mob/M, mob/user)
@@ -285,3 +331,7 @@
/obj/item/razor/surgery/get_surgery_tool_overlay(tray_extended)
return "razor"
#undef UPPER_LIP
#undef MIDDLE_LIP
#undef LOWER_LIP
Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 100 KiB