diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 670cce33cb0..42bfb5e7019 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -178,6 +178,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/clothing/glasses/hud/diagnostic = 1, /obj/item/clothing/glasses/hud/health = 1, /obj/item/clothing/glasses/salesman = 1, + /obj/item/clothing/glasses/nightmare_vision = 1, /obj/item/clothing/glasses/welding = 1, /obj/item/clothing/gloves/tackler/offbrand = 1, /obj/item/clothing/head/helmet/old = 1, diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index 325b5d88955..b931d41cc0b 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -185,6 +185,9 @@ /datum/client_colour/glass_colour/gray colour = "#cccccc" +/datum/client_colour/glass_colour/nightmare + colour = list(255,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, -130,0,0,0) //every color is either red or black + /datum/client_colour/monochrome colour = list(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) priority = PRIORITY_HIGH //we can't see colors anyway! diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 7ce3d84b42e..5034caac5bd 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -22,6 +22,8 @@ var/vision_correction = FALSE /// Colors your vision when worn var/glass_colour_type + /// Whether or not vision coloring is forcing + var/forced_glass_color = FALSE /obj/item/clothing/glasses/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] is stabbing \the [src] into [user.p_their()] eyes! It looks like [user.p_theyre()] trying to commit suicide!")) @@ -29,7 +31,7 @@ /obj/item/clothing/glasses/examine(mob/user) . = ..() - if(glass_colour_type && ishuman(user)) + if(glass_colour_type && !forced_glass_color && ishuman(user)) . += span_notice("Alt-click to toggle [p_their()] colors.") /obj/item/clothing/glasses/visor_toggling() @@ -64,7 +66,7 @@ eyes.applyOrganDamage(5) /obj/item/clothing/glasses/AltClick(mob/user) - if(glass_colour_type && ishuman(user)) + if(glass_colour_type && !forced_glass_color && ishuman(user)) var/mob/living/carbon/human/human_user = user if (human_user.glasses != src) @@ -92,7 +94,7 @@ /mob/living/carbon/human/proc/update_glasses_color(obj/item/clothing/glasses/G, glasses_equipped) - if (HAS_TRAIT(src, TRAIT_SEE_GLASS_COLORS) && glasses_equipped) + if((HAS_TRAIT(src, TRAIT_SEE_GLASS_COLORS) || G.forced_glass_color) && glasses_equipped) add_client_colour(G.glass_colour_type) else remove_client_colour(G.glass_colour_type) @@ -622,3 +624,11 @@ icon_state = initial(icon_state) desc = initial(desc) bigshot.update_inv_glasses() + +/obj/item/clothing/glasses/nightmare_vision + name = "nightmare vision goggles" + desc = "They give off a putrid stench. Seemingly no effect on anything." + icon_state = "nightmare" + inhand_icon_state = "glasses" + glass_colour_type = /datum/client_colour/glass_colour/nightmare + forced_glass_color = TRUE diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index f5390c257e0..3eb9737dfd9 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 7e5e8c6e560..80eabd9b7de 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ