From c1bfb4ccdf9ff2cb43b777aef9233ef427e48e9d Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 02:12:46 -0400 Subject: [PATCH 01/31] the pr --- .../modular_cosmetics/code/face/glasses.dm | 149 ++++++++++++++---- 1 file changed, 120 insertions(+), 29 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 17a76d19b89728..6c22ff18d18cfd 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -255,13 +255,13 @@ /obj/item/clothing/glasses/hud/eyepatch/sec/blindfold name = "sec blindfold HUD" - desc = "a fake blindfold with a security HUD inside, helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." + desc = "A fake blindfold with a security HUD inside, helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." icon_state = "secfold" base_icon_state = "secfold" /obj/item/clothing/glasses/hud/eyepatch/med/blindfold name = "medical blindfold HUD" - desc = "a fake blindfold with a medical HUD inside, great for helping keep a poker face when dealing with patients." + desc = "A fake blindfold with a medical HUD inside, great for helping keep a poker face when dealing with patients." icon_state = "medfold" base_icon_state = "medfold" @@ -289,7 +289,7 @@ supported_bodyshapes = null bodyshape_icon_files = null icon_state = "glasses_regular" - desc = "A heads-up display that provides important info in (almost) real time. These don't really seem to work" + desc = "A heads-up display that provides important info in (almost) real time. These don't really seem to work." actions_types = list(/datum/action/item_action/toggle_mode) glass_colour_type = /datum/client_colour/glass_colour/gray /// Defines sound to be played upon mode switching @@ -498,27 +498,27 @@ /obj/item/clothing/glasses/hud/ar/aviator/security/prescription name = "prescription security HUD aviators" - desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records. This HUD has been fitted inside of a pair of sunglasses with toggleable electrochromatic tinting which. Has lenses that help correct eye sight." + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records. The HUD has been fitted inside of a pair of sunglasses with toggleable electrochromatic tinting and lenses that help correct eye sight." clothing_traits = list(TRAIT_SECURITY_HUD, TRAIT_NEARSIGHTED_CORRECTED) /obj/item/clothing/glasses/hud/ar/aviator/health/prescription name = "prescription medical HUD aviators" - desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status. This HUD has been fitted inside of a pair of sunglasses which has lenses that help correct eye sight." + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." clothing_traits = list(TRAIT_MEDICAL_HUD, TRAIT_NEARSIGHTED_CORRECTED) /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription name = "prescription meson HUD aviators" - desc = "A heads-up display used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions. This HUD has been fitted inside of a pair of sunglasses which has lenses that help correct eye sight." + desc = "A heads-up display used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." clothing_traits = list(TRAIT_MADNESS_IMMUNE, TRAIT_NEARSIGHTED_CORRECTED) /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription name = "prescription diagnostic HUD aviators" - desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits. This HUD has been fitted inside of a pair of sunglasses which has lenses that help correct eye sight." + desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." clothing_traits = list(TRAIT_DIAGNOSTIC_HUD, TRAIT_NEARSIGHTED_CORRECTED) /obj/item/clothing/glasses/hud/ar/aviator/science/prescription - name = "prescription science aviators" - desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance, which has lenses that help correct eye sight." + name = "prescription science HUD aviators" + desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER, TRAIT_NEARSIGHTED_CORRECTED) // Retinal projector @@ -560,76 +560,167 @@ icon_state = "projector_sci" clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER) +//Prescription Aviators// +/datum/crafting_recipe/secprescriptaviators + name = "Prescription Security HUD Aviators" + result = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/security = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/secprescriptaviatorsremoval + name = "Prescription Security HUD Aviators HUD removal" + result = /obj/item/clothing/glasses/regular + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/security/prescription = 1) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/medprescriptaviators + name = "Prescription Medical HUD Aviators" + result = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/health = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/medprescriptaviatorsremoval + name = "Prescription Medical HUD Aviators HUD removal" + result = /obj/item/clothing/glasses/regular + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/health/prescription = 1) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/mesonprescriptaviators + name = "Prescription Meson HUD Aviators" + result = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/meson = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/mesonprescriptaviatorsremoval + name = "Prescription Meson HUD Aviators HUD removal" + result = /obj/item/clothing/glasses/regular + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/meson/prescription = 1) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/roboprescriptaviators + name = "Prescription Diagonostic HUD Aviators" + result = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/diagnostic = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/roboprescriptaviatorsremoval + name = "Prescription Diagonostic HUD Aviators HUD removal" + result = /obj/item/clothing/glasses/regular + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription = 1) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/sciprescriptaviatorsremoval + name = "Prescription Science HUD Aviators HUD" + result = /item/clothing/glasses/hud/ar/aviator/science/prescription + time = 2 SECONDS + reqs = list(/item/clothing/glasses/hud/ar/aviator/science = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/sciprescriptaviatorsremoval + name = "Prescription Science HUD Aviators HUD removal" + result = /obj/item/clothing/glasses/regular + time = 2 SECONDS + reqs = list(/item/clothing/glasses/hud/ar/aviator/science/prescription = 1) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT +//Prescription Aviators End// + //Eyepatches// /datum/crafting_recipe/secpatch - name = "Security Eyepatch HUD" + name = "Security HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/sec reqs = list(/obj/item/clothing/glasses/hud/security = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) //Tools needed and requirements are kept the same as craftable HUD sunglasses// - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/secpatchremoval - name = "Security Eyepatch HUD removal" + name = "Security HUD Eyepatch HUD removal" result = /obj/item/clothing/glasses/eyepatch + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/eyepatch/sec = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/medpatch - name = "Medical Eyepatch HUD" + name = "Medical HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/med + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/health = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/medpatchremoval - name = "Medical Eyepatch HUD removal" + name = "Medical HUD Eyepatch HUD removal" result = /obj/item/clothing/glasses/eyepatch + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/eyepatch/med = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/mesonpatch - name = "Meson Eyepatch HUD" + name = "Meson HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/meson + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/meson = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/mesonpatchremoval - name = "Meson Eyepatch HUD removal" + name = "Meson HUD Eyepatch HUD removal" result = /obj/item/clothing/glasses/eyepatch + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/eyepatch/meson = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/robopatch - name = "Diagnostic Eyepatch HUD" + name = "Diagnostic HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/diagnostic + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/diagnostic = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/robopatchremoval - name = "Diagnostic Eyepatch HUD removal" + name = "Diagnostic HUD Eyepatch HUD removal" result = /obj/item/clothing/glasses/eyepatch + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/eyepatch/diagnostic = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/scipatch - name = "Science Eyepatch HUD" + name = "Science HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/sci + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/science = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/scipatchremoval - name = "Science Eyepatch HUD removal" + name = "Science HUD Eyepatch HUD removal" result = /obj/item/clothing/glasses/eyepatch + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/eyepatch/sci = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT //eyepatches end// //Regular Glasses From 9e208bd2bfcb7ade6c424e9da66ba43818d17291 Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 02:13:11 -0400 Subject: [PATCH 02/31] minceraft --- modular_doppler/modular_crafting/code/sheet_types.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/modular_doppler/modular_crafting/code/sheet_types.dm b/modular_doppler/modular_crafting/code/sheet_types.dm index 3fecfc76098b24..e3600ad6f888b8 100644 --- a/modular_doppler/modular_crafting/code/sheet_types.dm +++ b/modular_doppler/modular_crafting/code/sheet_types.dm @@ -99,6 +99,7 @@ GLOBAL_LIST_INIT(doppler_cardboard_recipes, list( GLOBAL_LIST_INIT(doppler_cloth_recipes, list( new/datum/stack_recipe("towel", /obj/item/towel, 2, category = CAT_CLOTHING), new/datum/stack_recipe("eyepatch wrap", /obj/item/clothing/glasses/eyepatch/wrap, 2, category = CAT_CLOTHING), + new/datum/stack_recipe("white eyepatch", /obj/item/clothing/glasses/eyepatch/white, 2, category = CAT_CLOTHING), new/datum/stack_recipe("eyepatch", /obj/item/clothing/glasses/eyepatch, 2, category = CAT_CLOTHING), new/datum/stack_recipe("mantle (teshari)", /obj/item/clothing/neck/tesharian_mantle, 3, category = CAT_CLOTHING), new/datum/stack_recipe("saddlebags", /obj/item/storage/backpack/saddlebags, 5, category = CAT_CONTAINERS), From 57a42c32253ec640d4e7c7dd7a685cb1a242e4de Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 02:28:01 -0400 Subject: [PATCH 03/31] oopsies --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 6c22ff18d18cfd..8ff8b971bd679a 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -627,9 +627,9 @@ /datum/crafting_recipe/sciprescriptaviatorsremoval name = "Prescription Science HUD Aviators HUD" - result = /item/clothing/glasses/hud/ar/aviator/science/prescription + result = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription time = 2 SECONDS - reqs = list(/item/clothing/glasses/hud/ar/aviator/science = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/science = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -637,7 +637,7 @@ name = "Prescription Science HUD Aviators HUD removal" result = /obj/item/clothing/glasses/regular time = 2 SECONDS - reqs = list(/item/clothing/glasses/hud/ar/aviator/science/prescription = 1) + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/science/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT //Prescription Aviators End// From 3be55441f4d083e4aa3c9f9ac581c63c5165886f Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 02:57:30 -0400 Subject: [PATCH 04/31] loadout --- .../loadout_categories/categories/glasses.dm | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index 2cec5ece877554..28e3e3cbb3cbea 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -112,6 +112,26 @@ name = "Aviators (Science)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/science +/datum/loadout_item/glasses/hud/aviator_meson/prescription + name = "Prescription Aviators (Meson)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription + +/datum/loadout_item/glasses/hud/aviator_health/prescription + name = "Prescription Aviators (Medical)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription + +/datum/loadout_item/glasses/hud/aviator_security/prescription + name = "Prescription Aviators (Security)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription + +/datum/loadout_item/glasses/hud/aviator_diagnostic/prescription + name = "Prescription Aviators (Diagnostics)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription + +/datum/loadout_item/glasses/hud/aviator_science/prescription + name = "Prescription Aviators (Science)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription + /datum/loadout_item/glasses/hud/hud_eyepatch_meson name = "HUD Eyepatch (Meson)" item_path = /obj/item/clothing/glasses/hud/eyepatch/meson From 0f793bb625e31265bfb1df24ee9148e4d4ae78ef Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 05:36:49 -0400 Subject: [PATCH 05/31] the flashening --- .../modular_cosmetics/code/face/glasses.dm | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 8ff8b971bd679a..8c9ca12610ac54 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -348,6 +348,7 @@ if(MODE_OFF) if(MODE_OFF_FLASH_PROTECTION in modes) flash_protect = FLASH_PROTECTION_FLASH + tint = 1 balloon_alert(user, span_notice("[modes_msg[MODE_OFF_FLASH_PROTECTION]]")) else balloon_alert(user, span_notice("[modes_msg[mode]]")) @@ -424,73 +425,69 @@ name = "aviators" desc = "A pair of designer sunglasses with electrochromatic darkening lenses!" icon_state = "aviator" + inhand_icon_state = "sunglasses" off_state = "aviator_off" icon = 'modular_doppler/modular_cosmetics/icons/obj/face/glasses.dmi' worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' - flash_protect = FLASH_PROTECTION_FLASH - modes = list(MODE_OFF, MODE_ON) + flash_protect = FLASH_PROTECTION_NONE + modes = list(MODE_OFF_FLASH_PROTECTION, MODE_ON) + modes_msg = list(MODE_OFF_FLASH_PROTECTION = "flash protection enabled", MODE_ON = "flash protection disabled") //a little counterintuitive, but the system was built with the security aviators in mind tint = 0 -/obj/item/clothing/glasses/fake_sunglasses/aviator - name = "aviators" - desc = "A pair of designer sunglasses. Doesn't seem like it'll block flashes." - icon_state = "aviator" - icon = 'modular_doppler/modular_cosmetics/icons/obj/face/glasses.dmi' - worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' - supported_bodyshapes = null - bodyshape_icon_files = null - // Security Aviators /obj/item/clothing/glasses/hud/ar/aviator/security name = "security HUD aviators" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records. This HUD has been fitted inside of a pair of sunglasses with toggleable electrochromatic tinting." icon_state = "aviator_sec" + inhand_icon_state = "sunhudsec" //Only aviators that don't default to blank sunglasses icon when off off_state = "aviator_sec_flash" - flash_protect = FLASH_PROTECTION_NONE clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/red - modes = list(MODE_OFF_FLASH_PROTECTION, MODE_ON) - modes_msg = list(MODE_OFF_FLASH_PROTECTION = "flash protection mode", MODE_ON = "optical matrix enabled") + modes_msg = list(MODE_OFF_FLASH_PROTECTION = "flash protection mode", MODE_ON = "optical matrix mode") // Medical Aviators /obj/item/clothing/glasses/hud/ar/aviator/health name = "medical HUD aviators" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status. This HUD has been fitted inside of a pair of sunglasses." icon_state = "aviator_med" - flash_protect = FLASH_PROTECTION_NONE + modes = list(MODE_OFF, MODE_ON) clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue + modes_msg = list(MODE_ON = "optical matrix enabled", MODE_OFF = "optical matrix disabled") // (Normal) meson scanner Aviators /obj/item/clothing/glasses/hud/ar/aviator/meson name = "meson HUD aviators" desc = "A heads-up display used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions. This HUD has been fitted inside of a pair of sunglasses." icon_state = "aviator_meson" - flash_protect = FLASH_PROTECTION_NONE + modes = list(MODE_OFF, MODE_ON) clothing_traits = list(TRAIT_MADNESS_IMMUNE) vision_flags = SEE_TURFS color_cutoffs = list(5, 15, 5) glass_colour_type = /datum/client_colour/glass_colour/lightgreen + modes_msg = list(MODE_ON = "optical matrix enabled", MODE_OFF = "optical matrix disabled") // diagnostic Aviators /obj/item/clothing/glasses/hud/ar/aviator/diagnostic name = "diagnostic HUD aviators" desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits. This HUD has been fitted inside of a pair of sunglasses." icon_state = "aviator_diagnostic" - flash_protect = FLASH_PROTECTION_NONE + modes = list(MODE_OFF, MODE_ON) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange + modes_msg = list(MODE_ON = "optical matrix enabled", MODE_OFF = "optical matrix disabled") // Science Aviators /obj/item/clothing/glasses/hud/ar/aviator/science name = "science aviators" desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance." icon_state = "aviator_sci" - flash_protect = FLASH_PROTECTION_NONE + modes = list(MODE_OFF, MODE_ON) glass_colour_type = /datum/client_colour/glass_colour/purple resistance_flags = ACID_PROOF armor_type = /datum/armor/aviator_science clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER) + modes_msg = list(MODE_ON = "optical matrix enabled", MODE_OFF = "optical matrix disabled") /datum/armor/aviator_science fire = 80 @@ -610,7 +607,7 @@ category = CAT_EQUIPMENT /datum/crafting_recipe/roboprescriptaviators - name = "Prescription Diagonostic HUD Aviators" + name = "Prescription Diagnostic HUD Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/diagnostic = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) From 36f1d277ca3cdbbef4b38f924e315abfa35e558c Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 06:21:21 -0400 Subject: [PATCH 06/31] buge fix --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 8c9ca12610ac54..ca0a77718d5e1b 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -323,6 +323,9 @@ clothing_traits = null . = ..() clothing_traits = traits + // Reapply corrective traits even when off + if(TRAIT_NEARSIGHTED_CORRECTED in traits) + ADD_CLOTHING_TRAIT(user, TRAIT_NEARSIGHTED_CORRECTED) /obj/item/clothing/glasses/hud/ar/proc/toggle_mode(mob/user, voluntary) @@ -387,8 +390,6 @@ if(!ishuman(user) || human.glasses != src) // Make sure they're a human wearing the glasses first return for(var/trait in clothing_traits) - if(trait == TRAIT_NEARSIGHTED_CORRECTED) // this isn't a HUD! - continue REMOVE_CLOTHING_TRAIT(human, trait) /obj/item/clothing/glasses/hud/ar/proc/reset_vars() From 2fbac289943575ae5d1f98135d04c8ab2e9d69c3 Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 06:42:51 -0400 Subject: [PATCH 07/31] they call me the flipper --- .../icons/mob/face/glasses.dmi | Bin 8865 -> 8380 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi b/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi index 75b053659af770753ea617c3e827defa3544d209..fe97f04d3dadb4f5ae694ae90b654ca5de03be48 100644 GIT binary patch literal 8380 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 K+Qpac!~X-I>xKsa From 818380a4a463bd40b8ffa9ac5e898936637375d8 Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 07:02:20 -0400 Subject: [PATCH 08/31] they're calling it the jonesy of aviators --- modular_doppler/loadout_categories/categories/glasses.dm | 4 ++++ modular_doppler/modular_cosmetics/code/face/glasses.dm | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index 28e3e3cbb3cbea..4aa2f9739d4929 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -112,6 +112,10 @@ name = "Aviators (Science)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/science +/datum/loadout_item/glasses/hud/ar/aviator/prescription + name = "Prescription Aviators (None)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/prescription + /datum/loadout_item/glasses/hud/aviator_meson/prescription name = "Prescription Aviators (Meson)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index ca0a77718d5e1b..4aec98c942b331 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -390,6 +390,8 @@ if(!ishuman(user) || human.glasses != src) // Make sure they're a human wearing the glasses first return for(var/trait in clothing_traits) + if(trait == TRAIT_NEARSIGHTED_CORRECTED) // this isn't a HUD! + continue REMOVE_CLOTHING_TRAIT(human, trait) /obj/item/clothing/glasses/hud/ar/proc/reset_vars() @@ -494,6 +496,11 @@ fire = 80 acid = 100 +/obj/item/clothing/glasses/hud/ar/aviator/prescription + name = "prescription aviators" + desc = "A pair of designer sunglasses with electrochromatic darkening lenses that also help correct eye sight! Sweet!" + clothing_traits = list(TRAIT_NEARSIGHTED_CORRECTED) + /obj/item/clothing/glasses/hud/ar/aviator/security/prescription name = "prescription security HUD aviators" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records. The HUD has been fitted inside of a pair of sunglasses with toggleable electrochromatic tinting and lenses that help correct eye sight." From da66c72c8ad5ae1fdcc5c9218e4fce3478e318b2 Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 07:21:09 -0400 Subject: [PATCH 09/31] default dance --- .../modular_cosmetics/code/face/glasses.dm | 38 +++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 4aec98c942b331..d6409324ab6b0b 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -566,6 +566,22 @@ clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER) //Prescription Aviators// +/datum/crafting_recipe/defaultprescriptaviators + name = "Prescription Aviators" + result = /obj/item/clothing/glasses/hud/ar/aviator/prescription + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/ = 1, /obj/item/clothing/glasses/regular = 1) //No cable coil requirement since we're not adding a hud + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + +/datum/crafting_recipe/defaultprescriptaviatorsremoval + name = "Aviators prescription removal" + result = /obj/item/clothing/glasses/hud/ar/aviator/ + time = 2 SECONDS + reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/prescription = 1) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_EQUIPMENT + /datum/crafting_recipe/secprescriptaviators name = "Prescription Security HUD Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription @@ -575,8 +591,8 @@ category = CAT_EQUIPMENT /datum/crafting_recipe/secprescriptaviatorsremoval - name = "Prescription Security HUD Aviators HUD removal" - result = /obj/item/clothing/glasses/regular + name = "Security HUD Aviators prescription removal" + result = /obj/item/clothing/glasses/hud/ar/aviator/security/ time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/security/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) @@ -591,8 +607,8 @@ category = CAT_EQUIPMENT /datum/crafting_recipe/medprescriptaviatorsremoval - name = "Prescription Medical HUD Aviators HUD removal" - result = /obj/item/clothing/glasses/regular + name = "Medical HUD Aviators prescription removal" + result = /obj/item/clothing/glasses/hud/ar/aviator/health/ time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/health/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) @@ -607,8 +623,8 @@ category = CAT_EQUIPMENT /datum/crafting_recipe/mesonprescriptaviatorsremoval - name = "Prescription Meson HUD Aviators HUD removal" - result = /obj/item/clothing/glasses/regular + name = "Meson HUD Aviators prescription removal" + result = /obj/item/clothing/glasses/hud/ar/aviator/meson time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/meson/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) @@ -623,15 +639,15 @@ category = CAT_EQUIPMENT /datum/crafting_recipe/roboprescriptaviatorsremoval - name = "Prescription Diagonostic HUD Aviators HUD removal" - result = /obj/item/clothing/glasses/regular + name = "Diagnostic HUD Aviators prescription removal" + result = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/ time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT /datum/crafting_recipe/sciprescriptaviatorsremoval - name = "Prescription Science HUD Aviators HUD" + name = "Prescription Science HUD Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/science = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) @@ -639,8 +655,8 @@ category = CAT_EQUIPMENT /datum/crafting_recipe/sciprescriptaviatorsremoval - name = "Prescription Science HUD Aviators HUD removal" - result = /obj/item/clothing/glasses/regular + name = "Science HUD Aviators prescription removal" + result = /obj/item/clothing/glasses/hud/ar/aviator/science/ time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/science/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) From 8ef06ee89f59a6e314d505749fc9b0e7436a0d48 Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 07:36:22 -0400 Subject: [PATCH 10/31] what if there were edge cases... --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index d6409324ab6b0b..8f599faedf8b40 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -572,7 +572,7 @@ time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/ = 1, /obj/item/clothing/glasses/regular = 1) //No cable coil requirement since we're not adding a hud tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_EQUIPMENT + category = CAT_CLOTHING //these are the only version that isn't in the equipment category because of no hud too /datum/crafting_recipe/defaultprescriptaviatorsremoval name = "Aviators prescription removal" @@ -580,7 +580,7 @@ time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_EQUIPMENT + category = CAT_CLOTHING /datum/crafting_recipe/secprescriptaviators name = "Prescription Security HUD Aviators" From 863552998c4a2fe50cdd9ebcbd89bd3bc84fa2f0 Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 07:37:42 -0400 Subject: [PATCH 11/31] missed one --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 8f599faedf8b40..21cb0192695347 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -667,6 +667,7 @@ /datum/crafting_recipe/secpatch name = "Security HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/sec + time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/security = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) //Tools needed and requirements are kept the same as craftable HUD sunglasses// category = CAT_EQUIPMENT From 1d10237c31c4d91e6be0dd99ff2a31772156efad Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 08:32:24 -0400 Subject: [PATCH 12/31] literal two character change --- modular_doppler/loadout_categories/categories/glasses.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index 4aa2f9739d4929..4bc6bf291c1f11 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -112,7 +112,7 @@ name = "Aviators (Science)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/science -/datum/loadout_item/glasses/hud/ar/aviator/prescription +/datum/loadout_item/glasses/hud/aviator/prescription name = "Prescription Aviators (None)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/prescription From 188dcde8add3c719d620a3264114152f814065fd Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 10:24:13 -0400 Subject: [PATCH 13/31] Missed a couple of grammar shenanigans. (And thank YOU for the kind words, kannthus <3) --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 21cb0192695347..7123b7a3306698 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -255,13 +255,13 @@ /obj/item/clothing/glasses/hud/eyepatch/sec/blindfold name = "sec blindfold HUD" - desc = "A fake blindfold with a security HUD inside, helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." + desc = "A fake blindfold with a security HUD inside. Helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." icon_state = "secfold" base_icon_state = "secfold" /obj/item/clothing/glasses/hud/eyepatch/med/blindfold name = "medical blindfold HUD" - desc = "A fake blindfold with a medical HUD inside, great for helping keep a poker face when dealing with patients." + desc = "A fake blindfold with a medical HUD inside. Great for helping keep a poker face when dealing with patients." icon_state = "medfold" base_icon_state = "medfold" @@ -273,13 +273,13 @@ /obj/item/clothing/glasses/hud/eyepatch/diagnostic/blindfold name = "diagnostic blindfold HUD" - desc = "A fake blindfold with a diagnostic HUD inside, excellent for working on androids." + desc = "A fake blindfold with a diagnostic HUD inside. Excellent for working on androids." icon_state = "robofold" base_icon_state = "robofold" /obj/item/clothing/glasses/hud/eyepatch/sci/blindfold name = "science blindfold HUD" - desc = "A fake blindfold with a science HUD inside, provides a way to get used to blindfolds before you eventually end up needing the real thing." + desc = "A fake blindfold with a science HUD inside. Provides a way to get used to blindfolds before you eventually end up needing the real thing." icon_state = "scifold" base_icon_state = "scifold" @@ -576,7 +576,7 @@ /datum/crafting_recipe/defaultprescriptaviatorsremoval name = "Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/ + result = /obj/item/clothing/glasses/hud/ar/aviator time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) From f4280d5730e555a1cd546f1a849e5da6503577db Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 20:31:18 -0400 Subject: [PATCH 14/31] replacing with altered version by request Signed-off-by: Geoengi <139566513+Geoengi@users.noreply.github.com> --- .../modular_cosmetics/icons/mob/face/glasses.dmi | Bin 8380 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi diff --git a/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi b/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi deleted file mode 100644 index fe97f04d3dadb4f5ae694ae90b654ca5de03be48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8380 zcmchdd03M9+Q%s?Yf7zCspH0+e9I}u?XKt)AGK?79Q=f#V%*#{rQRoAdnzM(#M{e#2&VRt~F$ZSmNafcS8 zown5WgKr`{cIw|A%5^T>j(GGLuhW%lQghq<(w*epMu!TUjTdguNnqsFukDqQLrrWY z(n?Sc{F>%`O{4*q4gOYYH_bAN8l7@eh%A;cKSfRabBBsi>@IJLFZ6AkE%spbovTbY zU()xj%Lqlok}ZiFY+vx5RS(&%EcV2f8Ft(|Ul|1d(Dm@v9+MlYaV1?!$Cnh?R&G1b z@7iy^=lET`-w&2{&nFhb&he9e92z^D7iIT+;WqzLe<|^-5O>^LPx$(oHQD7kwa>0V zed*%dV|lJa`p@9vA3|QYpBYWJ3c4Qu=@HR>LSw(N9%<4iK3lzc(l+kbK#$9`dR?=% z?P=_h!X77E-*#;O^~1Li%HNTS2D`Pj{}F$d;wn)*(gUvw@oW;a2KDD4zUW7`y9yvz zjr*>?@{b$(d0SsSR=VFyxuGRO*d_qg?8i+lhK6njfxvsto;rRtGJA1E=~ap!N@vM$ z&A8{M6Q4G1K0K^&qG4pP-<@0(NWLE6FsOWE->%{BtLARj{v)gP&eqfI*HykO-2HUw zM9tZ%EsHm^UUuJ(&pn(sxbn$+r5extI{bFzPTH9W)BU-dUhF(`eQV<}GU*)b^u-x6 z3eB00v0;v*n5`Lft_^WDiol7M{}6z8-w5h3J%|8-dg3=3fi~^@2-*G8=!pvMj zjspxW8tFGDEGNEihm7pDbIYPr2`l(XeOS~v$x*Ux#B_>F>XFCjwK(*T-lAcu^ryta zEN}9U5Y1KXcIJ9EWy}r>!l%MlQ_7M1o8~US0t8msR#BB}?K$H1 z#%=Eku!uupa!FesBpBA`d55w~pw@TwUUPfX6OOQ$ncGzizL@sY0SUdJ{iRM?jNJ1S zRQGPT(DRNTquw42Y>`}lbHZ=xbe5c;o{2q26n7FeEOjn9-nZD{u4%VFze~_}Dej)*oUw{16M;5)0a>3fj2!uUatL zj{q4do70h@y+>ol@5z7I*LHbtl!LpqitoTtdWcCHDU+Wc5BYf>)DD?J&LD^x1-p=N`Qas59baRG0{Js3%IM)#{zY02qpW zrU?+>F(Syk&Uk$&Q&|@L^P-i-=pm7aAXyZ$w#O;e^6uoVx`>`0b96XM44!W06*!V{ z#MJ_?w1VM0l>ZWXNA)76$8~fKCJhQ%_*!9t67s^@degeUwEt=czSC}Hg%>{-KEg6Z zhK54#fPt7L6h0V$ zk5_~G-`zPCkB(p@;gH#K6ZvIXmWPns#50V?+VUaVvE1zH$~!)UP>}ik+9*9=Rl#9b zCmZF2SLV6VW-tR^MI2EooP1%YwJi%K0gemlSP86C222DKF01RGKyp8U)?xa0q5riD z`RAvU8U!<03G!NzxqwK$1G(V=B2C< zow%i;ZtEk+;-0udZutrDz6+mBjf!=~%RFk8(Sm8i94--<>#yqnwIXTCYFe$$0OC!L z<+eh;5rI(;dZu%!Yws@!xgk=EFz(SlaX&-wKsWAWWTakMDaN`66}?;ri!ruF^JbOA zwQj~Y^QcWy{#>SSr@J#?#|Kn!R_WLvr{#RLRV}O=#GnCiL!;3Z(W~q*K?CJ+5TTy^ zxgfb!J^6^Jw-ArG=CVAh zVwSggyK-JQi<0tf+vob$%c-GV{2_#K?>8jz;>fF+FBvaCG&J;Mt)nk9-1U64)L1|U zo^FrdR%rfD$B%Bb9i51M^->`#!A>jce-<19r`mFz#IDu1F#|y3HZeant8Zy|8+v1M z-8R)B7L7)`K^p{Li1K-c-1sy-8H>eEcIkp|3liIgu1>etE(isuVH^hd!h;77{8}%~ zNc*b-LtfmO&wS2@T;H$*^85dznsrp`Js^=R%hxUlWGq}BlUU;ojo+>X;g})pr z-^QW~A?hsjZCM{3E+iJcRGE-b^=-1`1o%xi@jKL$J>d#r!&c@c9pQcwm$ym`Q<=`` z9y_b^ez!jr|TENqqZ%2^gVlAvOMxc(~zNXN#i zzhNJ}IY!qvZD-23uQO+aliI`aQ|rzbBb($9&h^+-%HH zjk-{CnYQUN6}QUeaME9&F?H0z0LQJujY zQssnyt&u^o_=PCxWj@JSeH)N+sh~rRJ9cqKmM2#4 zlRATaqKo?}==xFsJb+^nf0wUaI^Ov0xq5!bRzD|{%eb%v4)Ol^3m-}-_JmV_PrT~` zjvplw35h+{&_C=~Q=pGeZztW{L~|Zn zXWn70#;N3~tmoKVsg=FfW(jRqXsX(rt=cnh3knJ%jU-N;FsttTLvVsGm28dxW1_>= zG&HP?lU`7N)}6jk%kryr1?Xv1fYw&-kRS}utd}Mb-G{!ZCs)<)qyU9-M`iL5QXrED z&XbNtx&M|2cYp#6xdJ}MIQj;7 z9fd7JDKZEOC(~mCSjB?@y*{c{t@*XSovFA=R;pK({prUSK6#$vOFeyxem&YDQ-{(z z_V5j1HQNN%?K@ZL;&~a(S$d(;U#o;P4~m*yHC)ru^ZHO-cWZcHz&hMs!tx)x(oZrr zu#a;1hD6?yw5E19>##kqXsppD!WPypA|_@N=GJ=Rg`$%>-u8xCkQWgPUwiw6x-cYk zdA`#-!yqH-l7wZI+9XmMXsZezVGiSfw~FH=WBI4HD7=YZclN;87-nT*=;h7s^cP7Q z*6tnq7XGCo(iTX5^-^zK%K`CiM=RfKG;SoF^JgM&veo+_4cwK>^T}4^&mcsAK!Jpo zR=iTybA3)J^Kj`9BqPhegp!$}c$f1^9%#1#)8{R%JkJ+ zOkE5Q9=MSCDqo2#;!W&C4*FL0!xc43sWxVfijEk|6s>4+d}{Y`#c?qLx04phk<%|D z&QP)vLLb2>9U#JMn5|@#J4(iymPoy|k?QW>|5`S?4wYfGmz=dfZ7{iDU9d?1*15}O zv5nixkn9W-tCgN(*eB!PTacTYnn;fyL0+1%MW_AEfAZV@p>QXAZth@>XN>LVF4s>M z%uKM5R#6?(5&xVI$A#KZ!w%c7A?7vypE+;()KDor#j`F7L_;=FVi{ zEo0SbTy_b|C&NmR6O*u(LAIepIL0zevp2kqVG`&z7D(#>q88zRyV^%V_&yN?mzHF;{ll5MS*k};lO?H`z?D$~N!Cp;PJC{K{u@_fMgSuVXAwAB*-W|EX`POf~ z|3Pw%LFDl925%LHR5LgwMumFti-iJi^DStQB<(#Y*UM`suwxr&IPou^DE?1CPm2_C z>OwDsj7P`yS1?Y_J$h@H&p4?w&r!le9&CyfpBk?4v7xYjQh`$DH-8Og z5Fys7=gQCccdI*6=nV`NV(@XuhSDf)doh!#BPd^<=-YF3&Q!^uPyZky)%fjKHJk@1IFdDP5~hHSluxGzkir$0883{T~YQ z6Z|}1r@SRF>&Y5Eo z3%C3wd#PR?Q=u3cphCgTxa7uk0&2X$zw;!K-Z$*jGbe#YF+@*Yper3=?Ozh+q0EYf zF?6mCwrs=(-n7>KdgE{hCn&T zSC&3fQU|HPS1G-x_Du{sitR_vbV8R`2+XSQ?#7(}w3(0(1SvF90+!h@)R_Y&jxm(^ zEheS&*4C-IH}iR|=hiWtXB&F}4T$JPT!W6DLM6^cn9FaEy zRcoWStNn#`%OB$SXH(~6pysB zzp6;hfD<^ik$T6}+M={(x<}3DEmWOAIbBPujvqu{R~;hId{z-l(Bdy@GslN*n4!+t zer;T_24ffl&tF#*2_jZt(&*o^Uq8hAt!R{V~PVFObD z278uFp^r2&;P%HjI&^fuP>dKX&}ys_)RhXIjE*dEt)BTRwrYM<=;YKjMe=;$&?ObL zlOBuic|PWjBZ5buj4eHD9rj4wtIno-|Av;$5_@t8twER&H2roklSSF1UK>>U$x)hzsJ&rkpe-MG>_U4V({6o^k}O-7K3w^2QW9oik-!C3xp3eC+)M?mp^r#nSavJWV;&09XX0Z?ud0@@-LYGua8~eTfHSH^eS4|9w8|ABBJA zjXVgnIL{UlT}_f;#A%GzTY>)R2{E|cJ~VXS%QVJq4cV0W0sv(+Ep~?77e!S+Rgice9}z<8+bYoOy0vvNe#}c z>*1E=21?N|p?=2#a3qPGwXtaZBH}L+!$3t@a(F;o5kE+6updToDj96Os%MT24i5Ha zu=cO&xdESo97iqk!DjZ_fr%RDN~UGu$ER?b{#6)vySY}cOy#u$Q^o)dkRY7-<^n4- zxw9C$S(}Mm{x~nipr*exf5Bp<+W6rNci&Zr{7;BbdsJ3ZX`qckNzC47*<3FlB^;QD&_}O z8rfehl0qy-0ZbVOjT<~Fdx$zT=Vmnul<Dok3^BReYw6l*Y?g2D5MQNmU zV^vHaCiQQnAL2o(q(0|Q0jN#ZTN25VlJ{#r=1AdY63*@2L+Ev94Y^6-?{bCLz322J zyC744!hQF$G5TuLk@@NeGxg+sGqwO@7VXy$tgPdAU`oDh5nZ^()d9?8&Q*Zm)0BH6 zLxFXt@dvfT&ejPoDzJw60`C>?Pua8RXZCymr<6bZLR$#kCxLOK$)as_06JWSC7r&A z`bWoCWK~2CZ~3?Q(O)ROYf4GqEir_K0rJXZJz)fv7S<^{#esw7X4|b2Go;D1hgKWR zZSL1yv{AmL5=B$edKEUW-FKWIV z;%2uVZDm5_y+V5&Zk|eeh?gksMc0h4_H`57I|G@rC_f1;`-LQDO(Juo__U@10Q1&f z0;rJDM*JYlH^6>1SL>>^2Diblz(@tah}q~}8RB7SvO(_q5>msKr#@_yGJ6uAz=8!zPAZ(1*^oU?i|T-&_T`8*6eB@ppAcQT>N9q z?6rlNtOq|NGx~<1M>{QVXg`sJ8F(#3w-LN$#N)z zuEn)lvU{ltLePKrASB_=@<--V42nt#Osf#w#1NWI$b!CA0;&#();+8vgc1(%!KX{g z(DK=k7|T74YqBk-5Kqf!?}43`4%*0)9zeD+`Rd!%cd{QAB-jF$*~ZZtaP~wro!4A_U-qvA&{ Date: Thu, 21 May 2026 20:31:32 -0400 Subject: [PATCH 15/31] see above Signed-off-by: Geoengi <139566513+Geoengi@users.noreply.github.com> --- .../modular_cosmetics/icons/mob/face/glasses.dmi | Bin 0 -> 8864 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi diff --git a/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi b/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7cd6d4d664fc1f4405cc4de34ddc89202e060455 GIT binary patch literal 8864 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 O3xVqy>sDNLiv3@en0X%n literal 0 HcmV?d00001 From b2ee6b8af8e311202e3aaa93c08be0a18ce19690 Mon Sep 17 00:00:00 2001 From: Geoengi Date: Thu, 21 May 2026 20:54:52 -0400 Subject: [PATCH 16/31] Revert "see above" This reverts commit eadda3cf0fb2d438486a1f6b6fa23521bf8445bc. --- .../modular_cosmetics/icons/mob/face/glasses.dmi | Bin 8864 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi diff --git a/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi b/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi deleted file mode 100644 index 7cd6d4d664fc1f4405cc4de34ddc89202e060455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8864 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 O3xVqy>sDNLiv3@en0X%n From 7be377b12006239e614d6e2716adfa8c53930e83 Mon Sep 17 00:00:00 2001 From: Geoengi Date: Thu, 21 May 2026 20:57:40 -0400 Subject: [PATCH 17/31] actually fixed now --- .../modular_cosmetics/icons/mob/face/glasses.dmi | Bin 0 -> 8867 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi diff --git a/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi b/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c746b1ef061aeec6f6cb28a946f6d00fa475b6c2 GIT binary patch literal 8867 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 Date: Thu, 21 May 2026 21:23:50 -0400 Subject: [PATCH 18/31] gimme a inhand --- .../loadout_categories/categories/glasses.dm | 6 +++++- modular_doppler/modular_cosmetics/code/face/glasses.dm | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index 4bc6bf291c1f11..d3cb9723ec28f9 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -112,7 +112,7 @@ name = "Aviators (Science)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/science -/datum/loadout_item/glasses/hud/aviator/prescription + /datum/loadout_item/glasses/hud/aviator/prescription name = "Prescription Aviators (None)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/prescription @@ -197,6 +197,10 @@ name = "Blindfold (Black, Fake)" item_path = /obj/item/clothing/glasses/trickblindfold +/datum/loadout_item/glasses/trickblindfold/obsolete + name = "Obsolete Fake Blindfold" + item_path = /obj/item/clothing/glasses/trickblindfold/obsolete + /datum/loadout_item/glasses/blinding/eyepatch name = "Eyepatch (Black)" item_path = /obj/item/clothing/glasses/eyepatch diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 7123b7a3306698..486f9d4b883321 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -96,7 +96,7 @@ ) icon_state = "hudpatch" base_icon_state = "hudpatch" - inhand_icon_state = "sunhudmed" + inhand_icon_state = null uses_advanced_reskins = TRUE actions_types = list(/datum/action/item_action/flip) var/flipped = FALSE @@ -249,6 +249,7 @@ icon = 'modular_doppler/modular_cosmetics/icons/obj/face/glasses.dmi' worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' icon_state = "obsoletefold" + inhand_icon_state = "blindfold" base_icon_state = "obsoletefold" supported_bodyshapes = null bodyshape_icon_files = null @@ -258,30 +259,35 @@ desc = "A fake blindfold with a security HUD inside. Helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." icon_state = "secfold" base_icon_state = "secfold" + inhand_icon_state = "blindfold" /obj/item/clothing/glasses/hud/eyepatch/med/blindfold name = "medical blindfold HUD" desc = "A fake blindfold with a medical HUD inside. Great for helping keep a poker face when dealing with patients." icon_state = "medfold" base_icon_state = "medfold" + inhand_icon_state = "blindfold" /obj/item/clothing/glasses/hud/eyepatch/meson/blindfold name = "meson blindfold HUD" desc = "A fake blindfold with meson lenses inside. Doesn't shield against welding." icon_state = "mesonfold" base_icon_state = "mesonfold" + inhand_icon_state = "blindfold" /obj/item/clothing/glasses/hud/eyepatch/diagnostic/blindfold name = "diagnostic blindfold HUD" desc = "A fake blindfold with a diagnostic HUD inside. Excellent for working on androids." icon_state = "robofold" base_icon_state = "robofold" + inhand_icon_state = "blindfold" /obj/item/clothing/glasses/hud/eyepatch/sci/blindfold name = "science blindfold HUD" desc = "A fake blindfold with a science HUD inside. Provides a way to get used to blindfolds before you eventually end up needing the real thing." icon_state = "scifold" base_icon_state = "scifold" + inhand_icon_state = "blindfold" /obj/item/clothing/glasses/hud/ar name = "\improper AR glasses" @@ -532,6 +538,7 @@ name = "retinal projector" 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 a visor." icon_state = "projector" + inhand_icon_state = "headset" icon = 'modular_doppler/modular_cosmetics/icons/obj/face/glasses.dmi' worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' flags_cover = null /// It doesn't actually cover up any parts @@ -752,6 +759,7 @@ desc = "What's your favorite color to see through?" icon = 'icons/map_icons/clothing/_clothing.dmi' icon_state = "/obj/item/clothing/glasses/recolorable" + inhand_icon_state = "glasses" post_init_icon_state = "recolorable_glasses" greyscale_colors = "#cfd1d4#D5D5B9" greyscale_config = /datum/greyscale_config/recolorable_glasses From 7935758ab31b9a76e2626e2844ea82a61f2050f9 Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Thu, 21 May 2026 21:38:53 -0400 Subject: [PATCH 19/31] no space --- modular_doppler/loadout_categories/categories/glasses.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index d3cb9723ec28f9..a919a7e96ec96d 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -112,7 +112,7 @@ name = "Aviators (Science)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/science - /datum/loadout_item/glasses/hud/aviator/prescription +/datum/loadout_item/glasses/hud/aviator/prescription name = "Prescription Aviators (None)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/prescription From f50ab8966e415725f987a59e07858d473775f910 Mon Sep 17 00:00:00 2001 From: Geoengi Date: Thu, 21 May 2026 23:16:01 -0400 Subject: [PATCH 20/31] finally... --- .../modular_cosmetics/code/face/glasses.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 486f9d4b883321..f1bc712f60e5ea 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -14,6 +14,9 @@ icon = 'modular_doppler/modular_cosmetics/icons/obj/face/glasses.dmi' worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' icon_state = "eyewrap" + inhand_icon_state = null + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' base_icon_state = "eyewrap" /obj/item/clothing/glasses/eyepatch/white @@ -21,6 +24,9 @@ desc = "This is what happens when a pirate gets a PhD." icon = 'modular_doppler/modular_cosmetics/icons/obj/face/glasses.dmi' worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' + inhand_icon_state = null + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' supported_bodyshapes = list(BODYSHAPE_HUMANOID, BODYSHAPE_TESHARI) bodyshape_icon_files = list( BODYSHAPE_HUMANOID_T = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi', @@ -97,6 +103,8 @@ icon_state = "hudpatch" base_icon_state = "hudpatch" inhand_icon_state = null + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' uses_advanced_reskins = TRUE actions_types = list(/datum/action/item_action/flip) var/flipped = FALSE @@ -295,6 +303,7 @@ supported_bodyshapes = null bodyshape_icon_files = null icon_state = "glasses_regular" + inhand_icon_state = "glasses" desc = "A heads-up display that provides important info in (almost) real time. These don't really seem to work." actions_types = list(/datum/action/item_action/toggle_mode) glass_colour_type = /datum/client_colour/glass_colour/gray @@ -539,6 +548,8 @@ 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 a visor." icon_state = "projector" inhand_icon_state = "headset" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' icon = 'modular_doppler/modular_cosmetics/icons/obj/face/glasses.dmi' worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' flags_cover = null /// It doesn't actually cover up any parts From 3da98f1944ec4a6ffcf71b03c27f89cf1b70ae7e Mon Sep 17 00:00:00 2001 From: Geoengi Date: Thu, 21 May 2026 23:52:27 -0400 Subject: [PATCH 21/31] mo and krill issue mb mb --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index f1bc712f60e5ea..a6c3e863688cd2 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -258,6 +258,8 @@ worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' icon_state = "obsoletefold" inhand_icon_state = "blindfold" + lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' base_icon_state = "obsoletefold" supported_bodyshapes = null bodyshape_icon_files = null From aaca6cb1483514a38480a499a0b8c9ff269763de Mon Sep 17 00:00:00 2001 From: Geoengi Date: Fri, 22 May 2026 00:01:34 -0400 Subject: [PATCH 22/31] plz work now --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index a6c3e863688cd2..b17548f112dfa5 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -270,6 +270,8 @@ icon_state = "secfold" base_icon_state = "secfold" inhand_icon_state = "blindfold" + lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/eyepatch/med/blindfold name = "medical blindfold HUD" @@ -277,6 +279,8 @@ icon_state = "medfold" base_icon_state = "medfold" inhand_icon_state = "blindfold" + lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/eyepatch/meson/blindfold name = "meson blindfold HUD" @@ -284,6 +288,8 @@ icon_state = "mesonfold" base_icon_state = "mesonfold" inhand_icon_state = "blindfold" + lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/eyepatch/diagnostic/blindfold name = "diagnostic blindfold HUD" @@ -291,6 +297,8 @@ icon_state = "robofold" base_icon_state = "robofold" inhand_icon_state = "blindfold" + lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/eyepatch/sci/blindfold name = "science blindfold HUD" @@ -298,6 +306,8 @@ icon_state = "scifold" base_icon_state = "scifold" inhand_icon_state = "blindfold" + lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/ar name = "\improper AR glasses" From d428dd303f68f0ef81886763006fdce7f904fd62 Mon Sep 17 00:00:00 2001 From: Geoengi Date: Fri, 22 May 2026 00:51:10 -0400 Subject: [PATCH 23/31] i'm running out of funny things to say --- modular_doppler/loadout_categories/categories/glasses.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index a919a7e96ec96d..60506fbcac28ab 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -197,7 +197,7 @@ name = "Blindfold (Black, Fake)" item_path = /obj/item/clothing/glasses/trickblindfold -/datum/loadout_item/glasses/trickblindfold/obsolete +/datum/loadout_item/glasses/blinding/fake_blindfold/obsolete name = "Obsolete Fake Blindfold" item_path = /obj/item/clothing/glasses/trickblindfold/obsolete From f378ac6c916d0066f9bc749384db3771881d0743 Mon Sep 17 00:00:00 2001 From: Geoengi Date: Fri, 22 May 2026 01:10:02 -0400 Subject: [PATCH 24/31] hopefully the end --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index b17548f112dfa5..c879b8704f985c 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -602,7 +602,7 @@ time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/ = 1, /obj/item/clothing/glasses/regular = 1) //No cable coil requirement since we're not adding a hud tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING //these are the only version that isn't in the equipment category because of no hud too + category = CAT_EQUIPMENT /datum/crafting_recipe/defaultprescriptaviatorsremoval name = "Aviators prescription removal" @@ -610,7 +610,7 @@ time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_CLOTHING + category = CAT_EQUIPMENT /datum/crafting_recipe/secprescriptaviators name = "Prescription Security HUD Aviators" From d9190ede497ca7c1896045ba60531254b99212ff Mon Sep 17 00:00:00 2001 From: Geoengi <139566513+Geoengi@users.noreply.github.com> Date: Sun, 24 May 2026 23:11:10 -0400 Subject: [PATCH 25/31] Minor backslash culling (thank you Steven!) Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Signed-off-by: Geoengi <139566513+Geoengi@users.noreply.github.com> --- modular_doppler/modular_cosmetics/code/face/glasses.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index c879b8704f985c..6b5fe187d6486d 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -622,7 +622,7 @@ /datum/crafting_recipe/secprescriptaviatorsremoval name = "Security HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/security/ + result = /obj/item/clothing/glasses/hud/ar/aviator/security time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/security/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) @@ -638,7 +638,7 @@ /datum/crafting_recipe/medprescriptaviatorsremoval name = "Medical HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/health/ + result = /obj/item/clothing/glasses/hud/ar/aviator/health time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/health/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) @@ -670,7 +670,7 @@ /datum/crafting_recipe/roboprescriptaviatorsremoval name = "Diagnostic HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/ + result = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) @@ -686,7 +686,7 @@ /datum/crafting_recipe/sciprescriptaviatorsremoval name = "Science HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/science/ + result = /obj/item/clothing/glasses/hud/ar/aviator/science time = 2 SECONDS reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/science/prescription = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) From f0e048100eb1214458f46fcbb77823a4cc01ac93 Mon Sep 17 00:00:00 2001 From: Geoengi Date: Mon, 25 May 2026 01:20:22 -0400 Subject: [PATCH 26/31] Revert "actually fixed now" This reverts commit 7be377b12006239e614d6e2716adfa8c53930e83. --- .../modular_cosmetics/icons/mob/face/glasses.dmi | Bin 8867 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi diff --git a/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi b/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi deleted file mode 100644 index c746b1ef061aeec6f6cb28a946f6d00fa475b6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8867 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 Date: Mon, 25 May 2026 01:24:13 -0400 Subject: [PATCH 27/31] pixel shenanigans Signed-off-by: Geoengi <139566513+Geoengi@users.noreply.github.com> --- .../modular_cosmetics/icons/mob/face/glasses.dmi | Bin 0 -> 8838 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi diff --git a/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi b/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi new file mode 100644 index 0000000000000000000000000000000000000000..0517f9ddbdcfcf66b94cf720a5a7e29b93251809 GIT binary patch literal 8838 zcmd5?XH-+`whbz%R22mT0SiT?Dotv{0@9`T4$?aap#?!i4+;Vb(t>mWsY(ka2vU?1 z=}7MZ0-*&03CVsN?>+a7`^LF%+&}l+_ahl8JA3bM&AH}UYkqn0P*a(KmYo&?fiS2% zxTgbwP)#2`PSAj#gbXyk1>d*?>KXaov-h#}cJlOf@^FVh0@BjoesOOWrGJL*);039 z?_a9fz4?TXaf4R>f!UdXA?;sMfwP(wObH)cyWwp>Y*AIyPD7EW0Tzg7&-q{@qg#lP~ousXn4vv(tN2 zm3h)mYwS`#?1)&}(H*n(llFDT?O~J59glZ?FC%uOzOAzlPP^3)_V-`}Mk<%ierSEp zPzm##Jo#z$=yjIi%tu}b&94F<1wU;JUzJu)KA+e#n}6EJ{T_>mvcQ%7loWELHc58N@ zTmOy>>q7nAo5s(?EBjG7Y9pN0hoL!M#alA(WpO7O0=WoLxu>WXkhV7F<*A2(t#3}z zI^~AHbUXh%@?4sksJK6$rpvHcce-rE1+8$7*I!P(DVg=Y%V(hz`8n|{yIj|~_w=?l z_xWBFcsv~UE{%G?z~(9#cg)|Fo2Z;{-nsg*gS!&j?7Oh}Fu`LF%$%qL*SWW}CGW81 zOvs~+*9c-Q0n$pOMht9{aM07MdK$fb3<3#%>mW}Bfq0*$qKAZ09btn&j_xl9Bshw% z@LY>~aIbGObeKcnxmR;nX|+g4;IW_B7iC7Qi6M~JWF14 z`PCI&&ow57oQUY_>x0%%Ew8M6->Wr!d7jS}4K)@Xg2EIOyLr>)pR42Z-)HxJkoB5< zs<54mURtZ3k`$nfbj?(w$i<{3WoY0an*l3O zheLKY5Lb#)pzu(uDXQ~9g7h;2=59Va>q0_< z<+knWB26sTp8Z|Pn(?Y0sE}1Nb?nUW<&I4?HMNQ6NV>tn!CXu7ieZYRo5{2kL}vq& z)^mgZLQ`KyB;N-*TvR!2dO7Q;)KqYPx_pp925^AUaIx9p37GwQ(q1N@MB=egvsA|> zoYTqYK(BE=R z9k)@SV1AIv=ke^i#G(&n4`XpAC8H@RA19v{6c!hFfx*U& zk(|X8hN=mJg;jZN#zXbsb4ZY7@o%(r${1UTB+(5LuvD^eo*Ub1-l=bH?luXu_v{uN zo-2K=bA^J@!qch#1G=5#?RAquTJgS{&5;iR^CTNbEDdUl4Y&M&1FnY0S@+`cCU#Zz z^}>}DT{We4#?(qn%5NNOY!9`yFp`~_>zLL7x{I52tiYV~40TL1(8XI~mAQhJ}btRoGSxs^mIt#Nv zF0#I}EgG&NVF*k3-QAAzL6>otxSuA~)z|WyrFN6_dr&h*q=nL3&@e3z540oa!Qt9! zd#5!JYNrZ|iYCO+a?G_uQ$E^m8n1$!+hcA!Z**LVt&tDfeK(j&v3x~wZ~#8t1PRpf zIGE-iD)E;R>`%De$KC`oNH~4nL89%|hkwvdcn4}M$K}5nAom(ZEur~te}}OGXWP!` z-Nj*jgTGVZsmgT>_okf4!pVW5ftn{@6gksiI{DSr$~vJfOkVA6_PFQ>f0cN|X!(_F zTXQuqBqWuYG2-mB`4-^vH%5;9R1g{`m?>dBU3b_C4L@72Ul$ZFtwk-Tq^2HCR|c=H z7<-;&F1_x){Kr6eaqUxUhQ(2&dOLeZMhA4V&cBqjAQI};4FIDr&IqNgs=NPi;a3$G z4SIM#G7?OT+Le+yG?eV5Z(#7q?(`l8NNBF!0S_&3wNrp5167Six^p+Bt9Ur&JewLw zsZ&eAa6lheUpz17i)mNLTM#gOw)-zA3vsJxS=IK zncQ#I?MX^WDYw!_EnnI4Z~ ziTDtK0<_!%4K3K))H<2V#Jz9Oue_L#Q|9st+FiX-*MF!RXt{0mc@sGLe(eB&Ok^Yk zZp*+B4wPf=Ud*CZ!{tU@-NhqW(H05I%$fJ)zjt;{G;ErmM{Tlc86korxPZJZ8NVtw zZ5J2pl3aK_<&D4KV-r@DPKuT(jw&@fpv1pJ$*u(h}SIekhq~4SNi)8apSp7?}=RsMU-K=qOcaO2Nx%u-lS8Uxp z>bNlze6?(+$;RAh_mX{N-rkUN8++Prn_T`~mZc6hh8qZ{rqi>u>Uyyihk^^P6R~;y@-Cc1~!h8UIwe5PHdmd6Ycml~8|0qqY)Y9j=A>BkTcz z_heK}kC2(~4L1^8N2^JpNH%6Pg`F@E!GFO)_l_h!dw8=nref_voQs>^Q z_JC$@3XA@BB`m_ocd4YQiPTMw z*v%6g4Tu8(Yg1)xi71;0bVUR)0&mw)6q!@|J8AiN|yZB|;>Dnnn0mimp%&A19o z=h|}SU1&0B#-Bgo&5Hd&iQ=%+3Mfq1G82|$H&KqhjZP( zp*)<8zw0276#h~9bpzr=w4e3QC{b(Rcr+Pa={f;`y`Bytto22d8`UxUf2PR@@P)1u zX$$1%GckuAad&j|Y>(w0&PzBxu=?{Xs+&M?Q^Xu%vU)#g zrpxfcg=n;o!vR##wBn~|4#hLBkU6o1OBPk-EMg zbG1X(3NDDH^ENtGDJ)3jG+@ELCZj3bOeDCs4w3#=5~v`j=7onc8CGI^fAw1b^{(vV zRN#^2Q?c#oJQASLhqL`@6OVk3ferb*6EBMP5{}vkz__1R_+38~i_9vU&z)0}@b3}q zM*8LPEZ>>pZ5SpuruYK^su^`WLZ($+8X|%ZKU>ZJED$w$pZZAMP}^GXlY4rBhx;U= zmp#}Yt27*f3#XxBMvlN$B3@il(Xm;o5N2R3XlRhno@*Zt{WhV1mFyNo2&=3p_$#J6 zASFcK{g@<+JTeFP502H>)U<-Yh&%LLxSy?^F5{=#D)#6@DGK^J+WPL@2-(nsnyTP~ zgh#AXi;IgL;Pe0loSJK&^TG_*{~>8@eRX)tD))}13*WzgFOgXszS0r8XG;$B$sXJ4 zfjj@Lk}=K8UK~zQdsw26-3&}{M@^0|Rrxo#RR98p#h&rvqVFDJl5xFr@))#>mFEMO z!s`=0LP27ZQ48nP%q=Vszh!BkJIAtg<&!GD4#&kn&**e9?#ISP8Dkaa_dSyu@mpsC zd&3Wyj%>u|#EE|Y%tSY(ZmO%l%(L8pBfMop3aVt!2)z0jtNzTBj|iRNpAL}2$(VeX zsLs+TE-ucF7z8_&{Ku;&=I`LK-LG&0%8cK(<@#m0iuhy7D`Q%1+{c=OJ~v?9`uXof z2fj&4s)L)=i_b}M&7JH_@c1$3A=sdn8q;ukk5YQje4SsVNBaKdIH#bDDQMca%{CK@ z@&Of{t^2q3X9cdkh9u@haTkJ1b{k!Xzr^gbGCrDMwkniEcali?a8KSd=cRWV(CcVN zh}!ZRTy-j3vyttXpS2?>8;Wwv;~(bvvo22MDHZ+Dnm{6y-h31qKd zM&0`-U!Dr@TJ~AlJcxh8hWw}&ao5?yBQ_@_@e(`Adyv*pk8N;V`ja?zC^!BuvBZR;lr zH;e9}u(;l)>DM%8PBJhtVXek8Us@hJFj1!4f-ZgGRk_meO&q+!GL)Qgog5p0NSZXJ znWkeB@uy$~44?6;h|~`xZbnw`nhKcV7p*6}(e@47tK1r6qyx%~dTg>QtW}3!=jd~cQw5lT!x3-;=AArxFqV|Qc1~w zuHcB`+WV=div$Ev`k3)nILx;DG$Pd+(a#Uo$rUNn!tA6Z>lq`6n+-s$7#(EsWkfe(4yX z%ce#;wfP?EGRQUJ;^JDIdJHg8%wbNbrDJDPU$Oys8Tg*@sJzJRM2g?a+1=fJ8Dm-N z94T=9r86$g_>gugeUXi7fu*DniFJw>I0#3Wt;2)YlE&9Qx%YR?F30EKd{_ryd8S7r zPOeP=vv1Z>e&pizd_cDdV5Xh^cO>sJD0$v}hmuF@snXYB)AgB2AT&?E#AJrY$x1Y{ zM{FXyJ*X#R8074bo<0&|vis;G1wT~kt4pgYprJ@)(-9 zOK?Wx|IX-(?M(VWQb2CrJ9`gcT3R-ojgr9U} zXJaU)fwLLhzVW_`#ZD{o(%!BFf?Lnnc76R9{*1=0b!r_C#Ak9O84qo-*pH4%<7tr4 zkh#XMGTJ*SS+I?G2#M-#1In8xHkDh5ZA_LaTd$IGUKL3q*GOU{w;|UGuLWCNj6g22 z?Tg2PuSO$rPnEFBeB2vJqd2xH5^#`2b$a) zW6G(*R45$wq)G>8#s5Ob=l`T`N5&HC*MD8ymHHG~Uhm_EUX_r>sTt_`e9M7&8s@w4 zIbVO+o3mfg2?`2QaDml_4m_ zIs^!>QLrVAec8FK=FBCEU$^Vu@Xf$1EasYO1$w0>b>WtfRjLv7TkGqKMFbs06;Rq`5ynddzCSw-l6_EC zgP)`nv*uVS?SbCj5|)$pTqq77_PexRj|iSoA!b;Y9<)YZA!qEu{dDqqRb)p2g|h9? zg%{+0^DP(WYQb?GbAOh?J zk_l}ZK-_`MbJ$m#@*WW9TB$&}79S^qCA_i*uZ38{eh*+cAVSB6cep9#?@5;0+S*%0 zY-!P_PoMbr{e%gqtgNh@;$opWi4E)&`1?6-u_Zu_8-I{FKP){7udJ-JuV>{Ruyk{C z%WeG_Az@3 zvbYc|S?kR_eV2Uh5-O{zgw+=0J?zxsf`Cz8`vuw1Vdg1lVG?jZw{#69vhR0l`+2KP zI@mn>c;Ew`VQ!8BCH#%>&-hIgLk>VOIz)NOxOe9nuEEf!+IKSHKqiSaRcnvqP#gdU z!b+0ue*2MiAhAbks5r>nE%zLO2i3DcG4!o$IDL-+6puP+B3!V80%t2Nbh@L3ia!f_ zFgg*h-1hqN6WtZ`f*i3qldj<)7GMeU2o3$j1KSjF{RM=zXw~9EH`;@-kjA#1770Yl zuCVhgcVy)e=Z6(vansnkG}h#n%skK+mAEP_;<2<{-&+n+N)6@}fqPq+LR?Asoej!r zUM*RLRv=vjqf=w;QrRENs*D<-Bx??VPH1;%`j6ZG|7Q{SW5?le68%}?g|SXLATVH) z?g?V7ZiEVVwo;^Ua;ruTSC-)JYL$Q-RsPb$Z=EY^%NNL>3aqQ^D2BPi&vw)w74O>zccM>G{d?v+%xhi-fEJ71wE6NoJL z+5Nd5SHJ11Ou5su*&;i@88IsnoEfo*N z|Io(DzZv0Qn?JWhWhQgLC}U8QWuYpdD+FuU1YIExo?#2xJPNnuaU!=MF=K2A{up#( zH-3-o=k*2O`U$_CU0-M27We93fkz=m8P|f0!N6z31)c8zYflRS4nyjjTx39=m@%OP z+C+Qk4@H38<;yCQae23Ks#Sxf>1X_*32)7|bBmz)7JkpN`0&txA+m?D*=k`7{?#hb zs6gZnn@=$%K+lsiYTjgoVWG*-#X$zRUrSDn*`KD_n;EOwF2k;sPX+7FXo_=0W&--k z#1VjM`|mguJP$xP$RAgK4J50vNpgoP13nz&44Gdo^M=cV{|9t`ow34kxTJWX5!AB> zh3m=RFNCw9Ku{dK5Z3n&?-%Wche}+7QgM&gsQwDDq{QmuVW1E{3WAnXov*vbt99%q z0*+w8uuFoke*hO)@+ecAJ%zX1vH_HTyX;IY#laTP4LxFk3_%6*x)oWvcq`Y`WVdn} z>z#|sxuS1z(Wgvixa>j6eg&eP_a9KKI~uRD=ySe!prfzLO=i07-K_-=Mh!5>q}YL{ z3q0aJ4jb9o9kB?G6)gPi@4&c7M5fI}d9V>hzRj0#%q#&}g;!RAu>Bd1XB4%c4TsIR z#$NQndTmtZ-U+T>i>vMh@X2~$T7(V!^`PtzF+(5%;BY*odz*3Ycs32%3_n*8fO{R?E!DE5v33d|(UW#lsyxK2h} zTQ5OHjg5h0!NfUIE|-%j*(5=Bs#Qn?c|~8~a=h_Z@s z?}z^dfNwMpz^$?>h$m}6mJGYp@5ksB|DG0qME^y;@D=N2@LHge`w=5*O~EL*HjaaY z0woB&PSv7gKqCstIZ8#ZW=s|Wr`L*ef8kE>9`G^!b57!g)g*9L5S9Cy_e$ Date: Mon, 25 May 2026 18:21:21 -0400 Subject: [PATCH 28/31] the loadout house --- .../loadout_categories/categories/glasses.dm | 62 +++++++++++------- .../modular_cosmetics/code/face/glasses.dm | 65 +++++++++++++++---- 2 files changed, 92 insertions(+), 35 deletions(-) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index 60506fbcac28ab..42b54c35ed2402 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -29,6 +29,10 @@ group = "Prescription Glasses" abstract_type = /datum/loadout_item/glasses/prescription +/datum/loadout_item/glasses/prescription/get_item_information() + . = ..() + .[FA_ICON_GLASSES] = "Corrects nearsightedness!" + /datum/loadout_item/glasses/prescription/regular name = "Prescription Glasses" item_path = /obj/item/clothing/glasses/regular @@ -112,30 +116,6 @@ name = "Aviators (Science)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/science -/datum/loadout_item/glasses/hud/aviator/prescription - name = "Prescription Aviators (None)" - item_path = /obj/item/clothing/glasses/hud/ar/aviator/prescription - -/datum/loadout_item/glasses/hud/aviator_meson/prescription - name = "Prescription Aviators (Meson)" - item_path = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription - -/datum/loadout_item/glasses/hud/aviator_health/prescription - name = "Prescription Aviators (Medical)" - item_path = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription - -/datum/loadout_item/glasses/hud/aviator_security/prescription - name = "Prescription Aviators (Security)" - item_path = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription - -/datum/loadout_item/glasses/hud/aviator_diagnostic/prescription - name = "Prescription Aviators (Diagnostics)" - item_path = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription - -/datum/loadout_item/glasses/hud/aviator_science/prescription - name = "Prescription Aviators (Science)" - item_path = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription - /datum/loadout_item/glasses/hud/hud_eyepatch_meson name = "HUD Eyepatch (Meson)" item_path = /obj/item/clothing/glasses/hud/eyepatch/meson @@ -160,6 +140,40 @@ name = "Explorer Goggles (Meson)" item_path = /obj/item/clothing/glasses/mining_meson +/** + * PRESCRIPTION HUD HYBRID GLASSES + */ +/datum/loadout_item/glasses/hud/prescription + abstract_type = /datum/loadout_item/glasses/hud/prescription + +/datum/loadout_item/glasses/hud/prescription/get_item_information() + . = ..() + .[FA_ICON_GLASSES] = "Corrects nearsightedness!" + +/datum/loadout_item/glasses/hud/prescription/aviator + name = "Aviators (None, Prescription)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/prescription + +/datum/loadout_item/glasses/hud/prescription/aviator_meson + name = "Aviators (Meson, Prescription)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription + +/datum/loadout_item/glasses/hud/prescription/aviator_health + name = "Aviators (Medical, Prescription)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription + +/datum/loadout_item/glasses/hud/prescription/aviator_security + name = "Aviators (Security, Prescription)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription + +/datum/loadout_item/glasses/hud/prescription/aviator_diagnostic + name = "Aviators (Diagnostics, Prescription)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription + +/datum/loadout_item/glasses/hud/prescription/aviator_science + name = "Aviators (Science, Prescription)" + item_path = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription + /** * HUD GLASSES (Take in other huds) */ diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index 6b5fe187d6486d..bb0441395bad8e 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -600,7 +600,10 @@ name = "Prescription Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/prescription time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/ = 1, /obj/item/clothing/glasses/regular = 1) //No cable coil requirement since we're not adding a hud + reqs = list( //No cable coil requirement since we're not adding a hud + /obj/item/clothing/glasses/hud/ar/aviator/ = 1, + /obj/item/clothing/glasses/regular = 1 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -616,7 +619,11 @@ name = "Prescription Security HUD Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/security = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/hud/ar/aviator/security = 1, + /obj/item/clothing/glasses/regular = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -632,7 +639,11 @@ name = "Prescription Medical HUD Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/health = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/hud/ar/aviator/health = 1, + /obj/item/clothing/glasses/regular = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -648,7 +659,11 @@ name = "Prescription Meson HUD Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/meson = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/hud/ar/aviator/meson = 1, + /obj/item/clothing/glasses/regular = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -664,7 +679,11 @@ name = "Prescription Diagnostic HUD Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/diagnostic = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/hud/ar/aviator/diagnostic = 1, + /obj/item/clothing/glasses/regular = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -680,7 +699,11 @@ name = "Prescription Science HUD Aviators" result = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/science = 1, /obj/item/clothing/glasses/regular = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/hud/ar/aviator/science = 1, + /obj/item/clothing/glasses/regular = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -698,7 +721,11 @@ name = "Security HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/sec time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/security = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/hud/security = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) //Tools needed and requirements are kept the same as craftable HUD sunglasses// category = CAT_EQUIPMENT @@ -714,7 +741,11 @@ name = "Medical HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/med time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/health = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/hud/health = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -730,7 +761,11 @@ name = "Meson HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/meson time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/meson = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/meson = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -746,7 +781,11 @@ name = "Diagnostic HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/diagnostic time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/diagnostic = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/hud/diagnostic = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT @@ -762,7 +801,11 @@ name = "Science HUD Eyepatch" result = /obj/item/clothing/glasses/hud/eyepatch/sci time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/science = 1, /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5) + reqs = list( + /obj/item/clothing/glasses/science = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/stack/cable_coil = 5 + ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT From 2095ae163096b45fbb9e21141a7d30aaf6a9773e Mon Sep 17 00:00:00 2001 From: Geoengi Date: Mon, 25 May 2026 22:27:44 -0400 Subject: [PATCH 29/31] sec patch try not to be a problem challenge [IMPOSSIBLE] --- .../modular_cosmetics/code/face/glasses.dm | 14 ++++++++------ .../icons/mob/face/glasses.dmi | Bin 8838 -> 8833 bytes .../icons/obj/face/glasses.dmi | Bin 8414 -> 8409 bytes 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index bb0441395bad8e..d292b4ee3d9504 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -119,7 +119,8 @@ /obj/item/clothing/glasses/hud/eyepatch/proc/flip_eyepatch() flipped = !flipped - icon_state = flipped ? "[base_icon_state]_flipped" : base_icon_state + var/reskin_icon_state = current_skin && unique_reskin[current_skin] ? unique_reskin[current_skin][RESKIN_ICON_STATE] : base_icon_state + icon_state = flipped ? "[reskin_icon_state]_flipped" : reskin_icon_state if (!ismob(loc)) return var/mob/user = loc @@ -150,21 +151,22 @@ /obj/item/clothing/glasses/hud/eyepatch/attack_self(mob/user, modifiers) . = ..() - icon_state = (icon_state == base_icon_state) ? "[base_icon_state]_flipped" : base_icon_state + var/reskin_icon_state = current_skin && unique_reskin[current_skin] ? unique_reskin[current_skin][RESKIN_ICON_STATE] : base_icon_state + worn_icon_state = flipped ? "[reskin_icon_state]_flipped" : reskin_icon_state user.update_worn_glasses() /obj/item/clothing/glasses/hud/eyepatch/sec name = "security HUD eyepatch" desc = "Lost your eye beating an innocent clown? Incompatible with cybernetics? Thankfully, modern technology has a replacement. Protects against flashes 50% of the time, none of the time." - icon_state = "security_eyepatch" - base_icon_state = "security_eyepatch" + icon_state = "secpatch" + base_icon_state = "secpatch" clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/red unique_reskin = list( "Eyepatch" = list( - RESKIN_ICON_STATE = "hudpatch", - RESKIN_WORN_ICON_STATE = "hudpatch" + RESKIN_ICON_STATE = "secpatch", + RESKIN_WORN_ICON_STATE = "secpatch" ), "Fake Blindfold" = list( RESKIN_ICON_STATE = "secfold", diff --git a/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi b/modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi index 0517f9ddbdcfcf66b94cf720a5a7e29b93251809..eb7a65c0fe463c056e9d51def1148c8167aeb454 100644 GIT binary patch delta 395 zcmV;60d)R`MS(?-B!6alR9JLGWpiV4X>fFDZ*Bkpc$}S;L2kk@5JlJVDMqlRRY}=q zQw3El;0lqkC)ibzv1}8>?Yk(cXoZ_`myzCo9)DZT65h7&y93nwofy#vO9ND}d43Va z#p-CFg4a?M2JOkjua6LAM5thaS9CHe(_D;=xDbW5K0pN#G0=0F42J)vxSP?qPOK(^V_k$CEFl0P*n=F~TkZKh+O4kNbI<-vL9$pvUCq6TX`BNM4M5Gva_u7^nogpe@fPI_s*|ZkD~vK{Z$qxJpWrtMCYoUHzb>7L{oSA pS9A&6Lk;zQCq4n(I;ST2^)Jr=03ZNKL_t(|obB6jaI>ZX;2;-Zy`BI7 delta 395 zcmV;60d)R>MTSL?B!6pqR9JLGWpiV4X>fFDZ*Bkpc$}S;!EVAZ42I9mQ&@0i)9ASN zGJz%z@CsE(ToTmQQIZz%_B(8y*hE%m$4cM-+y3LEOL*J8?~kxO?8S&aSn8pI&GU;W zu2x3_6}*fFDZ*Bkpc$}4#%WlFj5JlI?SBzjwtEOd} zO$Dl0z%N9`o?urYW7#H%zwd&FSdiv=mq_Oxk8ehq)A#ykv!m5^Qw|)Wlb&i?zJHX( z*_mXirmxSkud4pU5xi+T=RF%F zb`Hv;9PAyO=U`7JvYur7;gCg6V)kUbO4`C8e61sc<~x{Sj?$yI!gSCUW=X>X^W>(_XL)H>yj%4x% zy7mL}YH%t^Xk?I|(i7XXor=@zdP~4&X delta 395 zcmV;60d)S^LEb@-B!6CdR9JLGWpiV4X>fFDZ*Bkpc$}4#!EVAZ5Jb=MS6FbRRnv0K zr3$Jzz%N9`-e6ZDYuP4NzI*(w6bL1ZN9#PmmYKM7`AnY9Y zz?k)e#J47W4lZ4rvE2CzcorWbca*5*4*XaU8A(H2-~)rB4K`Rih$dk$H( z%3R6hEp*EV=6}`TRN~Mezo{p-X*(6?dwW;F&fK;zd!opF290N7oI3U#lgo%iyIIx; z{w19_ydh^k=-1?06oxu=m6a@4<*Ho0lKz(wYA_KSCZ9_ZbD0bmluuRrg?uSD`&!n! pt@s1scB*yz84Y;=03SO^L_t(|ob8=?aFgeq$GCJs-gNz7PNa From 2f3a27e6dbef914a123fbd4189aa22ba7c71fcdb Mon Sep 17 00:00:00 2001 From: Geoengi Date: Tue, 2 Jun 2026 12:18:20 -0400 Subject: [PATCH 30/31] moves blindfolds out of reskin solitude by board approval --- .../loadout_categories/categories/glasses.dm | 30 +++++-- .../modular_cosmetics/code/face/glasses.dm | 83 +++---------------- 2 files changed, 38 insertions(+), 75 deletions(-) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index 42b54c35ed2402..08fc92589c1a56 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -120,7 +120,7 @@ name = "HUD Eyepatch (Meson)" item_path = /obj/item/clothing/glasses/hud/eyepatch/meson -/datum/loadout_item/glasses/hud/hud_eyepatch_med +/datum/loadout_item/glasses/hud/hud_eyepatch_health name = "HUD Eyepatch (Medical)" item_path = /obj/item/clothing/glasses/hud/eyepatch/med @@ -136,6 +136,30 @@ name = "HUD Eyepatch (Science)" item_path = /obj/item/clothing/glasses/hud/eyepatch/sci +/datum/loadout_item/glasses/hud/hud_blindfold_none + name = "HUD Blindfold (None, Fake)" + item_path = /obj/item/clothing/glasses/trickblindfold/obsolete + +/datum/loadout_item/glasses/hud/hud_blindfold_meson + name = "HUD Blindfold (Meson, Fake)" + item_path = /obj/item/clothing/glasses/hud/eyepatch/meson/blindfold + +/datum/loadout_item/glasses/hud/hud_blindfold_health + name = "HUD Blindfold (Medical, Fake)" + item_path = /obj/item/clothing/glasses/hud/eyepatch/med/blindfold + +/datum/loadout_item/glasses/hud/hud_blindfold_sec + name = "HUD Blindfold (Security, Fake)" + item_path = /obj/item/clothing/glasses/hud/eyepatch/sec/blindfold + +/datum/loadout_item/glasses/hud/hud_blindfold_diagnostic + name = "HUD Blindfold (Diagnostics, Fake)" + item_path = /obj/item/clothing/glasses/hud/eyepatch/diagnostic/blindfold + +/datum/loadout_item/glasses/hud/hud_blindfold_sci + name = "HUD Blindfold (Science, Fake)" + item_path = /obj/item/clothing/glasses/hud/eyepatch/sci/blindfold + /datum/loadout_item/glasses/hud/mining_goggles name = "Explorer Goggles (Meson)" item_path = /obj/item/clothing/glasses/mining_meson @@ -211,10 +235,6 @@ name = "Blindfold (Black, Fake)" item_path = /obj/item/clothing/glasses/trickblindfold -/datum/loadout_item/glasses/blinding/fake_blindfold/obsolete - name = "Obsolete Fake Blindfold" - item_path = /obj/item/clothing/glasses/trickblindfold/obsolete - /datum/loadout_item/glasses/blinding/eyepatch name = "Eyepatch (Black)" item_path = /obj/item/clothing/glasses/eyepatch diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index d292b4ee3d9504..e2e0efa065fbbd 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -119,8 +119,7 @@ /obj/item/clothing/glasses/hud/eyepatch/proc/flip_eyepatch() flipped = !flipped - var/reskin_icon_state = current_skin && unique_reskin[current_skin] ? unique_reskin[current_skin][RESKIN_ICON_STATE] : base_icon_state - icon_state = flipped ? "[reskin_icon_state]_flipped" : reskin_icon_state + icon_state = flipped ? "[base_icon_state]_flipped" : base_icon_state if (!ismob(loc)) return var/mob/user = loc @@ -151,8 +150,7 @@ /obj/item/clothing/glasses/hud/eyepatch/attack_self(mob/user, modifiers) . = ..() - var/reskin_icon_state = current_skin && unique_reskin[current_skin] ? unique_reskin[current_skin][RESKIN_ICON_STATE] : base_icon_state - worn_icon_state = flipped ? "[reskin_icon_state]_flipped" : reskin_icon_state + worn_icon_state = flipped ? "[base_icon_state]_flipped" : base_icon_state user.update_worn_glasses() /obj/item/clothing/glasses/hud/eyepatch/sec @@ -163,35 +161,14 @@ clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/red - unique_reskin = list( - "Eyepatch" = list( - RESKIN_ICON_STATE = "secpatch", - RESKIN_WORN_ICON_STATE = "secpatch" - ), - "Fake Blindfold" = list( - RESKIN_ICON_STATE = "secfold", - RESKIN_WORN_ICON_STATE = "secfold" - ) - ) /obj/item/clothing/glasses/hud/eyepatch/med name = "medical HUD eyepatch" - desc = "As the saying goes, 'Do no harm.' But, maybe harm has befallen you— or your poor eyeball. Fortunately there's a way to continue your oath, and it's thankfully not a strange experimental surgery." + desc = "As the saying goes, 'Do no harm.' But, maybe harm has befallen you— or your poor eyeball. Fortunately, there's a way to continue your oath, and it's thankfully not a strange, experimental surgery." icon_state = "medpatch" base_icon_state = "medpatch" clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue - unique_reskin = list( - "Eyepatch" = list( - RESKIN_ICON_STATE = "medpatch", - RESKIN_WORN_ICON_STATE = "medpatch" - ), - "Fake Blindfold" = list( - RESKIN_ICON_STATE = "medfold", - RESKIN_WORN_ICON_STATE = "medfold" - ) - ) - /obj/item/clothing/glasses/hud/eyepatch/meson name = "mesons HUD eyepatch" desc = "For those that only want to go half insane when staring at the supermatter." @@ -203,17 +180,6 @@ lighting_cutoff = LIGHTING_CUTOFF_MEDIUM glass_colour_type = /datum/client_colour/glass_colour/lightgreen - unique_reskin = list( - "Eyepatch" = list( - RESKIN_ICON_STATE = "mesonpatch", - RESKIN_WORN_ICON_STATE = "mesonpatch" - ), - "Fake Blindfold" = list( - RESKIN_ICON_STATE = "mesonfold", - RESKIN_WORN_ICON_STATE = "mesonfold" - ) - ) - /obj/item/clothing/glasses/hud/eyepatch/diagnostic name = "diagnostic HUD eyepatch" desc = "Lost your eyeball to a rogue borg? Forgot to wear eye protection sawing off a prosthetic? Got bored? Whatever the reason, this bit of tech will help you still repair machines. They'll never need it since they usually do it themselves, but it's the thought that counts." @@ -222,17 +188,6 @@ clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange - unique_reskin = list( - "Eyepatch" = list( - RESKIN_ICON_STATE = "robopatch", - RESKIN_WORN_ICON_STATE = "robopatch" - ), - "Fake Blindfold" = list( - RESKIN_ICON_STATE = "robofold", - RESKIN_WORN_ICON_STATE = "robofold" - ) - ) - /obj/item/clothing/glasses/hud/eyepatch/sci name = "science HUD eyepatch" desc = "An eyepatch fitted with an R&D scanner HUD. It can scan chemicals, tell you the makeup of certain materials, and even features an internal database that can scan objects for any tech particularly noteworthy." @@ -240,18 +195,6 @@ base_icon_state = "scipatch" clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER) - unique_reskin = list( - "Eyepatch" = list( - RESKIN_ICON_STATE = "scipatch", - RESKIN_WORN_ICON_STATE = "scipatch" - ), - "Fake Blindfold" = list( - RESKIN_ICON_STATE = "scifold", - RESKIN_WORN_ICON_STATE = "scifold" - ) - ) - - /// BLINDFOLD HUDS /// /obj/item/clothing/glasses/trickblindfold/obsolete name = "obsolete fake blindfold" @@ -267,8 +210,8 @@ bodyshape_icon_files = null /obj/item/clothing/glasses/hud/eyepatch/sec/blindfold - name = "sec blindfold HUD" - desc = "A fake blindfold with a security HUD inside. Helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." + name = "sec HUD blindfold" + desc = "An ornate fake blindfold with a security HUD inside. Helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." icon_state = "secfold" base_icon_state = "secfold" inhand_icon_state = "blindfold" @@ -276,8 +219,8 @@ righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/eyepatch/med/blindfold - name = "medical blindfold HUD" - desc = "A fake blindfold with a medical HUD inside. Great for helping keep a poker face when dealing with patients." + name = "medical HUD blindfold" + desc = "An ornate fake blindfold with a medical HUD inside. Great for helping keep a poker face when dealing with patients." icon_state = "medfold" base_icon_state = "medfold" inhand_icon_state = "blindfold" @@ -285,8 +228,8 @@ righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/eyepatch/meson/blindfold - name = "meson blindfold HUD" - desc = "A fake blindfold with meson lenses inside. Doesn't shield against welding." + name = "meson HUD blindfold" + desc = "An ornate fake blindfold with meson lenses inside. Doesn't shield against welding." icon_state = "mesonfold" base_icon_state = "mesonfold" inhand_icon_state = "blindfold" @@ -294,8 +237,8 @@ righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/eyepatch/diagnostic/blindfold - name = "diagnostic blindfold HUD" - desc = "A fake blindfold with a diagnostic HUD inside. Excellent for working on androids." + name = "diagnostic HUD blindfold" + desc = "An ornate fake blindfold with a diagnostic HUD inside. Excellent for working on androids." icon_state = "robofold" base_icon_state = "robofold" inhand_icon_state = "blindfold" @@ -303,8 +246,8 @@ righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' /obj/item/clothing/glasses/hud/eyepatch/sci/blindfold - name = "science blindfold HUD" - desc = "A fake blindfold with a science HUD inside. Provides a way to get used to blindfolds before you eventually end up needing the real thing." + name = "science HUD blindfold" + desc = "An ornate fake blindfold with a science HUD inside. Provides a way to get used to blindfolds before you eventually end up needing the real thing." icon_state = "scifold" base_icon_state = "scifold" inhand_icon_state = "blindfold" From 70e51eb52832fff55a0e84b88e7e705473ef166a Mon Sep 17 00:00:00 2001 From: Geoengi Date: Tue, 2 Jun 2026 16:00:13 -0400 Subject: [PATCH 31/31] Takes all of the prescription crafting... and pushes it somewhere else! --- .../loadout_categories/categories/glasses.dm | 4 + .../modular_cosmetics/code/face/designs.dm | 87 ++++++- .../modular_cosmetics/code/face/glasses.dm | 217 ++++++++---------- .../modular_crafting/code/sheet_types.dm | 1 + .../research/designs/hud_designs.dm | 87 ++++++- modular_doppler/research/techweb/all_nodes.dm | 5 + 6 files changed, 277 insertions(+), 124 deletions(-) diff --git a/modular_doppler/loadout_categories/categories/glasses.dm b/modular_doppler/loadout_categories/categories/glasses.dm index 08fc92589c1a56..8ada05da4f0824 100644 --- a/modular_doppler/loadout_categories/categories/glasses.dm +++ b/modular_doppler/loadout_categories/categories/glasses.dm @@ -116,6 +116,10 @@ name = "Aviators (Science)" item_path = /obj/item/clothing/glasses/hud/ar/aviator/science +/datum/loadout_item/glasses/hud/hud_eyepatch + name = "HUD Eyepatch (None)" + item_path = /obj/item/clothing/glasses/hud/eyepatch + /datum/loadout_item/glasses/hud/hud_eyepatch_meson name = "HUD Eyepatch (Meson)" item_path = /obj/item/clothing/glasses/hud/eyepatch/meson diff --git a/modular_doppler/modular_cosmetics/code/face/designs.dm b/modular_doppler/modular_cosmetics/code/face/designs.dm index c8cd1e71514fcb..487d390c278021 100644 --- a/modular_doppler/modular_cosmetics/code/face/designs.dm +++ b/modular_doppler/modular_cosmetics/code/face/designs.dm @@ -68,8 +68,8 @@ departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/science_hud_aviator - name = "Science Aviators" - desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance." + name = "Science HUD Aviators" + desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." id = "science_hud_aviator" build_type = PROTOLATHE | AWAY_LATHE materials = list( @@ -83,6 +83,87 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE +/datum/design/health_hud_aviator_prescription + name = "Prescription Medical HUD Aviators" + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." + id = "health_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, //a little extra glass for thickened lenses + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL, + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + +/datum/design/security_hud_aviator_prescription + name = "Prescription Security HUD Aviators" + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records. The HUD has been fitted inside of a pair of sunglasses with toggleable electrochromatic tinting and lenses that help correct eye sight." + id = "security_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + /datum/material/silver = SMALL_MATERIAL_AMOUNT * 2, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY, + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/diagnostic_hud_aviator_prescription + name = "Prescription Diagnostic HUD Aviators" + desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." + id = "diagnostic_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + +/datum/design/meson_hud_aviator_prescription + name = "Prescription Meson HUD Aviators" + desc = "A heads-up display used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." + id = "meson_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING, + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/science_hud_aviator_prescription + name = "Prescription Science HUD Aviators" + desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." + id = "science_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + /datum/design/health_hud_projector name = "Retinal Projector Medical 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." @@ -149,7 +230,7 @@ departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/science_hud_projector - name = "Science Retinal Projector" + name = "Retinal Projector Science 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." id = "science_hud_projector" build_type = PROTOLATHE | AWAY_LATHE diff --git a/modular_doppler/modular_cosmetics/code/face/glasses.dm b/modular_doppler/modular_cosmetics/code/face/glasses.dm index e2e0efa065fbbd..4cf3935c6c3290 100644 --- a/modular_doppler/modular_cosmetics/code/face/glasses.dm +++ b/modular_doppler/modular_cosmetics/code/face/glasses.dm @@ -198,7 +198,7 @@ /// BLINDFOLD HUDS /// /obj/item/clothing/glasses/trickblindfold/obsolete name = "obsolete fake blindfold" - desc = "An ornate fake blindfold, devoid of any electronics. It's belived to be originally worn by members of a bygone military force that sought to protect humanity." + desc = "An ornate, fake blindfold, devoid of any electronics. It's belived to be originally worn by members of a bygone military force that sought to protect humanity." icon = 'modular_doppler/modular_cosmetics/icons/obj/face/glasses.dmi' worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/face/glasses.dmi' icon_state = "obsoletefold" @@ -210,8 +210,8 @@ bodyshape_icon_files = null /obj/item/clothing/glasses/hud/eyepatch/sec/blindfold - name = "sec HUD blindfold" - desc = "An ornate fake blindfold with a security HUD inside. Helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." + name = "security HUD blindfold" + desc = "An ornate, fake blindfold with a security HUD inside. Helps you look like blind justice. This won't provide the same protection that you'd get from sunglasses." icon_state = "secfold" base_icon_state = "secfold" inhand_icon_state = "blindfold" @@ -220,7 +220,7 @@ /obj/item/clothing/glasses/hud/eyepatch/med/blindfold name = "medical HUD blindfold" - desc = "An ornate fake blindfold with a medical HUD inside. Great for helping keep a poker face when dealing with patients." + desc = "An ornate, fake blindfold with a medical HUD inside. Great for helping keep a poker face when dealing with patients." icon_state = "medfold" base_icon_state = "medfold" inhand_icon_state = "blindfold" @@ -229,7 +229,7 @@ /obj/item/clothing/glasses/hud/eyepatch/meson/blindfold name = "meson HUD blindfold" - desc = "An ornate fake blindfold with meson lenses inside. Doesn't shield against welding." + desc = "An ornate, fake blindfold with meson lenses inside. Doesn't shield against welding." icon_state = "mesonfold" base_icon_state = "mesonfold" inhand_icon_state = "blindfold" @@ -238,7 +238,7 @@ /obj/item/clothing/glasses/hud/eyepatch/diagnostic/blindfold name = "diagnostic HUD blindfold" - desc = "An ornate fake blindfold with a diagnostic HUD inside. Excellent for working on androids." + desc = "An ornate, fake blindfold with a diagnostic HUD inside. Excellent for working on androids." icon_state = "robofold" base_icon_state = "robofold" inhand_icon_state = "blindfold" @@ -247,7 +247,7 @@ /obj/item/clothing/glasses/hud/eyepatch/sci/blindfold name = "science HUD blindfold" - desc = "An ornate fake blindfold with a science HUD inside. Provides a way to get used to blindfolds before you eventually end up needing the real thing." + desc = "An ornate, fake blindfold with a science HUD inside. Provides a way to get used to blindfolds before you eventually end up needing the real thing." icon_state = "scifold" base_icon_state = "scifold" inhand_icon_state = "blindfold" @@ -454,7 +454,7 @@ // Science Aviators /obj/item/clothing/glasses/hud/ar/aviator/science - name = "science aviators" + name = "science HUD aviators" desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance." icon_state = "aviator_sci" modes = list(MODE_OFF, MODE_ON) @@ -536,232 +536,213 @@ clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) /obj/item/clothing/glasses/hud/ar/projector/science - name = "science retinal projector" + name = "retinal projector science HUD" icon_state = "projector_sci" clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER) -//Prescription Aviators// -/datum/crafting_recipe/defaultprescriptaviators - name = "Prescription Aviators" - result = /obj/item/clothing/glasses/hud/ar/aviator/prescription - time = 2 SECONDS - reqs = list( //No cable coil requirement since we're not adding a hud - /obj/item/clothing/glasses/hud/ar/aviator/ = 1, - /obj/item/clothing/glasses/regular = 1 - ) - tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_EQUIPMENT - -/datum/crafting_recipe/defaultprescriptaviatorsremoval - name = "Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator - time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/prescription = 1) - tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_EQUIPMENT - -/datum/crafting_recipe/secprescriptaviators - name = "Prescription Security HUD Aviators" - result = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription +//Eyepatches// +/datum/crafting_recipe/secpatch + name = "Security HUD Eyepatch" + result = /obj/item/clothing/glasses/hud/eyepatch/sec time = 2 SECONDS reqs = list( - /obj/item/clothing/glasses/hud/ar/aviator/security = 1, - /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/hud/security = 1, + /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5 ) - tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) //Tools needed and requirements are kept the same as craftable HUD sunglasses// category = CAT_EQUIPMENT -/datum/crafting_recipe/secprescriptaviatorsremoval - name = "Security HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/security +/datum/crafting_recipe/secpatchremoval + name = "Security HUD Eyepatch HUD removal" + result = /obj/item/clothing/glasses/eyepatch time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/security/prescription = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/sec = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/medprescriptaviators - name = "Prescription Medical HUD Aviators" - result = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription +/datum/crafting_recipe/medpatch + name = "Medical HUD Eyepatch" + result = /obj/item/clothing/glasses/hud/eyepatch/med time = 2 SECONDS reqs = list( - /obj/item/clothing/glasses/hud/ar/aviator/health = 1, - /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/hud/health = 1, + /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/medprescriptaviatorsremoval - name = "Medical HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/health +/datum/crafting_recipe/medpatchremoval + name = "Medical HUD Eyepatch HUD removal" + result = /obj/item/clothing/glasses/eyepatch time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/health/prescription = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/med = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/mesonprescriptaviators - name = "Prescription Meson HUD Aviators" - result = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription +/datum/crafting_recipe/mesonpatch + name = "Meson HUD Eyepatch" + result = /obj/item/clothing/glasses/hud/eyepatch/meson time = 2 SECONDS reqs = list( - /obj/item/clothing/glasses/hud/ar/aviator/meson = 1, - /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/meson = 1, + /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/mesonprescriptaviatorsremoval - name = "Meson HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/meson +/datum/crafting_recipe/mesonpatchremoval + name = "Meson HUD Eyepatch HUD removal" + result = /obj/item/clothing/glasses/eyepatch time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/meson/prescription = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/meson = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/roboprescriptaviators - name = "Prescription Diagnostic HUD Aviators" - result = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription +/datum/crafting_recipe/robopatch + name = "Diagnostic HUD Eyepatch" + result = /obj/item/clothing/glasses/hud/eyepatch/diagnostic time = 2 SECONDS reqs = list( - /obj/item/clothing/glasses/hud/ar/aviator/diagnostic = 1, - /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/hud/diagnostic = 1, + /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/roboprescriptaviatorsremoval - name = "Diagnostic HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic +/datum/crafting_recipe/robopatchremoval + name = "Diagnostic HUD Eyepatch HUD removal" + result = /obj/item/clothing/glasses/eyepatch time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/diagnostic = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/sciprescriptaviatorsremoval - name = "Prescription Science HUD Aviators" - result = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription +/datum/crafting_recipe/scipatch + name = "Science HUD Eyepatch" + result = /obj/item/clothing/glasses/hud/eyepatch/sci time = 2 SECONDS reqs = list( - /obj/item/clothing/glasses/hud/ar/aviator/science = 1, - /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/science = 1, + /obj/item/clothing/glasses/eyepatch = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/sciprescriptaviatorsremoval - name = "Science HUD Aviators prescription removal" - result = /obj/item/clothing/glasses/hud/ar/aviator/science +/datum/crafting_recipe/scipatchremoval + name = "Science HUD Eyepatch HUD removal" + result = /obj/item/clothing/glasses/eyepatch time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/ar/aviator/science/prescription = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/sci = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -//Prescription Aviators End// +//eyepatches end// -//Eyepatches// -/datum/crafting_recipe/secpatch - name = "Security HUD Eyepatch" - result = /obj/item/clothing/glasses/hud/eyepatch/sec +//Blindfolds// +/datum/crafting_recipe/secfold + name = "Security HUD Blindfold" + result = /obj/item/clothing/glasses/hud/eyepatch/sec/blindfold time = 2 SECONDS reqs = list( /obj/item/clothing/glasses/hud/security = 1, - /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/trickblindfold/obsolete = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) //Tools needed and requirements are kept the same as craftable HUD sunglasses// category = CAT_EQUIPMENT -/datum/crafting_recipe/secpatchremoval - name = "Security HUD Eyepatch HUD removal" - result = /obj/item/clothing/glasses/eyepatch +/datum/crafting_recipe/secfoldremoval + name = "Security HUD Blindfold HUD removal" + result = /obj/item/clothing/glasses/trickblindfold/obsolete time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/eyepatch/sec = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/sec/blindfold = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/medpatch - name = "Medical HUD Eyepatch" - result = /obj/item/clothing/glasses/hud/eyepatch/med +/datum/crafting_recipe/medfold + name = "Medical HUD Blindfold" + result = /obj/item/clothing/glasses/hud/eyepatch/med/blindfold time = 2 SECONDS reqs = list( /obj/item/clothing/glasses/hud/health = 1, - /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/trickblindfold/obsolete = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/medpatchremoval - name = "Medical HUD Eyepatch HUD removal" - result = /obj/item/clothing/glasses/eyepatch +/datum/crafting_recipe/medfoldremoval + name = "Medical HUD Blindfold HUD removal" + result = /obj/item/clothing/glasses/trickblindfold/obsolete time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/eyepatch/med = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/med/blindfold = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/mesonpatch - name = "Meson HUD Eyepatch" - result = /obj/item/clothing/glasses/hud/eyepatch/meson +/datum/crafting_recipe/mesonfold + name = "Meson HUD Blindfold" + result = /obj/item/clothing/glasses/hud/eyepatch/meson/blindfold time = 2 SECONDS reqs = list( /obj/item/clothing/glasses/meson = 1, - /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/trickblindfold/obsolete = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/mesonpatchremoval - name = "Meson HUD Eyepatch HUD removal" - result = /obj/item/clothing/glasses/eyepatch +/datum/crafting_recipe/mesonfoldremoval + name = "Meson HUD Blindfold HUD removal" + result = /obj/item/clothing/glasses/trickblindfold/obsolete time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/eyepatch/meson = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/meson/blindfold = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/robopatch - name = "Diagnostic HUD Eyepatch" - result = /obj/item/clothing/glasses/hud/eyepatch/diagnostic +/datum/crafting_recipe/robofold + name = "Diagnostic HUD Blindfold" + result = /obj/item/clothing/glasses/hud/eyepatch/diagnostic/blindfold time = 2 SECONDS reqs = list( /obj/item/clothing/glasses/hud/diagnostic = 1, - /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/trickblindfold/obsolete = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/robopatchremoval - name = "Diagnostic HUD Eyepatch HUD removal" - result = /obj/item/clothing/glasses/eyepatch +/datum/crafting_recipe/robofoldremoval + name = "Diagnostic HUD Blindfold HUD removal" + result = /obj/item/clothing/glasses/trickblindfold/obsolete time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/eyepatch/diagnostic = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/diagnostic/blindfold = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/scipatch - name = "Science HUD Eyepatch" - result = /obj/item/clothing/glasses/hud/eyepatch/sci +/datum/crafting_recipe/scifold + name = "Science HUD Blindfold" + result = /obj/item/clothing/glasses/hud/eyepatch/sci/blindfold time = 2 SECONDS reqs = list( /obj/item/clothing/glasses/science = 1, - /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/trickblindfold/obsolete = 1, /obj/item/stack/cable_coil = 5 ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -/datum/crafting_recipe/scipatchremoval - name = "Science HUD Eyepatch HUD removal" - result = /obj/item/clothing/glasses/eyepatch +/datum/crafting_recipe/scifoldremoval + name = "Science HUD Blindfold HUD removal" + result = /obj/item/clothing/glasses/trickblindfold/obsolete time = 2 SECONDS - reqs = list(/obj/item/clothing/glasses/hud/eyepatch/sci = 1) + reqs = list(/obj/item/clothing/glasses/hud/eyepatch/sci/blindfold = 1) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) category = CAT_EQUIPMENT -//eyepatches end// +//blindfold end// //Regular Glasses diff --git a/modular_doppler/modular_crafting/code/sheet_types.dm b/modular_doppler/modular_crafting/code/sheet_types.dm index e3600ad6f888b8..3130a615559549 100644 --- a/modular_doppler/modular_crafting/code/sheet_types.dm +++ b/modular_doppler/modular_crafting/code/sheet_types.dm @@ -101,6 +101,7 @@ GLOBAL_LIST_INIT(doppler_cloth_recipes, list( new/datum/stack_recipe("eyepatch wrap", /obj/item/clothing/glasses/eyepatch/wrap, 2, category = CAT_CLOTHING), new/datum/stack_recipe("white eyepatch", /obj/item/clothing/glasses/eyepatch/white, 2, category = CAT_CLOTHING), new/datum/stack_recipe("eyepatch", /obj/item/clothing/glasses/eyepatch, 2, category = CAT_CLOTHING), + new/datum/stack_recipe("obsolete fake blindfold", /obj/item/clothing/glasses/trickblindfold/obsolete, 2, category = CAT_CLOTHING), new/datum/stack_recipe("mantle (teshari)", /obj/item/clothing/neck/tesharian_mantle, 3, category = CAT_CLOTHING), new/datum/stack_recipe("saddlebags", /obj/item/storage/backpack/saddlebags, 5, category = CAT_CONTAINERS), )) diff --git a/modular_doppler/research/designs/hud_designs.dm b/modular_doppler/research/designs/hud_designs.dm index c8cd1e71514fcb..487d390c278021 100644 --- a/modular_doppler/research/designs/hud_designs.dm +++ b/modular_doppler/research/designs/hud_designs.dm @@ -68,8 +68,8 @@ departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/science_hud_aviator - name = "Science Aviators" - desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance." + name = "Science HUD Aviators" + desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." id = "science_hud_aviator" build_type = PROTOLATHE | AWAY_LATHE materials = list( @@ -83,6 +83,87 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE +/datum/design/health_hud_aviator_prescription + name = "Prescription Medical HUD Aviators" + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." + id = "health_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, //a little extra glass for thickened lenses + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL, + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + +/datum/design/security_hud_aviator_prescription + name = "Prescription Security HUD Aviators" + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records. The HUD has been fitted inside of a pair of sunglasses with toggleable electrochromatic tinting and lenses that help correct eye sight." + id = "security_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + /datum/material/silver = SMALL_MATERIAL_AMOUNT * 2, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/security/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY, + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/diagnostic_hud_aviator_prescription + name = "Prescription Diagnostic HUD Aviators" + desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." + id = "diagnostic_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/diagnostic/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + +/datum/design/meson_hud_aviator_prescription + name = "Prescription Meson HUD Aviators" + desc = "A heads-up display used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." + id = "meson_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/meson/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING, + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/science_hud_aviator_prescription + name = "Prescription Science HUD Aviators" + desc = "A pair of tacky purple aviator sunglasses that allow the wearer to recognize various chemical compounds with only a glance. The HUD has been fitted inside of a pair of sunglasses with lenses that help correct eye sight." + id = "science_hud_aviator_prescription" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 10, + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4, + ) + build_path = /obj/item/clothing/glasses/hud/ar/aviator/science/prescription + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + /datum/design/health_hud_projector name = "Retinal Projector Medical 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." @@ -149,7 +230,7 @@ departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/science_hud_projector - name = "Science Retinal Projector" + name = "Retinal Projector Science 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." id = "science_hud_projector" build_type = PROTOLATHE | AWAY_LATHE diff --git a/modular_doppler/research/techweb/all_nodes.dm b/modular_doppler/research/techweb/all_nodes.dm index 87089198d70247..b398189a3277cd 100644 --- a/modular_doppler/research/techweb/all_nodes.dm +++ b/modular_doppler/research/techweb/all_nodes.dm @@ -5,6 +5,11 @@ "diagnostic_hud_aviator", "meson_hud_aviator", "science_hud_aviator", + "health_hud_aviator_prescription", + "security_hud_aviator_prescription", + "diagnostic_hud_aviator_prescription", + "meson_hud_aviator_prescription", + "science_hud_aviator_prescription", "health_hud_projector", "security_hud_projector", "diagnostic_hud_projector",