From cc58ddc278b67119489146ba294abf57b6aac0d3 Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Fri, 9 May 2025 08:07:09 -0700 Subject: [PATCH] [MIRROR] Rx AR Hud and slight loadout cleanup (#10854) Co-authored-by: Cameron Lennox --- code/game/gamemodes/technomancer/equipment.dm | 2 +- code/game/jobs/job_controller.dm | 2 +- .../preference_setup/loadout/loadout_eyes.dm | 62 ++- code/modules/clothing/glasses/glasses.dm | 20 +- code/modules/clothing/glasses/glasses_vr.dm | 4 +- code/modules/clothing/glasses/hud.dm | 399 +++++++++++++++++- vorestation.dme | 1 - 7 files changed, 459 insertions(+), 31 deletions(-) diff --git a/code/game/gamemodes/technomancer/equipment.dm b/code/game/gamemodes/technomancer/equipment.dm index dfe565c85e..47d48a8289 100644 --- a/code/game/gamemodes/technomancer/equipment.dm +++ b/code/game/gamemodes/technomancer/equipment.dm @@ -164,7 +164,7 @@ origin_tech = list(TECH_MAGNET = 6, TECH_ENGINEERING = 6) toggleable = 1 vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS - prescription = 1 // So two versions of these aren't needed. + prescription = TRUE // So two versions of these aren't needed. /datum/technomancer/equipment/med_hud name = "Medical HUD" diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index d02118c24c..be8dd393b9 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -592,7 +592,7 @@ var/global/datum/controller/occupations/job_master var/equipped = H.equip_to_slot_or_del(new /obj/item/clothing/glasses/regular(H), slot_glasses) if(equipped != 1) var/obj/item/clothing/glasses/G = H.glasses - G.prescription = 1 + G.prescription = TRUE BITSET(H.hud_updateflag, ID_HUD) BITSET(H.hud_updateflag, IMPLOYAL_HUD) diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm index 7b7e983fc7..6f18e2be05 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm @@ -106,12 +106,17 @@ /datum/gear/eyes/janitor display_name = "Contaminant HUD" + description = "A heads-up display that scans the environment for contaminations. Can be taken with or without prescription lenses." path = /obj/item/clothing/glasses/hud/janitor allowed_roles = list(JOB_JANITOR) -/datum/gear/eyes/janitor/prescriptionjan - display_name = "Contaminant HUD, prescription" - path = /obj/item/clothing/glasses/hud/janitor/prescription +/datum/gear/eyes/janitor/New() + ..() + var/list/selector_uniforms = list( + "standard Contaminant HUD"=/obj/item/clothing/glasses/hud/health, + "prescription Contaminant HUD"=/obj/item/clothing/glasses/hud/janitor/prescription + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/eyes/meson display_name = "Optical Meson Scanners selection" @@ -183,6 +188,14 @@ display_name = "AR glasses" path = /obj/item/clothing/glasses/omnihud +/datum/gear/eyes/arglasses/New() + ..() + var/list/selector_uniforms = list( + "standard AR glasses"=/obj/item/clothing/glasses/omnihud, + "prescription AR glasses"=/obj/item/clothing/glasses/omnihud/prescription, + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) + /datum/gear/eyes/arglasses/visor display_name = "AR visor" path = /obj/item/clothing/glasses/omnihud/visor @@ -190,36 +203,73 @@ /datum/gear/eyes/arglasses/visor/New() ..() gear_tweaks = list(gear_tweak_free_color_choice) -/datum/gear/eyes/arglassespres - display_name = "AR glasses, prescription" - path = /obj/item/clothing/glasses/omnihud/prescription /datum/gear/eyes/arglasses/sec display_name = "AR-Security glasses" path = /obj/item/clothing/glasses/omnihud/sec allowed_roles = list(JOB_SECURITY_OFFICER,JOB_HEAD_OF_SECURITY,JOB_WARDEN,JOB_DETECTIVE) +/datum/gear/eyes/arglasses/sec/New() + ..() + var/list/selector_uniforms = list( + "standard AR-Security glasses"=/obj/item/clothing/glasses/omnihud/sec, + "prescription AR-Security glasses"=/obj/item/clothing/glasses/omnihud/sec/prescription + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) + /datum/gear/eyes/arglasses/sci display_name = "AR-Research glasses" path = /obj/item/clothing/glasses/omnihud/rnd allowed_roles = list(JOB_RESEARCH_DIRECTOR,JOB_SCIENTIST,JOB_XENOBIOLOGIST,JOB_XENOBOTANIST,JOB_ROBOTICIST) +/datum/gear/eyes/arglasses/sci/New() + ..() + var/list/selector_uniforms = list( + "standard AR-Research glasses"=/obj/item/clothing/glasses/omnihud/rnd, + "prescription AR-Research glasses"=/obj/item/clothing/glasses/omnihud/rnd/prescription + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) + /datum/gear/eyes/arglasses/eng display_name = "AR-Engineering glasses" path = /obj/item/clothing/glasses/omnihud/eng allowed_roles = list(JOB_ENGINEER,JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) +/datum/gear/eyes/arglasses/eng/New() + ..() + var/list/selector_uniforms = list( + "standard AR-Engineering glasses"=/obj/item/clothing/glasses/omnihud/eng, + "prescription AR-Engineering glasses"=/obj/item/clothing/glasses/omnihud/eng/prescription + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) + /datum/gear/eyes/arglasses/med display_name = "AR-Medical glasses" path = /obj/item/clothing/glasses/omnihud/med allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST,JOB_FIELD_MEDIC) //CHOMP keep explo +/datum/gear/eyes/arglasses/med/New() + ..() + var/list/selector_uniforms = list( + "standard AR-Medical glasses"=/obj/item/clothing/glasses/omnihud/med, + "prescription AR-Medical glasses"=/obj/item/clothing/glasses/omnihud/med/prescription + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) + /datum/gear/eyes/arglasses/all display_name = "AR-Command glasses" path = /obj/item/clothing/glasses/omnihud/all cost = 2 allowed_roles = list(JOB_SITE_MANAGER,JOB_HEAD_OF_PERSONNEL) +/datum/gear/eyes/arglasses/all/New() + ..() + var/list/selector_uniforms = list( + "standard AR-Command glasses"=/obj/item/clothing/glasses/omnihud/all, + "prescription AR-Command glasses"=/obj/item/clothing/glasses/omnihud/all/prescription + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) + /datum/gear/eyes/spiffygogs display_name = "slick orange goggles" path = /obj/item/clothing/glasses/fluff/spiffygogs diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index f9962dc239..e4270a4fdf 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -20,7 +20,7 @@ BLIND // can't see anything var/vision_flags = 0 var/darkness_view = 0//Base human is 2 var/see_invisible = -1 - var/prescription = 0 + var/prescription = FALSE var/toggleable = 0 var/off_state = "degoggles" var/active = 1 @@ -104,7 +104,7 @@ BLIND // can't see anything /obj/item/clothing/glasses/meson/prescription name = "prescription mesons" desc = "Optical Meson Scanner with prescription lenses." - prescription = 1 + prescription = TRUE /obj/item/clothing/glasses/meson/aviator name = "engineering aviators" @@ -117,7 +117,7 @@ BLIND // can't see anything /obj/item/clothing/glasses/meson/aviator/prescription name = "prescription engineering aviators" desc = "Engineering Aviators with prescription lenses." - prescription = 1 + prescription = TRUE /obj/item/clothing/glasses/hud/health/aviator name = "medical HUD aviators" @@ -131,7 +131,7 @@ BLIND // can't see anything /obj/item/clothing/glasses/hud/health/aviator/prescription name = "prescription medical HUD aviators" desc = "Modified aviator glasses with a toggled health HUD. Comes with bonus prescription lenses." - prescription = 6 + prescription = TRUE /obj/item/clothing/glasses/science name = "Science Goggles" @@ -248,7 +248,7 @@ BLIND // can't see anything /obj/item/clothing/glasses/material/prescription name = "prescription optical material scanner" - prescription = 1 + prescription = TRUE /obj/item/clothing/glasses/graviton name = "graviton goggles" @@ -273,7 +273,7 @@ BLIND // can't see anything desc = "Made by Nerd. Co." icon_state = "glasses" item_state_slots = list(slot_r_hand_str = "glasses", slot_l_hand_str = "glasses") - prescription = 1 + prescription = TRUE body_parts_covered = 0 /obj/item/clothing/glasses/regular/scanners @@ -315,19 +315,17 @@ BLIND // can't see anything name = "rimless glasses" desc = "Sleek modern glasses with a single sculpted lens." icon_state = "glasses_rimless" - prescription = 0 /obj/item/clothing/glasses/regular/thin name = "prescription thin-rimmed glasses" desc = "Glasses with frames are so last century." icon_state = "glasses_thin" - prescription = 1 + prescription = TRUE /obj/item/clothing/glasses/thin name = "thin-rimmed glasses" desc = "Glasses with frames are so last century." icon_state = "glasses_thin" - prescription = 0 /obj/item/clothing/glasses/sunglasses @@ -451,7 +449,7 @@ BLIND // can't see anything /obj/item/clothing/glasses/sunglasses/prescription name = "prescription sunglasses" - prescription = 1 + prescription = TRUE /obj/item/clothing/glasses/sunglasses/big desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks many flashes." @@ -517,7 +515,7 @@ BLIND // can't see anything /obj/item/clothing/glasses/sunglasses/sechud/aviator/prescription name = "prescription security HUD aviators" desc = "Modified aviator glasses that can be switch between HUD and flash protection modes. Comes with bonus prescription lenses." - prescription = 6 + prescription = TRUE /obj/item/clothing/glasses/sunglasses/medhud name = "\improper HUD sunglasses" diff --git a/code/modules/clothing/glasses/glasses_vr.dm b/code/modules/clothing/glasses/glasses_vr.dm index 03729ad7bc..4c78a50816 100644 --- a/code/modules/clothing/glasses/glasses_vr.dm +++ b/code/modules/clothing/glasses/glasses_vr.dm @@ -119,7 +119,7 @@ icon_override = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "tajblind" item_state = "tajblind" - prescription = 1 + prescription = TRUE body_parts_covered = EYES glasses_layer_above = TRUE //ChompEDIT sprite_sheets = list(SPECIES_VOX = 'icons/inventory/eyes/mob_vox.dmi') @@ -141,7 +141,7 @@ icon_override = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "tajblind_sec" item_state = "tajblind_sec" - prescription = 1 + prescription = TRUE body_parts_covered = EYES sprite_sheets = list(SPECIES_VOX = 'icons/inventory/eyes/mob_vox.dmi') diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 139df762ca..884d6faae3 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -13,9 +13,9 @@ enables_planes = list(VIS_CH_STATUS,VIS_CH_HEALTH) /obj/item/clothing/glasses/hud/health/prescription - name = "Prescription Health Scanner HUD" - desc = "A medical HUD integrated with a set of prescription glasses" - prescription = 1 + desc = "A medical HUD integrated with a set of prescription glasses. \ + These have been equipped with prescription lenses." + prescription = TRUE icon_state = "healthhudpresc" item_state_slots = list(slot_r_hand_str = "glasses", slot_l_hand_str = "glasses") @@ -28,9 +28,9 @@ enables_planes = list(VIS_CH_ID,VIS_CH_WANTED,VIS_CH_IMPTRACK,VIS_CH_IMPLOYAL,VIS_CH_IMPCHEM) /obj/item/clothing/glasses/hud/security/prescription - name = "Prescription Security HUD" - desc = "A security HUD integrated with a set of prescription glasses" - prescription = 1 + desc = "A security HUD integrated with a set of prescription glasses. \ + These have been equipped with prescription lenses." + prescription = TRUE icon_state = "sechudpresc" item_state_slots = list(slot_r_hand_str = "glasses", slot_l_hand_str = "glasses") @@ -51,8 +51,389 @@ enables_planes = list(VIS_JANHUD) /obj/item/clothing/glasses/hud/janitor/prescription - name = "Prescription Contaminant Detector HUD" - desc = "A heads-up display that scans the environment for contaminations." - prescription = 1 + desc = "A heads-up display that scans the environment for contaminations. \ + These have been equipped with prescription lenses." + prescription = TRUE icon_state = "janhudpresc" item_state_slots = list(slot_r_hand_str = "glasses", slot_l_hand_str = "glasses") + +//Omnihuds +/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. \ +
They are also fitted with toggleable cosmetic electrochromic lenses. \ + The lenses will not protect against sudden bright flashes or welding." + 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/tgui_module/tgarscreen + var/tgarscreen_path + var/flash_prot = 0 //0 for none, 1 for flash weapon protection, 2 for welder protection + enables_planes = list(VIS_CH_ID,VIS_CH_HEALTH_VR,VIS_AUGMENTED) + plane_slots = list(slot_glasses) + var/ar_toggled = TRUE //Used for toggle_ar_planes() verb + + +/obj/item/clothing/glasses/omnihud/Initialize(mapload) + . = ..() + if(tgarscreen_path) + tgarscreen = new tgarscreen_path(src) + +/obj/item/clothing/glasses/omnihud/Destroy() + QDEL_NULL(tgarscreen) + . = ..() + +/obj/item/clothing/glasses/omnihud/dropped(mob/user) + if(tgarscreen) + SStgui.close_uis(src) + ..() + +/obj/item/clothing/glasses/omnihud/examine() + . = ..() + if(ar_toggled) + . += "\n " + span_notice("The HUD indicator reads ON.") + else + . += "\n " + span_notice("The HUD indicator reads OFF.") + + +/obj/item/clothing/glasses/omnihud/emp_act(var/severity) + if(tgarscreen) + SStgui.close_uis(src) + var/disconnect_tgar = tgarscreen + tgarscreen = null + spawn(20 SECONDS) + tgarscreen = disconnect_tgar + + //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, span_warning("The lenses of your [src.name] malfunction!")) + ..() + +/obj/item/clothing/glasses/omnihud/proc/flashed() + if(flash_prot && ishuman(loc)) + to_chat(loc, span_warning("Your [src.name] darken to try and protect your eyes!")) + +/obj/item/clothing/glasses/omnihud/prescribe(var/mob/user) + prescription = !prescription + playsound(src,'sound/items/screwdriver.ogg', 50, 1) + if(prescription) + user.visible_message("[user] uploads new prescription data to the [src.name] and resets the lenses.") + name = "[initial(name)] (pr)" //change the name *after* the text so the message above is accurate + icon_state = "[initial(icon_state)]" //reset the icon state just to be safe + else + user.visible_message("[user] deletes the prescription data on the [src.name] and resets the lenses.") + name = "[initial(name)]" + icon_state = "[initial(icon_state)]" + +/obj/item/clothing/glasses/omnihud/attack_self(mob/user) + if(!ishuman(user)) + return + + var/mob/living/carbon/human/H = user + if(!H.glasses || !(H.glasses == src)) + to_chat(user, span_warning("You must be wearing the [src] to see the display.")) + else + if(!ar_interact(H)) + to_chat(user, span_warning("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 = "[initial(icon_state)]" + 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)" + flags_inv |= HIDEEYES + 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)" + flags_inv &= ~HIDEEYES + icon_state = "glasses" + else + to_chat(usr, "The [src] don't seem to support this functionality.") + 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)" + flags_inv |= HIDEEYES + 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)]" + flags_inv &= ~HIDEEYES + icon_state = "glasses" + else + to_chat(usr, "The [src] don't seem to support this functionality.") + update_clothing_icon() + +/obj/item/clothing/glasses/omnihud/verb/toggle_ar_planes() + set name = "Toggle AR Heads-Up Display" + set desc = "Toggles the job icon and other non-manually requested displays. Does not disable Crew monitor and similar." + set category = "Object" + set src in usr + + //We do not check if user can move or not, since this system is inspired to help see chat bubbles during scenes primarily. + //Preventing turning off the HUD could get in the way of scene flow. + if(ar_toggled) + away_planes = enables_planes + enables_planes = null + to_chat(usr, span_notice("You disabled the Augmented Reality HUD of your [src.name].")) + else + enables_planes = away_planes + away_planes = null + to_chat(usr, span_notice("You enabled the Augmented Reality HUD of your [src.name].")) + ar_toggled = !ar_toggled + usr.update_mob_action_buttons() + usr.recalculate_vis() + + + +/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/visor + name = "AR visor" + desc = "The VZR-AR are a product based upon the classic AR Glasses, just more fashionable." + icon_override = 'icons/inventory/eyes/mob_vr.dmi' + icon = 'icons/inventory/eyes/mob_vr.dmi' + icon_state = "visor_CIV" + item_state = "visor_CIV" + +/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. \ + They can also read data from active suit sensors using the crew monitoring system." + mode = "med" + actions_types = list(/datum/action/item_action/ar_console_crew) + tgarscreen_path = /datum/tgui_module/crew_monitor/glasses + enables_planes = list(VIS_CH_ID,VIS_CH_HEALTH_VR,VIS_CH_STATUS_R,VIS_CH_BACKUP,VIS_AUGMENTED) + +/obj/item/clothing/glasses/omnihud/med/ar_interact(var/mob/living/carbon/human/user) + if(tgarscreen) + tgarscreen.tgui_interact(user) + return 1 + +/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. \ + They also have access to security alerts such as camera and motion sensor alarms." + mode = "sec" + flash_protection = FLASH_PROTECTION_MODERATE //weld protection is a little too widespread + actions_types = list(/datum/action/item_action/ar_console_security_alerts) + tgarscreen_path = /datum/tgui_module/alarm_monitor/security/glasses + enables_planes = list(VIS_CH_ID,VIS_CH_HEALTH_VR,VIS_CH_WANTED,VIS_AUGMENTED) + +/obj/item/clothing/glasses/omnihud/sec/ar_interact(var/mob/living/carbon/human/user) + if(tgarscreen) + tgarscreen.tgui_interact(user) + return 1 + +/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, \ + and can also display a list of atmospheric, fire, and power alarms." + mode = "eng" + flash_protection = FLASH_PROTECTION_MAJOR + actions_types = list(/datum/action/item_action/ar_console_station_alerts) + tgarscreen_path = /datum/tgui_module/alarm_monitor/engineering/glasses + +/obj/item/clothing/glasses/omnihud/eng/ar_interact(var/mob/living/carbon/human/user) + if(tgarscreen) + tgarscreen.tgui_interact(user) + return 1 + +/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. \ + They... don't seem to do anything particularly interesting? But hey, at least they look kinda science-y." + mode = "sci" + +/obj/item/clothing/glasses/omnihud/eng/meson + name = "meson scanner HUD" + desc = "A headset equipped with a scanning lens and mounted retinal projector. It doesn't provide any eye protection, but it's less obtrusive than goggles." + icon = 'icons/vore/custom_items_vr.dmi' + icon_override = 'icons/vore/custom_clothes_vr.dmi' + icon_state = "projector" + off_state = "projector-off" + body_parts_covered = 0 + toggleable = 1 + vision_flags = SEE_TURFS //but they can spot breaches. Due to the way HUDs work, they don't provide darkvision up-close the way mesons do. + flash_protection = 0 //it's an open, single-eye retinal projector. there's no way it protects your eyes from flashes or welders. + +/obj/item/clothing/glasses/omnihud/eng/meson/attack_self(mob/user) + if(!active) + toggleprojector() + ..() + +/obj/item/clothing/glasses/omnihud/eng/meson/verb/toggleprojector() + set name = "Toggle projector" + set category = "Object" + set src in usr + if(!isliving(usr)) return + if(usr.stat) return + if(toggleable) + if(active) + active = 0 + icon_state = off_state + item_state = "[initial(item_state)]-off" + usr.update_inv_glasses() + to_chat(usr, "You deactivate the retinal projector on the [src].") + else + active = 1 + icon_state = initial(icon_state) + item_state = initial(item_state) + usr.update_inv_glasses() + to_chat(usr, "You activate the retinal projector on the [src].") + usr.update_mob_action_buttons() + +/obj/item/clothing/glasses/omnihud/all + name = "\improper AR-B glasses" + desc = "The ARG-62-B AR Glasses are capable of displaying information on individuals. \ + These have been upgraded with (almost) every feature the lesser models have. Now we're talkin'. \ +
Offers full protection against bright flashes/welders and full access to system alarm monitoring." + 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,VIS_AUGMENTED) + actions_types = list(/datum/action/item_action/ar_console_all_alerts) + tgarscreen_path = /datum/tgui_module/alarm_monitor/all/glasses + +/obj/item/clothing/glasses/omnihud/all/ar_interact(var/mob/living/carbon/human/user) + if(tgarscreen) + tgarscreen.tgui_interact(user) + return 1 + +/obj/item/clothing/glasses/hud/security/eyepatch + name = "Security Hudpatch" + desc = "An eyepatch with built in scanners, that analyzes those in view and provides accurate data about their ID status and security records." + icon_state = "eyepatch" + item_state_slots = list(slot_r_hand_str = "blindfold", slot_l_hand_str = "blindfold") + body_parts_covered = 0 + enables_planes = list(VIS_CH_ID,VIS_CH_WANTED,VIS_CH_IMPTRACK,VIS_CH_IMPLOYAL,VIS_CH_IMPCHEM) + var/eye = null + +/obj/item/clothing/glasses/hud/security/eyepatch/verb/switcheye() + set name = "Switch Eyepatch" + set category = "Object" + set src in usr + if(!isliving(usr)) return + if(usr.stat) return + + eye = !eye + if(eye) + icon_state = "[icon_state]_1" + else + icon_state = initial(icon_state) + update_clothing_icon() + +/obj/item/clothing/glasses/hud/security/eyepatch2 + name = "Security Hudpatch MKII" + desc = "An eyepatch with built in scanners, that analyzes those in view and provides accurate data about their ID status and security records. This updated model offers better ergonomics and updated sensors." + icon = 'icons/inventory/eyes/item_vr.dmi' + icon_override = 'icons/inventory/eyes/mob_vr.dmi' + icon_state = "sec_eyepatch" + item_state_slots = list(slot_r_hand_str = "blindfold", slot_l_hand_str = "blindfold") + body_parts_covered = 0 + enables_planes = list(VIS_CH_ID,VIS_CH_WANTED,VIS_CH_IMPTRACK,VIS_CH_IMPLOYAL,VIS_CH_IMPCHEM) + var/eye = null + +/obj/item/clothing/glasses/hud/security/eyepatch2/verb/switcheye() + set name = "Switch Eyepatch" + set category = "Object" + set src in usr + if(!isliving(usr)) return + if(usr.stat) return + + eye = !eye + if(eye) + icon_state = "[icon_state]_1" + else + icon_state = initial(icon_state) + update_clothing_icon() + + +/obj/item/clothing/glasses/hud/health/eyepatch + name = "Medical Hudpatch" + desc = "An eyepatch with built in scanners, that analyzes those in view and provides accurate data about their health status." + icon_state = "eyepatch" + item_state_slots = list(slot_r_hand_str = "blindfold", slot_l_hand_str = "blindfold") + body_parts_covered = 0 + enables_planes = list(VIS_CH_STATUS,VIS_CH_HEALTH) + var/eye = null + +/obj/item/clothing/glasses/hud/health/eyepatch/verb/switcheye() + set name = "Switch Eyepatch" + set category = "Object" + set src in usr + if(!isliving(usr)) return + if(usr.stat) return + + eye = !eye + if(eye) + icon_state = "[icon_state]_1" + else + icon_state = initial(icon_state) + update_clothing_icon() + +//Rx Variants +/obj/item/clothing/glasses/omnihud/med/prescription + 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. \ + They can also read data from active suit sensors using the crew monitoring system. \ + These have been equipped with prescription lenses." + prescription = TRUE + +/obj/item/clothing/glasses/omnihud/sec/prescription + 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. \ + They also have access to security alerts such as camera and motion sensor alarms. \ + These have been equipped with prescription lenses." + prescription = TRUE + +/obj/item/clothing/glasses/omnihud/eng/prescription + 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, \ + and can also display a list of atmospheric, fire, and power alarms. \ + These have been equipped with prescription lenses." + prescription = TRUE + +/obj/item/clothing/glasses/omnihud/rnd/prescription + desc = "The ARG-62-R AR Glasses are capable of displaying information on individuals. \ + They... don't seem to do anything particularly interesting? But hey, at least they look kinda science-y. \ + These have been equipped with prescription lenses." + prescription = TRUE + +/obj/item/clothing/glasses/omnihud/all/prescription + desc = "The ARG-62-B AR Glasses are capable of displaying information on individuals. \ + These have been upgraded with (almost) every feature the lesser models have. Now we're talkin'. \ +
Offers full protection against bright flashes/welders and full access to system alarm monitoring. \ + These have been equipped with prescription lenses." + prescription = TRUE + +/obj/item/clothing/glasses/omnihud/prescription + 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. \ +
They are also fitted with toggleable cosmetic electrochromic lenses. \ + The lenses will not protect against sudden bright flashes or welding. \ + These have been equipped with prescription lenses." + prescription = TRUE diff --git a/vorestation.dme b/vorestation.dme index 8c2e0b580e..65cb9d8be1 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2361,7 +2361,6 @@ #include "code\modules\clothing\glasses\glasses.dm" #include "code\modules\clothing\glasses\glasses_vr.dm" #include "code\modules\clothing\glasses\hud.dm" -#include "code\modules\clothing\glasses\hud_vr.dm" #include "code\modules\clothing\gloves\antagonist.dm" #include "code\modules\clothing\gloves\arm_guards.dm" #include "code\modules\clothing\gloves\arm_guards_vr.dm"