diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 69c352b359a..d5d4e933e70 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -70,7 +70,7 @@ var/global/list/exclude_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job var/global/list/pdalist = list("Nothing", "Standard PDA", "Classic PDA", "Rugged PDA", "Slate PDA", "Smart PDA", "Tablet", "Wristbound") //Headset choice -var/global/list/headsetlist = list("Nothing", "Headset", "Bowman Headset", "Double Headset", "Wristbound Radio") +var/global/list/headsetlist = list("Nothing", "Headset", "Bowman Headset", "Double Headset", "Wristbound Radio", "Sleek Wristbound Radio") // Primary Radio Slot choice var/global/list/primary_radio_slot_choice = list("Left Ear", "Right Ear", "Wrist") diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index e7d7818e41d..bd63644dbaa 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -38,6 +38,7 @@ #define OUTFIT_BOWMAN 3 #define OUTFIT_DOUBLE 4 #define OUTFIT_WRISTRAD 5 +#define OUTFIT_THIN_WRISTRAD 6 /datum/outfit var/name = "Naked" @@ -229,6 +230,7 @@ else H.equip_or_collect(B, slot_back) + var/datum/callback/radio_callback if(allow_headset_choice) switch(H.headset_choice) if (OUTFIT_NOTHING) @@ -237,21 +239,26 @@ l_ear = bowman if (OUTFIT_DOUBLE) l_ear = double_headset - if (OUTFIT_WRISTRAD) + if (OUTFIT_WRISTRAD, OUTFIT_THIN_WRISTRAD) l_ear = null wrist = wrist_radio + if(H.headset_choice == OUTFIT_THIN_WRISTRAD) + radio_callback = CALLBACK(src, PROC_REF(turn_into_thinset)) else l_ear = headset //Department headset if(l_ear) - equip_item(H, l_ear, slot_l_ear) + equip_item(H, l_ear, slot_l_ear, callback = radio_callback) else if (wrist) - equip_item(H, wrist, slot_wrists) + equip_item(H, wrist, slot_wrists, callback = radio_callback) - return +/datum/outfit/proc/turn_into_thinset(var/obj/item/device/radio/headset/wrist/radio) + if(istype(radio)) + radio.icon_state = replacetext(radio.icon_state, "wrist", "thin") + radio.item_state = replacetext(radio.item_state, "wrist", "thin") // Used to equip an item to the mob. Mainly to prevent copypasta for collect_not_del. //override_collect temporarily allows equip_or_collect without enabling it for the job. Mostly used to prevent weirdness with hand equips when the player is missing one -/datum/outfit/proc/equip_item(mob/living/carbon/human/H, path, slot, var/override_collect = FALSE, var/item_color) +/datum/outfit/proc/equip_item(mob/living/carbon/human/H, path, slot, var/override_collect = FALSE, var/item_color, var/datum/callback/callback) var/obj/item/I if(isnum(path)) //Check if parameter is not numeric. Must be a path, list of paths or name of a gear datum @@ -266,6 +273,9 @@ else I = new path(H) //As fallback treat it as a path + if(I && callback) + callback.Invoke(I) + if(collect_not_del || override_collect) H.equip_or_collect(I, slot) else diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 91c8276f591..6b58a55bbd8 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -446,7 +446,7 @@ datum/preferences character.pda_choice = pda_choice - if(headset_choice > OUTFIT_WRISTRAD || headset_choice < OUTFIT_NOTHING) + if(headset_choice > OUTFIT_THIN_WRISTRAD || headset_choice < OUTFIT_NOTHING) headset_choice = OUTFIT_HEADSET character.headset_choice = headset_choice diff --git a/html/changelogs/geeves-thinner_wristbound.yml b/html/changelogs/geeves-thinner_wristbound.yml new file mode 100644 index 00000000000..a5c8ac81e8b --- /dev/null +++ b/html/changelogs/geeves-thinner_wristbound.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added a thin variant of the wristbound radio, it's selectable in the character creation menu as a Sleek Wristbound Radio." \ No newline at end of file diff --git a/icons/mob/wrist.dmi b/icons/mob/wrist.dmi index 70499010c79..03f4f1dde28 100644 Binary files a/icons/mob/wrist.dmi and b/icons/mob/wrist.dmi differ diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index cc092005bce..d0f3fed7610 100644 Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ