diff --git a/code/modules/client/preference_setup/loadout/loadout_cyberware.dm b/code/modules/client/preference_setup/loadout/loadout_cyberware.dm index 8a0b45876c..d66a45e100 100644 --- a/code/modules/client/preference_setup/loadout/loadout_cyberware.dm +++ b/code/modules/client/preference_setup/loadout/loadout_cyberware.dm @@ -9,6 +9,7 @@ /datum/gear/utility/implant/tracking display_name = "implant, tracking" + description = "A simple tracking implant, designed to constantly report the subject's location. Usually implanted into those considered a security or flight risk, or for the purposes of restraining orders." path = /obj/item/implant/tracking/weak cost = 0 diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm index 9b8137f5e9..bd96574cae 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm @@ -281,3 +281,33 @@ /datum/gear/eyes/bigshot display_name = "Big Shot's Glasses" path = /obj/item/clothing/glasses/sunglasses/bigshot + +/datum/gear/eyes/ar_mantle + display_name = "Augmented Reality Mantle" + description = "A full-face, partially-obscuring visor. Covers the face and eyes. Has a simple augmented-reality display on the inside, and can be toggled into a corrective vision mode." + path = /obj/item/clothing/glasses/omnihud/mantle + +/datum/gear/eyes/ar_mantle_sec + display_name = "Augmented Reality Mantle (Sec)" + description = "A full-face, partially-obscuring visor. Covers the face and eyes. Has a security-oriented augmented-reality display on the inside, and can be toggled into a corrective vision mode. Flash-resistant." + path = /obj/item/clothing/glasses/omnihud/mantle/sec + allowed_roles = list(JOB_SECURITY_OFFICER,JOB_HEAD_OF_SECURITY,JOB_WARDEN, JOB_DETECTIVE) + +/datum/gear/eyes/ar_mantle_med + display_name = "Augmented Reality Mantle (Med)" + description = "A full-face, partially-obscuring visor. Covers the face and eyes. Has a medical-oriented augmented-reality display on the inside, and can be toggled into a corrective vision mode." + path = /obj/item/clothing/glasses/omnihud/mantle/med + allowed_roles = list(JOB_MEDICAL_DOCTOR,JOB_CHIEF_MEDICAL_OFFICER,JOB_CHEMIST,JOB_PARAMEDIC,JOB_GENETICIST, JOB_PSYCHIATRIST) + +/datum/gear/eyes/ar_mantle_eng + display_name = "Augmented Reality Mantle (Eng)" + description = "A full-face, partially-obscuring visor. Covers the face and eyes. Has an engineering-oriented augmented-reality display on the inside, and can be toggled into a corrective vision mode. UV lining blocks flashes and welding glare." + path = /obj/item/clothing/glasses/omnihud/mantle/eng + allowed_roles = list(JOB_ENGINEER,JOB_CHIEF_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) + +/datum/gear/eyes/ar_mantle_cmd + display_name = "Augmented Reality Mantle (Command)" + description = "A full-face, partially-obscuring visor. Covers the face and eyes. Has a command-oriented augmented-reality display on the inside, and can be toggled into a corrective vision mode. Flash-resistant." + path = /obj/item/clothing/glasses/omnihud/mantle/cmd + cost = 2 + allowed_roles = list(JOB_SITE_MANAGER,JOB_HEAD_OF_PERSONNEL) diff --git a/code/modules/clothing/glasses/glasses_vr.dm b/code/modules/clothing/glasses/glasses_vr.dm index 4c78a50816..8c3562b214 100644 --- a/code/modules/clothing/glasses/glasses_vr.dm +++ b/code/modules/clothing/glasses/glasses_vr.dm @@ -170,7 +170,16 @@ /obj/item/clothing/glasses name = DEVELOPER_WARNING_NAME sprite_sheets = list( - SPECIES_TESHARI = 'icons/inventory/eyes/mob_teshari.dmi', - SPECIES_VOX = 'icons/inventory/eyes/mob_vox.dmi', - SPECIES_WEREBEAST = 'icons/inventory/eyes/mob_werebeast.dmi' + SPECIES_TESHARI = 'icons/inventory/eyes/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/eyes/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/eyes/mob_werebeast.dmi', + SPECIES_TAJARAN = 'icons/inventory/eyes/mob_tajaran.dmi', + SPECIES_UNATHI = 'icons/inventory/eyes/mob_unathi.dmi', + SPECIES_SERGAL = 'icons/inventory/eyes/mob_sergal.dmi', + SPECIES_NEVREAN = 'icons/inventory/eyes/mob_nevrean.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/eyes/mob_fox.dmi', + SPECIES_ZORREN_FLAT = 'icons/inventory/eyes/mob_fennec.dmi', + SPECIES_AKULA = 'icons/inventory/eyes/mob_akula.dmi', + SPECIES_VULPKANIN = 'icons/inventory/eyes/mob_vulpkanin.dmi', + SPECIES_XENOCHIMERA = 'icons/inventory/eyes/mob_tajaran.dmi' ) diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 884d6faae3..6b8df3d0e3 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -74,7 +74,7 @@ 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 - + var/can_shade = TRUE /obj/item/clothing/glasses/omnihud/Initialize(mapload) . = ..() @@ -168,7 +168,7 @@ flags_inv &= ~HIDEEYES icon_state = "glasses" else - to_chat(usr, "The [src] don't seem to support this functionality.") + to_chat(usr, "It doesn't seem possible to do that with \the [src].") else if(!prescription) if(icon_state == "glasses") to_chat(usr, "You darken the electrochromic lenses of \the [src] to one-way transparency.") @@ -181,7 +181,9 @@ flags_inv &= ~HIDEEYES icon_state = "glasses" else - to_chat(usr, "The [src] don't seem to support this functionality.") + to_chat(usr, "It doesn't seem possible to do that with \the [src].") + else if(!can_shade) + to_chat(usr, "It doesn't seem possible to do that with \the [src].") update_clothing_icon() /obj/item/clothing/glasses/omnihud/verb/toggle_ar_planes() @@ -195,11 +197,11 @@ 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].")) + to_chat(usr, span_notice("You disable 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].")) + to_chat(usr, span_notice("You enable the Augmented Reality HUD of your [src.name].")) ar_toggled = !ar_toggled usr.update_mob_action_buttons() usr.recalculate_vis() @@ -217,6 +219,8 @@ icon_state = "visor_CIV" item_state = "visor_CIV" + can_shade = FALSE + /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. \ @@ -280,6 +284,7 @@ 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. + can_shade = FALSE /obj/item/clothing/glasses/omnihud/eng/meson/attack_self(mob/user) if(!active) @@ -437,3 +442,58 @@ The lenses will not protect against sudden bright flashes or welding. \ These have been equipped with prescription lenses." prescription = TRUE + +/obj/item/clothing/glasses/omnihud/mantle + name = "AR mantle" + desc = "A full-face, partially-obscuring visor favoured by certain subcultures and those with sensitive eyes. Covers the face and eyes, but it's not enough to actually hide your identity. The interior has a simple augmented-reality display that aids with daily tasks. It can be toggled in and out of corrective vision mode via integrated subroutine." + icon_state = "mantle_HUD" + item_state = "mantle_HUD" + body_parts_covered = FACE|EYES + can_shade = FALSE + +/obj/item/clothing/glasses/omnihud/mantle/verb/switcheye() + set name = "Toggle Autocorrective Vision" + set category = "Object" + set src in usr + if(!isliving(usr)) return + if(usr.stat) return + + prescription = !prescription + if(prescription) + to_chat(usr, "You switch the [src] into autocorrective mode.") + else + to_chat(usr, "You switch the [src] out of autocorrective mode.") + +/obj/item/clothing/glasses/omnihud/mantle/sec + name = "security AR mantle" + desc = "A full-face, partially-obscuring visor favoured by certain subcultures and those with sensitive eyes. Covers the face and eyes, but it's not enough to actually hide your identity. The interior has a simple augmented-reality display that aids with daily tasks. It can be toggled in and out of corrective vision mode via integrated subroutine. This version includes extra security-related functions." + mode = "sec" + flash_protection = FLASH_PROTECTION_MODERATE + 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/mantle/med + name = "medical AR mantle" + desc = "A full-face, partially-obscuring visor favoured by certain subcultures and those with sensitive eyes. Covers the face and eyes, but it's not enough to actually hide your identity. The interior has a simple augmented-reality display that aids with daily tasks. It can be toggled in and out of corrective vision mode via integrated subroutine. This version includes extra medical-related functions." + 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/mantle/eng + name = "engineering AR mantle" + desc = "A full-face, partially-obscuring visor favoured by certain subcultures and those with sensitive eyes. Covers the face and eyes, but it's not enough to actually hide your identity. The interior has a simple augmented-reality display that aids with daily tasks. It can be toggled in and out of corrective vision mode via integrated subroutine. This version includes extra engineering-related functions." + 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/mantle/cmd + name = "command AR mantle" + desc = "A full-face, partially-obscuring visor favoured by certain subcultures and those with sensitive eyes. Covers the face and eyes, but it's not enough to actually hide your identity. The interior has a simple augmented-reality display that aids with daily tasks. It can be toggled in and out of corrective vision mode via integrated subroutine. This version includes extra command-related functions." + 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 diff --git a/icons/inventory/eyes/item.dmi b/icons/inventory/eyes/item.dmi index 3ed94616da..dae785a427 100644 Binary files a/icons/inventory/eyes/item.dmi and b/icons/inventory/eyes/item.dmi differ diff --git a/icons/inventory/eyes/mob_akula.dmi b/icons/inventory/eyes/mob_akula.dmi new file mode 100644 index 0000000000..d2ea4594f5 Binary files /dev/null and b/icons/inventory/eyes/mob_akula.dmi differ diff --git a/icons/inventory/eyes/mob_fennec.dmi b/icons/inventory/eyes/mob_fennec.dmi new file mode 100644 index 0000000000..c73d33509c Binary files /dev/null and b/icons/inventory/eyes/mob_fennec.dmi differ diff --git a/icons/inventory/eyes/mob_fox.dmi b/icons/inventory/eyes/mob_fox.dmi new file mode 100644 index 0000000000..c73d33509c Binary files /dev/null and b/icons/inventory/eyes/mob_fox.dmi differ diff --git a/icons/inventory/eyes/mob_nevrean.dmi b/icons/inventory/eyes/mob_nevrean.dmi new file mode 100644 index 0000000000..aa54eba9c5 Binary files /dev/null and b/icons/inventory/eyes/mob_nevrean.dmi differ diff --git a/icons/inventory/eyes/mob_sergal.dmi b/icons/inventory/eyes/mob_sergal.dmi new file mode 100644 index 0000000000..0d66537281 Binary files /dev/null and b/icons/inventory/eyes/mob_sergal.dmi differ diff --git a/icons/inventory/eyes/mob_tajaran.dmi b/icons/inventory/eyes/mob_tajaran.dmi new file mode 100644 index 0000000000..f5356394b0 Binary files /dev/null and b/icons/inventory/eyes/mob_tajaran.dmi differ diff --git a/icons/inventory/eyes/mob_unathi.dmi b/icons/inventory/eyes/mob_unathi.dmi new file mode 100644 index 0000000000..bcc009e2ab Binary files /dev/null and b/icons/inventory/eyes/mob_unathi.dmi differ diff --git a/icons/inventory/eyes/mob_vulpkanin.dmi b/icons/inventory/eyes/mob_vulpkanin.dmi new file mode 100644 index 0000000000..e7ba7d25d2 Binary files /dev/null and b/icons/inventory/eyes/mob_vulpkanin.dmi differ diff --git a/icons/inventory/face/item_vr.dmi b/icons/inventory/face/item_vr.dmi index c2e21c4d9e..c961782070 100644 Binary files a/icons/inventory/face/item_vr.dmi and b/icons/inventory/face/item_vr.dmi differ diff --git a/icons/inventory/face/mob.dmi b/icons/inventory/face/mob.dmi index 98a73bc788..1b71f279df 100644 Binary files a/icons/inventory/face/mob.dmi and b/icons/inventory/face/mob.dmi differ diff --git a/icons/inventory/face/mob_vr.dmi b/icons/inventory/face/mob_vr.dmi index 5662911bfb..a69d249814 100644 Binary files a/icons/inventory/face/mob_vr.dmi and b/icons/inventory/face/mob_vr.dmi differ