diff --git a/code/_globalvars/lists/quirks.dm b/code/_globalvars/lists/quirks.dm index f230fc77f7c..9d936c18e56 100644 --- a/code/_globalvars/lists/quirks.dm +++ b/code/_globalvars/lists/quirks.dm @@ -2,9 +2,12 @@ ///Types of glasses that can be selected at character selection with the Nearsighted quirk GLOBAL_LIST_INIT(nearsighted_glasses, list( - "Circle", - "Hipster", - "Modern", // SKYRAT EDIT ADD - "Regular", - "Thin", + "Regular" = /obj/item/clothing/glasses/regular, + "Circle" = /obj/item/clothing/glasses/regular/circle, + "Hipster" = /obj/item/clothing/glasses/regular/hipster, + "Thin" = /obj/item/clothing/glasses/regular/thin, + "Jamjar" = /obj/item/clothing/glasses/regular/jamjar, + "Binoclard" = /obj/item/clothing/glasses/regular/kim, + "Modern" = /obj/item/clothing/glasses/betterunshit, // SKYRAT ADD + )) diff --git a/code/datums/quirks/negative_quirks.dm b/code/datums/quirks/negative_quirks.dm index 930881ae64d..3ea21cf1b9a 100644 --- a/code/datums/quirks/negative_quirks.dm +++ b/code/datums/quirks/negative_quirks.dm @@ -381,15 +381,9 @@ /datum/quirk/item_quirk/nearsighted/add_unique(client/client_source) var/glasses_name = client_source?.prefs.read_preference(/datum/preference/choiced/glasses) || "Regular" var/obj/item/clothing/glasses/glasses_type - switch(glasses_name) - if ("Thin") - glasses_type = /obj/item/clothing/glasses/regular/thin - if ("Circle") - glasses_type = /obj/item/clothing/glasses/regular/circle - if ("Hipster") - glasses_type = /obj/item/clothing/glasses/regular/hipster - else - glasses_type = /obj/item/clothing/glasses/regular + + glasses_name = glasses_name == "Random" ? pick(GLOB.nearsighted_glasses) : glasses_name + glasses_type = GLOB.nearsighted_glasses[glasses_name] give_item_to_holder(glasses_type, list( LOCATION_EYES = ITEM_SLOT_EYES, diff --git a/code/modules/client/preferences/glasses.dm b/code/modules/client/preferences/glasses.dm index 3c35fd140b8..6e93c98fd37 100644 --- a/code/modules/client/preferences/glasses.dm +++ b/code/modules/client/preferences/glasses.dm @@ -2,9 +2,17 @@ category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_key = "glasses" savefile_identifier = PREFERENCE_CHARACTER + should_generate_icons = TRUE /datum/preference/choiced/glasses/init_possible_values() - return GLOB.nearsighted_glasses + var/list/values = list() + + values["Random"] = icon('icons/effects/random_spawners.dmi', "questionmark") + + for(var/glass_design in GLOB.nearsighted_glasses - "Random") + values[glass_design] = icon('icons/obj/clothing/glasses.dmi', "glasses_[lowertext(glass_design)]") + + return values /datum/preference/choiced/glasses/is_accessible(datum/preferences/preferences) if (!..(preferences)) diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index fdcd0523e78..2acfc96316e 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -270,7 +270,7 @@ /obj/item/clothing/glasses/regular name = "prescription glasses" desc = "Made by Nerd. Co." - icon_state = "glasses" + icon_state = "glasses_regular" inhand_icon_state = "glasses" clothing_traits = list(TRAIT_NEARSIGHTED_CORRECTED) @@ -324,19 +324,19 @@ /obj/item/clothing/glasses/regular/jamjar name = "jamjar glasses" desc = "Also known as Virginity Protectors." - icon_state = "jamjar_glasses" - inhand_icon_state = "jamjar_glasses" + icon_state = "glasses_jamjar" + inhand_icon_state = "glasses_jamjar" /obj/item/clothing/glasses/regular/hipster name = "prescription glasses" desc = "Made by Uncool. Co." - icon_state = "hipster_glasses" + icon_state = "glasses_hipster" inhand_icon_state = null /obj/item/clothing/glasses/regular/circle name = "circle glasses" desc = "Why would you wear something so controversial yet so brave?" - icon_state = "circle_glasses" + icon_state = "glasses_circle" inhand_icon_state = null //Here lies green glasses, so ugly they died. RIP @@ -644,7 +644,7 @@ /obj/item/clothing/glasses/regular/kim name = "binoclard lenses" desc = "Shows you know how to sew a lapel and center a back vent." - icon_state = "binoclard_lenses" + icon_state = "glasses_binoclard" inhand_icon_state = null /obj/item/clothing/glasses/salesman diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index 29cff130c4b..a2e0127053c 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/mob/inhands/clothing/glasses_lefthand.dmi b/icons/mob/inhands/clothing/glasses_lefthand.dmi index 76eb0131be2..6d44e7215e4 100644 Binary files a/icons/mob/inhands/clothing/glasses_lefthand.dmi and b/icons/mob/inhands/clothing/glasses_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/glasses_righthand.dmi b/icons/mob/inhands/clothing/glasses_righthand.dmi index d080230eb9e..89248cf2b5d 100644 Binary files a/icons/mob/inhands/clothing/glasses_righthand.dmi and b/icons/mob/inhands/clothing/glasses_righthand.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 25cfd514d9a..57bc8ee729f 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/glasses.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/glasses.tsx index 248513fb6bd..60cb3131f1b 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/glasses.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/glasses.tsx @@ -1,6 +1,6 @@ -import { FeatureChoiced, FeatureDropdownInput } from '../base'; +import { FeatureIconnedDropdownInput, FeatureWithIcons } from '../base'; -export const glasses: FeatureChoiced = { +export const glasses: FeatureWithIcons = { name: 'Glasses', - component: FeatureDropdownInput, + component: FeatureIconnedDropdownInput, };