diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm b/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm index 276554554f9..e32c42f702a 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm @@ -17,6 +17,11 @@ display_name = "AR-S glasses (Sec)" path = /obj/item/clothing/glasses/omnihud/sec allowed_roles = list("Security Officer","Head of Security","Warden","Detective") + +/datum/gear/eyes/arglasses/sci + display_name = "AR-R glasses (Sci)" + path = /obj/item/clothing/glasses/omnihud/rnd + allowed_roles = list("Research Director","Scientist","Xenobiologist","Roboticist") /datum/gear/eyes/arglasses/eng display_name = "AR-E glasses (Eng)" diff --git a/code/modules/clothing/glasses/hud_vr.dm b/code/modules/clothing/glasses/hud_vr.dm index db22d70e97a..c45471ae732 100644 --- a/code/modules/clothing/glasses/hud_vr.dm +++ b/code/modules/clothing/glasses/hud_vr.dm @@ -1,7 +1,8 @@ /obj/item/clothing/glasses/omnihud name = "\improper AR glasses" desc = "The ARG-62 AR Glasses are capable of displaying information on individuals. \ - Commonly used to allow non-augmented crew to interact with virtual interfaces." + Commonly used to allow non-augmented crew to interact with virtual interfaces. \ +
They are also fitted with toggleable electrochromic lenses." origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 3) var/obj/item/clothing/glasses/hud/omni/hud = null var/mode = "civ" @@ -31,6 +32,13 @@ arscreen = null spawn(20 SECONDS) arscreen = disconnect_ar + + //extra fun for non-sci variants; a small chance flip the state to the dumb 3d glasses when EMP'd + if(icon_state == "glasses" || icon_state == "sun") + if(prob(10)) + icon_state = "3d" + if(ishuman(loc)) + to_chat(loc, "The lenses of your [src.name] malfunction!") ..() /obj/item/clothing/glasses/omnihud/proc/flashed() @@ -40,12 +48,18 @@ /obj/item/clothing/glasses/omnihud/prescribe(var/mob/user) prescription = !prescription playsound(src,'sound/items/screwdriver.ogg', 50, 1) - if(prescription) + if(prescription && icon_state == "glasses") name = "[initial(name)] (pr)" user.visible_message("[user] uploads new prescription data to the [src.name].") + icon_state = "glasses" + else if(prescription && icon_state == "sun") + name = "[initial(name)] (shaded, pr)" + user.visible_message("[user] uploads new prescription data to the [src.name].") + icon_state = "sun" else name = "[initial(name)]" - user.visible_message("[user] deletes the prescription data on the [src.name].") + user.visible_message("[user] deletes the prescription data on the [src.name] and resets the lenses.") + icon_state = "glasses" /obj/item/clothing/glasses/omnihud/attack_self(mob/user) if(!ishuman(user)) @@ -58,6 +72,41 @@ if(!ar_interact(H)) to_chat(user, "The [src] does not have any kind of special display.") +//cosmetic shading, doesn't enhance eye protection +/obj/item/clothing/glasses/omnihud/verb/chromatize() + set name = "Toggle AR Glasses Shading" + set desc = "Toggle the cosmetic electrochromatic shading of your AR glasses." + set category = "Object" + set src in usr + if(!usr.canmove || usr.stat || usr.restrained()) + return + if(icon_state == "3d") + to_chat(usr, "You reset the electrochromic lenses of \the [src] back to normal.") + if(prescription) + name = "[initial(name)] (pr)" + else + name = "[initial(name)]" + icon_state = "glasses" + else if(prescription) + if(icon_state == "glasses") + to_chat(usr, "You darken the electrochromic lenses of \the [src] to one-way transparency.") + name = "[initial(name)] (shaded, pr)" + icon_state = "sun" + else if(icon_state == "sun") + to_chat(usr, "You restore the electrochromic lenses of \the [src] to standard two-way transparency.") + name = "[initial(name)] (pr)" + icon_state = "glasses" + else if(!prescription) + if(icon_state == "glasses") + to_chat(usr, "You darken the electrochromic lenses of \the [src] to one-way transparency.") + name = "[initial(name)] (shaded)" + icon_state = "sun" + else if(icon_state == "sun") + to_chat(usr, "You restore the electrochromic lenses of \the [src] to standard two-way transparency.") + name = "[initial(name)]" + icon_state = "glasses" + update_clothing_icon() + /obj/item/clothing/glasses/omnihud/proc/ar_interact(var/mob/living/carbon/human/user) return 0 //The base models do nothing. @@ -68,7 +117,8 @@ /obj/item/clothing/glasses/omnihud/med name = "\improper AR-M glasses" desc = "The ARG-62-M AR Glasses are capable of displaying information on individuals. \ - These have been upgraded with medical records access and virus database integration." + These have been upgraded with medical records access and virus database integration. \ + They can also read data from active suit sensors using the crew monitoring system." mode = "med" action_button_name = "AR Console (Crew Monitor)" arscreen_path = /datum/nano_module/program/crew_monitor @@ -82,7 +132,8 @@ /obj/item/clothing/glasses/omnihud/sec name = "\improper AR-S glasses" desc = "The ARG-62-S AR Glasses are capable of displaying information on individuals. \ - These have been upgraded with security records integration and flash protection." + These have been upgraded with security records integration and flash protection. \ + They also have access to security alerts such as camera and motion sensor alarms." mode = "sec" flash_protection = FLASH_PROTECTION_MAJOR action_button_name = "AR Console (Security Alerts)" @@ -97,7 +148,8 @@ /obj/item/clothing/glasses/omnihud/eng name = "\improper AR-E glasses" desc = "The ARG-62-E AR Glasses are capable of displaying information on individuals. \ - These have been upgraded with advanced electrochromic lenses to protect your eyes during welding." + These have been upgraded with advanced electrochromic lenses to protect your eyes during welding, \ + and can also display a list of atmospheric, fire, and power alarms." mode = "eng" flash_protection = FLASH_PROTECTION_MAJOR action_button_name = "AR Console (Station Alerts)" @@ -111,11 +163,8 @@ /obj/item/clothing/glasses/omnihud/rnd name = "\improper AR-R glasses" desc = "The ARG-62-R AR Glasses are capable of displaying information on individuals. \ - These have been ... modified ... to fit into a different frame." + They... don't seem to do anything particularly interesting? But hey, at least they look kinda science-y." mode = "sci" - icon = 'icons/obj/clothing/glasses.dmi' - icon_override = null - icon_state = "purple" /obj/item/clothing/glasses/omnihud/eng/meson name = "meson scanner HUD" @@ -161,6 +210,13 @@ mode = "best" flash_protection = FLASH_PROTECTION_MAJOR enables_planes = list(VIS_CH_ID,VIS_CH_HEALTH_VR,VIS_CH_STATUS_R,VIS_CH_BACKUP,VIS_CH_WANTED) + action_button_name = "AR Console (All Alerts)" + arscreen_path = /datum/nano_module/alarm_monitor/all + + ar_interact(var/mob/living/carbon/human/user) + if(arscreen) + arscreen.ui_interact(user,"main",null,1,glasses_state) + return 1 /obj/item/clothing/glasses/hud/security/eyepatch name = "Security Hudpatch"