diff --git a/code/datums/uplink_items/uplink_general.dm b/code/datums/uplink_items/uplink_general.dm index 1ca9dad2097..2a15591d7c8 100644 --- a/code/datums/uplink_items/uplink_general.dm +++ b/code/datums/uplink_items/uplink_general.dm @@ -523,6 +523,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/box/syndie_kit/safecracking cost = 5 +/datum/uplink_item/stealthy_tools/handheld_mirror + name = "Hand Held Mirror" + desc = "A pocket sized mirror. Allows you to change all your hair and facial features, from color to style, instantly while in your hand." + reference = "HM" + item = /obj/item/handheld_mirror + cost = 5 + // DEVICE AND TOOLS /datum/uplink_item/device_tools diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index f259d733dbb..5473a5e977f 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -405,3 +405,28 @@ times_used = max_uses - 1 activate_batterer() + +/obj/item/handheld_mirror + name = "hand mirror" + desc = "Style, on the go!" + icon = 'icons/obj/hhmirror.dmi' + icon_state = "hhmirror" + w_class = WEIGHT_CLASS_TINY + var/datum/ui_module/appearance_changer/appearance_changer_holder + +/obj/item/handheld_mirror/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) + appearance_changer_holder.ui_interact(user, ui_key, ui, force_open, master_ui, state = GLOB.hands_state) + +/obj/item/handheld_mirror/attack_self(mob/user) + if(ishuman(user)) + appearance_changer_holder = new(src, user) + ui_interact(user) + +/obj/item/handheld_mirror/Initialize(mapload) + . = ..() + GLOB.mirrors += src + +/obj/item/handheld_mirror/Destroy() + GLOB.mirrors -= src + QDEL_NULL(appearance_changer_holder) + return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm index 1a82205a6a4..8adf5597e4f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm @@ -322,13 +322,14 @@ if(istype(chosen, /obj/structure/mirror)) var/obj/structure/mirror/M = chosen M.obj_break("brute") - else if(istype(chosen, /obj/item/shield/mirror)) + else if(istype(chosen, /obj/item/shield/mirror) || istype(chosen, /obj/item/handheld_mirror)) var/turf/T = get_turf(usr) new /obj/effect/temp_visual/cult/sparks(T) playsound(T, 'sound/effects/glassbr3.ogg', 100) - if(isliving(chosen.loc)) - var/mob/living/shatterer = loc - shatterer.Weaken(6 SECONDS) + for(var/mob/living/L in T) + if(L == usr) + continue + L.Weaken(6 SECONDS) qdel(chosen) #undef HERALD_TRISHOT diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index acdbbb4c1ae..9939503ee0c 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 9047a4d0761..05759047bb9 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/obj/hhmirror.dmi b/icons/obj/hhmirror.dmi new file mode 100644 index 00000000000..f5a38c2efe6 Binary files /dev/null and b/icons/obj/hhmirror.dmi differ