diff --git a/code/modules/clothing/glasses/hud_vr.dm b/code/modules/clothing/glasses/hud_vr.dm
index 3619700463..ddabbe106a 100644
--- a/code/modules/clothing/glasses/hud_vr.dm
+++ b/code/modules/clothing/glasses/hud_vr.dm
@@ -1,34 +1,72 @@
/obj/item/clothing/glasses/omnihud
- name = "a.r. glasses"
+ name = "AR glasses"
desc = "The KHI-62 AR Glasses are a design from Kitsuhana Heavy Industries. These are a cheap export version \
for Nanotrasen. Probably not as complete as KHI could make them, but more readily available for NT."
origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 3)
var/obj/item/clothing/glasses/hud/omni/hud = null
var/mode = "civ"
icon_state = "glasses"
+ var/datum/nano_module/arscreen
+ var/arscreen_path
var/flash_prot = 0 //0 for none, 1 for flash weapon protection, 2 for welder protection
- New()
- ..()
- src.hud = new/obj/item/clothing/glasses/hud/omni(src)
+/obj/item/clothing/glasses/omnihud/New()
+ ..()
+ src.hud = new/obj/item/clothing/glasses/hud/omni(src)
+ if(arscreen_path)
+ arscreen = new arscreen_path(src)
+
+/obj/item/clothing/glasses/omnihud/Destroy()
+ if(hud)
+ qdel(hud)
+ hud = null
+ if(arscreen)
+ qdel(arscreen)
+ arscreen = null
+ ..()
+
+/obj/item/clothing/glasses/omnihud/dropped()
+ if(arscreen)
+ nanomanager.close_uis(src)
+ ..()
+
+/obj/item/clothing/glasses/omnihud/emp_act(var/severity)
+ var/disconnect_hud = hud
+ var/disconnect_ar = arscreen
+ hud = null
+ arscreen = null
+ spawn(20 SECONDS)
+ hud = disconnect_hud
+ arscreen = disconnect_ar
+ ..()
+
+/obj/item/clothing/glasses/omnihud/proc/flashed()
+ if(flash_prot && ishuman(loc))
+ loc << "Your [src.name] darken to try and protect your eyes!"
+
+/obj/item/clothing/glasses/omnihud/prescribe(var/mob/user)
+ prescription = !prescription
+ playsound(user,'sound/items/screwdriver.ogg', 50, 1)
+ if(prescription)
+ name = "[initial(name)] (pr)"
+ user.visible_message("[user] uploads new prescription data to the [src.name].")
+ else
+ name = "[initial(name)]"
+ user.visible_message("[user] deletes the prescription data on the [src.name].")
+
+/obj/item/clothing/glasses/omnihud/attack_self(mob/user)
+ if(!ishuman(user))
return
- proc/flashed()
- if(flash_prot && ishuman(loc))
- loc << "Your [src.name] darken to try and protect your eyes!"
+ var/mob/living/carbon/human/H = user
+ if(!H.glasses || !(H.glasses == src))
+ user << "You must be wearing the [src] to see the display."
+ else
+ if(!ar_interact(H))
+ user << "The [src] does not have any kind of special display."
- prescribe(var/mob/user)
- prescription = !prescription
-
- //Look it's really not that fancy. It's not ACTUALLY unique scrip data.
- if(prescription)
- name = "[initial(name)] (pr)"
- user.visible_message("[user] uploads new prescription data to \the [src.name].")
- else
- name = "[initial(name)]"
- user.visible_message("[user] deletes the prescription data of \the [src.name].")
-
- playsound(user,'sound/items/screwdriver.ogg', 50, 1)
+/obj/item/clothing/glasses/omnihud/proc/ar_interact(var/mob/living/carbon/human/user)
+ return 0 //The base models do nothing.
/obj/item/clothing/glasses/omnihud/prescription
name = "AR glasses (pr)"
@@ -39,6 +77,13 @@
desc = "The KHI-62-M AR glasses are a design from Kitsuhana Heavy Industries. \
These have been upgraded with medical records access and virus database integration."
mode = "med"
+ action_button_name = "AR Console (Crew Monitor)"
+ arscreen_path = /datum/nano_module/crew_monitor
+
+ ar_interact(var/mob/living/carbon/human/user)
+ if(arscreen)
+ arscreen.ui_interact(user,"main",null,1)
+ return 1
/obj/item/clothing/glasses/omnihud/sec
name = "AR-S glasses"
@@ -46,6 +91,13 @@
These have been upgraded with security records integration and flash protection."
mode = "sec"
flash_prot = 1 //Flash protection.
+ action_button_name = "AR Console (Security Alerts)"
+ arscreen_path = /datum/nano_module/alarm_monitor/security
+
+ ar_interact(var/mob/living/carbon/human/user)
+ if(arscreen)
+ arscreen.ui_interact(user,"main",null,1)
+ return 1
/obj/item/clothing/glasses/omnihud/eng
name = "AR-E glasses"
@@ -53,15 +105,22 @@
These have been upgraded with advanced electrochromic lenses to protect your eyes during welding."
mode = "civ"
flash_prot = 2 //Welding protection.
+ action_button_name = "AR Console (Station Alerts)"
+ arscreen_path = /datum/nano_module/alarm_monitor
+
+ ar_interact(var/mob/living/carbon/human/user)
+ if(arscreen)
+ arscreen.ui_interact(user,"main",null,1)
+ return 1
/obj/item/clothing/glasses/omnihud/rnd
name = "AR-R glasses"
desc = "The KHI-62-R AR glasses are a design from Kitsuhana Heavy Industries. \
These have been ... modified ... to fit into a different frame."
+ mode = "civ"
icon = 'icons/obj/clothing/glasses.dmi'
icon_override = null
icon_state = "purple"
- mode = "civ"
/obj/item/clothing/glasses/omnihud/all
name = "AR-B glasses"
@@ -69,6 +128,7 @@
These have been upgraded with every feature the lesser models have. Now we're talkin'."
mode = "best"
flash_prot = 2 //Welding protection.
+ action_button_name = "AR Console (Communications)"
/obj/item/clothing/glasses/hud/omni
name = "internal omni hud"
@@ -86,4 +146,4 @@
qdel(src)
/obj/item/clothing/glasses/hud/omni/process_hud(var/mob/M)
- process_omni_hud(M,shades.mode)
\ No newline at end of file
+ process_omni_hud(M,shades.mode)
diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm
index fa3dace610..bb30e1bf37 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm
@@ -58,8 +58,8 @@
//burn_mod = 1.15
//gluttonous = 1
num_alternate_languages = 2
- secondary_langs = list("Skrellian")
- name_language = "Skrellian"
+ secondary_langs = list(LANGUAGE_SKRELLIAN)
+ name_language = LANGUAGE_SKRELLIAN
color_mult = 1
min_age = 18
diff --git a/code/modules/nano/interaction/inventory_vr.dm b/code/modules/nano/interaction/inventory_vr.dm
new file mode 100644
index 0000000000..373e9f382b
--- /dev/null
+++ b/code/modules/nano/interaction/inventory_vr.dm
@@ -0,0 +1,12 @@
+/*
+ This state checks that the src_object is on the user's glasses slot.
+*/
+/var/global/datum/topic_state/inventory_state/glasses_state = new()
+
+/datum/topic_state/glasses_state/can_use_topic(var/src_object, var/mob/user)
+ if(ishuman(user))
+ var/mob/living/carbon/human/H = user
+ if(H.glasses == src_object)
+ return user.shared_nano_interaction()
+
+ return STATUS_CLOSE
diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
index eeba443b76..a0b20f581e 100644
--- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
@@ -331,9 +331,9 @@
*/
//wickedtemp:chakat tempest
-/obj/item/clothing/glasses/hud/health/fluff/wickedtemphud
- name = "Tempest's MedHUD"
- desc = "A standard Medical HUD, only this one is colored purple with a violet lens with a quote inscribed: \"A doctor sees the weakness in all of humanity\""
+/obj/item/clothing/glasses/omnihud/med/fluff/wickedtemphud
+ name = "Tempest's Glasses"
+ desc = "A set of AR-M glasses, only these are colored purple with violet lenses in a custom frame, with a quote inscribed: \"A doctor sees the weakness in all of humanity\""
icon = 'icons/vore/custom_items_vr.dmi'
icon_state = "tempesthud"
diff --git a/vorestation.dme b/vorestation.dme
index 231066d99c..ed47cf1045 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1868,6 +1868,7 @@
#include "code\modules\nano\interaction\interactive.dm"
#include "code\modules\nano\interaction\inventory.dm"
#include "code\modules\nano\interaction\inventory_deep.dm"
+#include "code\modules\nano\interaction\inventory_vr.dm"
#include "code\modules\nano\interaction\outside.dm"
#include "code\modules\nano\interaction\physical.dm"
#include "code\modules\nano\interaction\remote.dm"