diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 7e825d76539..0f88865f53e 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -23,6 +23,21 @@ "Vox" = 'icons/mob/species/vox/eyes.dmi' ) +/obj/item/clothing/glasses/meson/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (user.stat || user.restrained() || !ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(istype(O, /obj/item/clothing/glasses/regular)) + H.unEquip(src) + H.unEquip(O) + var/obj/item/clothing/glasses/meson/prescription/P = new /obj/item/clothing/glasses/meson/prescription(get_turf(H)) + H << "You fit \the [src.name] with lenses from \the [O.name]." + H.put_in_hands(P) + del(O) + del(src) + return + ..() + /obj/item/clothing/glasses/meson/night name = "Night Vision Optical Meson Scanner" desc = "An Optical Meson Scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness." @@ -31,6 +46,12 @@ darkness_view = 8 see_darkness = 0 +/obj/item/clothing/glasses/meson/night/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(istype(O, /obj/item/clothing/glasses/regular)) + user << "\The [src.name] is too complex for you to fit with prescription lenses." + return + ..() + /obj/item/clothing/glasses/meson/prescription name = "prescription mesons" desc = "Optical Meson Scanner with prescription lenses." @@ -40,6 +61,24 @@ "Vox" = 'icons/mob/species/vox/eyes.dmi' ) +/obj/item/clothing/glasses/meson/prescription/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (user.stat || user.restrained() || !ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(istype(O, /obj/item/clothing/glasses/regular)) + H <<"You can't possibly imagine how adding more lenses would improve \the [src.name]." + return + if(istype(O, /obj/item/weapon/screwdriver)) + H.unEquip(src) + var/obj/item/clothing/glasses/meson/M = new /obj/item/clothing/glasses/meson(get_turf(H)) + var/obj/item/clothing/glasses/regular/R = new /obj/item/clothing/glasses/regular(get_turf(H)) + H << "You salvage the prescription lenses from \the [src.name]." + H.put_in_hands(M) + H.put_in_hands(R) + del(src) + return + ..() + /obj/item/clothing/glasses/meson/cyber name = "Eye Replacement Implant" desc = "An implanted replacement for a left eye with meson vision capabilities." @@ -145,6 +184,21 @@ "Vox" = 'icons/mob/species/vox/eyes.dmi' ) +/obj/item/clothing/glasses/sunglasses/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (user.stat || user.restrained() || !ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(istype(O, /obj/item/clothing/glasses/regular)) + H.unEquip(src) + H.unEquip(O) + var/obj/item/clothing/glasses/sunglasses/prescription/P = new /obj/item/clothing/glasses/sunglasses/prescription(get_turf(H)) + H << "You fit \the [src.name] with lenses from \the [O.name]." + H.put_in_hands(P) + del(O) + del(src) + return + ..() + /obj/item/clothing/glasses/virussunglasses desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." name = "sunglasses" @@ -233,6 +287,12 @@ "Vox" = 'icons/mob/species/vox/eyes.dmi' ) +/obj/item/clothing/glasses/sunglasses/blindfold/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(istype(O, /obj/item/clothing/glasses/regular)) + user << "You doubt you can make a blindfold actually IMPROVE vision." + return + ..() + /obj/item/clothing/glasses/sunglasses/prescription name = "prescription sunglasses" prescription = 1 @@ -241,6 +301,24 @@ "Vox" = 'icons/mob/species/vox/eyes.dmi' ) +/obj/item/clothing/glasses/sunglasses/prescription/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (user.stat || user.restrained() || !ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(istype(O, /obj/item/clothing/glasses/regular)) + H <<"You can't possibly imagine how adding more lenses would improve \the [src.name]." + return + if(istype(O, /obj/item/weapon/screwdriver)) + H.unEquip(src) + var/obj/item/clothing/glasses/sunglasses/S = new /obj/item/clothing/glasses/sunglasses(get_turf(H)) + var/obj/item/clothing/glasses/regular/R = new /obj/item/clothing/glasses/regular(get_turf(H)) + H << "You salvage the prescription lenses from \the [src.name]." + H.put_in_hands(S) + H.put_in_hands(R) + del(src) + return + ..() + /obj/item/clothing/glasses/sunglasses/big desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks many flashes." icon_state = "bigsunglasses" @@ -265,6 +343,47 @@ "Vox" = 'icons/mob/species/vox/eyes.dmi' ) +/obj/item/clothing/glasses/sunglasses/sechud/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (user.stat || user.restrained() || !ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(istype(O, /obj/item/clothing/glasses/regular)) + H.unEquip(src) + H.unEquip(O) + var/obj/item/clothing/glasses/sunglasses/sechud/prescription/P = new /obj/item/clothing/glasses/sunglasses/sechud/prescription(get_turf(H)) + H << "You fit \the [src.name] with lenses from \the [O.name]." + H.put_in_hands(P) + del(O) + del(src) + return + ..() + +/obj/item/clothing/glasses/sunglasses/sechud/prescription + name = "prescription HUDSunglasses" + prescription = 1 + species_fit = list("Vox") + sprite_sheets = list( + "Vox" = 'icons/mob/species/vox/eyes.dmi' + ) + +/obj/item/clothing/glasses/sunglasses/sechud/prescription/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (user.stat || user.restrained() || !ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(istype(O, /obj/item/clothing/glasses/regular)) + H <<"You can't possibly imagine how adding more lenses would improve \the [src.name]." + return + if(istype(O, /obj/item/weapon/screwdriver)) + H.unEquip(src) + var/obj/item/clothing/glasses/sunglasses/sechud/S = new /obj/item/clothing/glasses/sunglasses/sechud(get_turf(H)) + var/obj/item/clothing/glasses/regular/R = new /obj/item/clothing/glasses/regular(get_turf(H)) + H << "You salvage the prescription lenses from \the [src.name]." + H.put_in_hands(S) + H.put_in_hands(R) + del(src) + return + ..() + /obj/item/clothing/glasses/thermal name = "Optical Thermal Scanner" desc = "Thermals in the shape of glasses." diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index fd65aed0202..aa3ff503440 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ