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)