From cfc9af9fdc62b6c2f7336eac3754f7ad9a05a8d1 Mon Sep 17 00:00:00 2001
From: CRUNCH <143041327+Fordoxia@users.noreply.github.com>
Date: Tue, 21 Oct 2025 19:32:56 +0100
Subject: [PATCH] Makes the AVD-CNED glasses even more advanced - with
supermatter hallucination immunity! (#30444)
* Update outfit_debug.dm
* Update outfit_debug.dm
* Update outfit_debug.dm
* Update outfit_debug.dm
* Update outfit_debug.dm
* Update outfit_debug.dm
* Update code/datums/outfits/outfit_debug.dm
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>
* Update outfit_debug.dm
---------
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
---
code/datums/outfits/outfit_debug.dm | 65 ++++++++++++++++-------------
1 file changed, 35 insertions(+), 30 deletions(-)
diff --git a/code/datums/outfits/outfit_debug.dm b/code/datums/outfits/outfit_debug.dm
index 908eafdb38a..7f7205e2396 100644
--- a/code/datums/outfits/outfit_debug.dm
+++ b/code/datums/outfits/outfit_debug.dm
@@ -93,51 +93,56 @@
/obj/item/clothing/glasses/hud/debug
name = "AVD-CNED glasses"
- desc = "Diagnostic, Hydroponic, Medical, Security, and Skills HUD. Built-in advanced reagent scanner. Alt-click to toggle X-ray vision."
+ desc = "Diagnostic, Hydroponic, Medical, and Security HUD. Built-in advanced reagent scanner. Protects the wearer from supermatter hallucinations and welding flashes."
icon_state = "nvgmeson"
hud_debug = TRUE
flash_protect = FLASH_PROTECTION_WELDER
scan_reagents_advanced = TRUE
-
prescription_upgradable = FALSE
-
hud_types = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED, DATA_HUD_SECURITY_ADVANCED, DATA_HUD_HYDROPONIC)
-
var/xray = FALSE
-/obj/item/clothing/glasses/hud/debug/equipped(mob/living/carbon/human/user, slot)
- ..()
- if(xray)
- add_xray(user)
+/obj/item/clothing/glasses/hud/debug/examine(mob/user)
+ . = ..()
+ . += "Alt-Click to toggle X-ray vision."
-/obj/item/clothing/glasses/hud/debug/dropped(mob/living/carbon/human/user)
+/obj/item/clothing/glasses/hud/debug/equipped(mob/user, slot)
..()
- if(xray)
- remove_xray(user)
+ if(slot == ITEM_SLOT_EYES)
+ handle_traits(user, TRUE)
+ else
+ handle_traits(user)
-/obj/item/clothing/glasses/hud/debug/AltClick(mob/user)
+/obj/item/clothing/glasses/hud/debug/dropped(mob/user)
+ ..()
+ handle_traits(user)
+
+/obj/item/clothing/glasses/hud/debug/AltClick(mob/living/carbon/human/user)
+ to_chat(user, "You [xray ? "de" : ""]activate the x-ray setting on [src].")
+ xray = !xray
+ if(istype(user) && user.glasses == src)
+ handle_traits(user, TRUE)
+
+/obj/item/clothing/glasses/hud/debug/proc/handle_traits(mob/user, worn = FALSE)
if(!ishuman(user))
return
- var/mob/living/carbon/human/human_user = user
- if(human_user.glasses != src)
- return
- if(xray)
- remove_xray(human_user)
+
+ if(worn)
+ if(!HAS_TRAIT_FROM(user, SM_HALLUCINATION_IMMUNE, "debug_glasses[UID()]"))
+ ADD_TRAIT(user, SM_HALLUCINATION_IMMUNE, "debug_glasses[UID()]")
else
- add_xray(human_user)
- xray = !xray
- to_chat(user, "You [!xray ? "de" : ""]activate the x-ray setting on [src]")
- human_user.update_sight()
+ REMOVE_TRAIT(user, SM_HALLUCINATION_IMMUNE, "debug_glasses[UID()]")
-/obj/item/clothing/glasses/hud/debug/proc/remove_xray(mob/user)
- see_in_dark = initial(see_in_dark)
- lighting_alpha = initial(lighting_alpha)
- REMOVE_TRAIT(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]")
-
-/obj/item/clothing/glasses/hud/debug/proc/add_xray(mob/user)
- see_in_dark = 8
- lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
- ADD_TRAIT(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]")
+ if(xray && worn)
+ see_in_dark = 8
+ lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
+ if(!HAS_TRAIT_FROM(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]"))
+ ADD_TRAIT(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]")
+ else
+ see_in_dark = initial(see_in_dark)
+ lighting_alpha = initial(lighting_alpha)
+ REMOVE_TRAIT(user, TRAIT_XRAY_VISION, "debug_glasses[UID()]")
+ user.update_sight()
/obj/item/debug/human_spawner
name = "human spawner"