diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index 3fc944eb5f8..3e2b5cd8a1e 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -26,7 +26,6 @@
integrity_failure = 0.5
max_integrity = 200
var/list/mirror_options = INERT_MIRROR_OPTIONS
- var/magical_mirror = FALSE
///Flags this race must have to be selectable with this type of mirror.
var/race_flags = MIRROR_MAGIC
@@ -83,7 +82,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
if(. || !ishuman(user) || broken)
return TRUE
- if(!user.can_perform_action(src, FORBID_TELEKINESIS_REACH) && !magical_mirror)
+ if(!istype(src, /obj/structure/mirror/magic) && !user.can_perform_action(src, FORBID_TELEKINESIS_REACH))
return TRUE //no tele-grooming (if nonmagical)
return display_radial_menu(user)
@@ -110,20 +109,26 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
return display_radial_menu(user)
/obj/structure/mirror/proc/change_beard(mob/living/carbon/human/beard_dresser)
- if(beard_dresser.physique != FEMALE && !magical_mirror)
- var/new_style = tgui_input_list(beard_dresser, "Select a facial hairstyle", "Grooming", GLOB.facial_hairstyles_list)
- if(isnull(new_style))
- return TRUE
- if(HAS_TRAIT(beard_dresser, TRAIT_SHAVED))
- to_chat(beard_dresser, span_notice("If only growing back facial hair were that easy for you... The reminder makes you feel terrible."))
- beard_dresser.add_mood_event("bald_hair_day", /datum/mood_event/bald_reminder)
- return TRUE
- beard_dresser.set_facial_hairstyle(new_style, update = TRUE)
- else
+ if(beard_dresser.physique == FEMALE)
if(beard_dresser.facial_hairstyle == "Shaved")
- to_chat(beard_dresser, span_notice("You realize you don't have any facial hair."))
- return
- beard_dresser.set_facial_hairstyle("Shaved", update = TRUE)
+ balloon_alert(beard_dresser, "nothing to shave!")
+ return TRUE
+ var/shave_beard = tgui_alert(beard_dresser, "Shave your beard?", "Grooming", list("Yes", "No"))
+ if(shave_beard == "Yes")
+ beard_dresser.set_facial_hairstyle("Shaved", update = TRUE)
+ return TRUE
+
+ var/new_style = tgui_input_list(beard_dresser, "Select a facial hairstyle", "Grooming", GLOB.facial_hairstyles_list)
+
+ if(isnull(new_style))
+ return TRUE
+
+ if(HAS_TRAIT(beard_dresser, TRAIT_SHAVED))
+ to_chat(beard_dresser, span_notice("If only growing back facial hair were that easy for you... The reminder makes you feel terrible."))
+ beard_dresser.add_mood_event("bald_hair_day", /datum/mood_event/bald_reminder)
+ return TRUE
+
+ beard_dresser.set_facial_hairstyle(new_style, update = TRUE)
/obj/structure/mirror/proc/change_hair(mob/living/carbon/human/hairdresser)
var/new_style = tgui_input_list(hairdresser, "Select a hairstyle", "Grooming", GLOB.hairstyles_list)
@@ -317,7 +322,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
desc = "Turn and face the strange... face."
icon_state = "magic_mirror"
mirror_options = MAGIC_MIRROR_OPTIONS
- magical_mirror = TRUE
/obj/structure/mirror/magic/Initialize(mapload)
. = ..()
@@ -329,6 +333,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
selectable_races[initial(species_type.name)] = species_type
selectable_races = sort_list(selectable_races)
+/obj/structure/mirror/magic/change_beard(mob/living/carbon/human/beard_dresser) // magical mirrors do nothing but give you the damn beard
+ var/new_style = tgui_input_list(beard_dresser, "Select a facial hairstyle", "Grooming", GLOB.facial_hairstyles_list)
+ if(isnull(new_style))
+ return TRUE
+ beard_dresser.set_facial_hairstyle(new_style, update = TRUE)
+ return TRUE
+
//Magic mirrors can change hair color as well
/obj/structure/mirror/magic/change_hair(mob/living/carbon/human/user)
var/hairchoice = tgui_alert(user, "Hairstyle or hair color?", "Change Hair", list("Style", "Color"))
@@ -349,7 +360,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
/obj/structure/mirror/magic/attack_hand(mob/living/carbon/human/user)
. = ..()
- if(!.)
+ if(.)
return TRUE
if(HAS_TRAIT(user, TRAIT_ADVANCEDTOOLUSER) && HAS_TRAIT(user, TRAIT_LITERATE))
@@ -377,11 +388,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
/obj/structure/mirror/magic/pride/attack_hand(mob/living/carbon/human/user)
. = ..()
- if(!.)
+ if(.)
return TRUE
- user.visible_message(span_danger("The ground splits beneath [user] as [user.p_their()] hand leaves the mirror!"), \
- span_notice("Perfect. Much better! Now nobody will be able to resist yo-"))
+ user.visible_message(
+ span_bolddanger("The ground splits beneath [user] as [user.p_their()] hand leaves the mirror!"),
+ span_notice("Perfect. Much better! Now nobody will be able to resist yo-"),
+ )
var/turf/user_turf = get_turf(user)
var/list/levels = SSmapping.levels_by_trait(ZTRAIT_SPACE_RUINS)