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"