diff --git a/code/__DEFINES/outfit.dm b/code/__DEFINES/outfit.dm index f40447f0ab4..9c72fb04c61 100644 --- a/code/__DEFINES/outfit.dm +++ b/code/__DEFINES/outfit.dm @@ -39,3 +39,4 @@ #define OUTFIT_DOUBLE 4 #define OUTFIT_WRISTRAD 5 #define OUTFIT_THIN_WRISTRAD 6 +#define OUTFIT_CLIPON 7 diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index c58b867c6fd..6ecc00f0b22 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -111,7 +111,7 @@ GLOBAL_LIST_INIT(exclude_jobs, list(/datum/job/ai, /datum/job/cyborg, /datum/job GLOBAL_LIST_INIT(pdalist, list("Nothing", "Standard PDA", "Classic PDA", "Rugged PDA", "Slate PDA", "Smart PDA", "Tablet", "Wristbound")) /// Headset loadout choices. -GLOBAL_LIST_INIT(headsetlist, list("Nothing", "Headset", "Bowman Headset", "Double Headset", "Wristbound Radio", "Sleek Wristbound Radio")) +GLOBAL_LIST_INIT(headsetlist, list("Nothing", "Headset", "Bowman Headset", "Double Headset", "Wristbound Radio", "Sleek Wristbound Radio", "Clip-on Radio")) /// Primary Radio Slot loadout choices. GLOBAL_LIST_INIT(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 e0ffadf91c2..78a3ad415e7 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -80,6 +80,7 @@ var/bowman = /obj/item/device/radio/headset/alt var/double_headset = /obj/item/device/radio/headset/alt/double var/wrist_radio = /obj/item/device/radio/headset/wrist + var/clipon_radio = /obj/item/device/radio/headset/wrist/clip var/id_iff = IFF_DEFAULT // when spawning in, the ID will be set to this iff, preventing friendly fire @@ -285,6 +286,9 @@ wrist = wrist_radio if(H.headset_choice == OUTFIT_THIN_WRISTRAD) radio_callback = CALLBACK(src, PROC_REF(turn_into_thinset)) + if(OUTFIT_CLIPON) + l_ear = null + wrist = clipon_radio else l_ear = headset //Department headset if(l_ear) diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index b81a05c0aab..cf2cd9fe175 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -40,6 +40,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) bowman = /obj/item/device/radio/headset/heads/captain/alt double_headset = /obj/item/device/radio/headset/alt/double/captain wrist_radio = /obj/item/device/radio/headset/wrist/captain + clipon_radio = /obj/item/device/radio/headset/wrist/clip/captain tab_pda = /obj/item/modular_computer/handheld/pda/command/captain wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/command/captain @@ -122,6 +123,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) bowman = /obj/item/device/radio/headset/heads/xo/alt double_headset = /obj/item/device/radio/headset/alt/double/xo wrist_radio = /obj/item/device/radio/headset/wrist/xo + clipon_radio = /obj/item/device/radio/headset/wrist/clip/xo tab_pda = /obj/item/modular_computer/handheld/pda/command/xo wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/command/xo @@ -172,4 +174,5 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) bowman = /obj/item/device/radio/headset/headset_com/alt double_headset = /obj/item/device/radio/headset/alt/double/command wrist_radio = /obj/item/device/radio/headset/wrist/command + clipon_radio = /obj/item/device/radio/headset/wrist/clip/command messengerbag = /obj/item/storage/backpack/messenger/com diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 89e38637110..6f452f15645 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -38,6 +38,7 @@ bowman = /obj/item/device/radio/headset/headset_service/alt double_headset = /obj/item/device/radio/headset/alt/double/service wrist_radio = /obj/item/device/radio/headset/wrist/service + clipon_radio = /obj/item/device/radio/headset/wrist/clip/service backpack_faction = /obj/item/storage/backpack/nt satchel_faction = /obj/item/storage/backpack/satchel/nt @@ -84,6 +85,7 @@ bowman = /obj/item/device/radio/headset/headset_service/alt double_headset = /obj/item/device/radio/headset/alt/double/service wrist_radio = /obj/item/device/radio/headset/wrist/service + clipon_radio = /obj/item/device/radio/headset/wrist/clip/service backpack_faction = /obj/item/storage/backpack/nt satchel_faction = /obj/item/storage/backpack/satchel/nt @@ -134,6 +136,7 @@ bowman = /obj/item/device/radio/headset/headset_service/alt double_headset = /obj/item/device/radio/headset/alt/double/service wrist_radio = /obj/item/device/radio/headset/wrist/service + clipon_radio = /obj/item/device/radio/headset/wrist/clip/service backpack = /obj/item/storage/backpack/hydroponics backpack_faction = /obj/item/storage/backpack/nt @@ -185,6 +188,7 @@ bowman = /obj/item/device/radio/headset/headset_service/alt double_headset = /obj/item/device/radio/headset/alt/double/service wrist_radio = /obj/item/device/radio/headset/wrist/service + clipon_radio = /obj/item/device/radio/headset/wrist/clip/service backpack_faction = /obj/item/storage/backpack/nt satchel_faction = /obj/item/storage/backpack/satchel/nt @@ -227,6 +231,7 @@ bowman = /obj/item/device/radio/headset/headset_service/alt double_headset = /obj/item/device/radio/headset/alt/double/service wrist_radio = /obj/item/device/radio/headset/wrist/service + clipon_radio = /obj/item/device/radio/headset/wrist/clip/service backpack_faction = /obj/item/storage/backpack/nt satchel_faction = /obj/item/storage/backpack/satchel/nt @@ -286,6 +291,7 @@ bowman = /obj/item/device/radio/headset/headset_service/alt double_headset = /obj/item/device/radio/headset/alt/double/service wrist_radio = /obj/item/device/radio/headset/wrist/service + clipon_radio = /obj/item/device/radio/headset/wrist/clip/service tab_pda = /obj/item/modular_computer/handheld/pda/civilian/chaplain wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/civilian/chaplain @@ -374,6 +380,7 @@ bowman = /obj/item/device/radio/headset/operations_manager/alt double_headset = /obj/item/device/radio/headset/alt/double/operations_manager wrist_radio = /obj/item/device/radio/headset/wrist/cargo/operations_manager + clipon_radio = /obj/item/device/radio/headset/wrist/clip/cargo/operations_manager backpack = /obj/item/storage/backpack/om satchel = /obj/item/storage/backpack/satchel/om @@ -420,6 +427,7 @@ bowman = /obj/item/device/radio/headset/headset_cargo/alt double_headset = /obj/item/device/radio/headset/alt/double/cargo wrist_radio = /obj/item/device/radio/headset/wrist/cargo + clipon_radio = /obj/item/device/radio/headset/wrist/cargo /datum/job/mining title = "Shaft Miner" @@ -462,6 +470,7 @@ bowman = /obj/item/device/radio/headset/headset_mining/alt double_headset = /obj/item/device/radio/headset/alt/double/mining wrist_radio = /obj/item/device/radio/headset/wrist/cargo/mining + clipon_radio = /obj/item/device/radio/headset/wrist/clip/cargo/mining backpack_contents = list( /obj/item/storage/bag/ore = 1 @@ -518,6 +527,7 @@ bowman = /obj/item/device/radio/headset/headset_cargo/alt double_headset = /obj/item/device/radio/headset/alt/double/cargo wrist_radio = /obj/item/device/radio/headset/wrist/cargo + clipon_radio = /obj/item/device/radio/headset/wrist/clip/cargo belt_contents = list( /obj/item/screwdriver = 1, diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 72d2c2ff26e..33a2fddef2c 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -48,6 +48,7 @@ bowman = /obj/item/device/radio/headset/heads/ce/alt double_headset = /obj/item/device/radio/headset/alt/double/ce wrist_radio = /obj/item/device/radio/headset/wrist/ce + clipon_radio = /obj/item/device/radio/headset/wrist/clip/ce tab_pda = /obj/item/modular_computer/handheld/pda/engineering/ce wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/engineering/ce @@ -110,6 +111,7 @@ bowman = /obj/item/device/radio/headset/headset_eng/alt double_headset = /obj/item/device/radio/headset/alt/double/eng wrist_radio = /obj/item/device/radio/headset/wrist/eng + clipon_radio = /obj/item/device/radio/headset/wrist/clip/eng tab_pda = /obj/item/modular_computer/handheld/pda/engineering wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/engineering @@ -175,6 +177,7 @@ bowman = /obj/item/device/radio/headset/headset_eng/alt double_headset = /obj/item/device/radio/headset/alt/double/eng wrist_radio = /obj/item/device/radio/headset/wrist/eng + clipon_radio = /obj/item/device/radio/headset/wrist/clip/eng backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng @@ -250,6 +253,7 @@ bowman = /obj/item/device/radio/headset/headset_eng/alt double_headset = /obj/item/device/radio/headset/alt/double/eng wrist_radio = /obj/item/device/radio/headset/wrist/eng + clipon_radio = /obj/item/device/radio/headset/wrist/clip/eng backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng @@ -284,6 +288,7 @@ bowman = /obj/item/device/radio/headset/headset_eng/alt double_headset = /obj/item/device/radio/headset/alt/double/eng wrist_radio = /obj/item/device/radio/headset/wrist/eng + clipon_radio = /obj/item/device/radio/headset/wrist/clip/eng backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 6b083b409f4..529557a77e8 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -199,6 +199,7 @@ bowman = /obj/item/device/radio/headset/alt double_headset = /obj/item/device/radio/headset/alt/double wrist_radio = /obj/item/device/radio/headset/wrist + clipon_radio = /obj/item/device/radio/headset/wrist/clip tab_pda = /obj/item/modular_computer/handheld/pda/civilian wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/civilian diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 9ad5e4426e0..5be309e673b 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -46,6 +46,7 @@ bowman = /obj/item/device/radio/headset/heads/cmo/alt double_headset = /obj/item/device/radio/headset/alt/double/cmo wrist_radio = /obj/item/device/radio/headset/wrist/cmo + clipon_radio = /obj/item/device/radio/headset/wrist/clip/cmo tab_pda = /obj/item/modular_computer/handheld/pda/medical/cmo wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/medical/cmo @@ -118,6 +119,7 @@ bowman = /obj/item/device/radio/headset/headset_med/alt double_headset = /obj/item/device/radio/headset/alt/double/med wrist_radio = /obj/item/device/radio/headset/wrist/med + clipon_radio = /obj/item/device/radio/headset/wrist/clip/med tab_pda = /obj/item/modular_computer/handheld/pda/medical wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/medical @@ -180,6 +182,7 @@ bowman = /obj/item/device/radio/headset/headset_med/alt double_headset = /obj/item/device/radio/headset/alt/double/med wrist_radio = /obj/item/device/radio/headset/wrist/med + clipon_radio = /obj/item/device/radio/headset/wrist/clip/med tab_pda = /obj/item/modular_computer/handheld/pda/medical wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/medical @@ -233,6 +236,7 @@ bowman = /obj/item/device/radio/headset/headset_med/alt double_headset = /obj/item/device/radio/headset/alt/double/med wrist_radio = /obj/item/device/radio/headset/wrist/med + clipon_radio = /obj/item/device/radio/headset/wrist/clip/med tab_pda = /obj/item/modular_computer/handheld/pda/medical/psych wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/medical/psych @@ -290,6 +294,7 @@ bowman = /obj/item/device/radio/headset/headset_med/alt double_headset = /obj/item/device/radio/headset/alt/double/med wrist_radio = /obj/item/device/radio/headset/wrist/med + clipon_radio = /obj/item/device/radio/headset/wrist/clip/med tab_pda = /obj/item/modular_computer/handheld/pda/medical wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/medical @@ -360,6 +365,7 @@ bowman = /obj/item/device/radio/headset/headset_med/alt double_headset = /obj/item/device/radio/headset/alt/double/med wrist_radio = /obj/item/device/radio/headset/wrist/med + clipon_radio = /obj/item/device/radio/headset/wrist/clip/med backpack = /obj/item/storage/backpack/medic backpack_faction = /obj/item/storage/backpack/nt diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 3141a2ec798..f8a53368595 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -48,6 +48,7 @@ bowman = /obj/item/device/radio/headset/heads/rd/alt double_headset = /obj/item/device/radio/headset/alt/double/rd wrist_radio = /obj/item/device/radio/headset/wrist/rd + clipon_radio = /obj/item/device/radio/headset/wrist/clip/rd tab_pda = /obj/item/modular_computer/handheld/pda/research/rd wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/research/rd @@ -96,6 +97,7 @@ bowman = /obj/item/device/radio/headset/headset_sci/alt double_headset = /obj/item/device/radio/headset/alt/double/sci wrist_radio = /obj/item/device/radio/headset/wrist/sci + clipon_radio = /obj/item/device/radio/headset/wrist/clip/sci tab_pda = /obj/item/modular_computer/handheld/pda/research wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/research @@ -145,6 +147,7 @@ bowman = /obj/item/device/radio/headset/headset_xenoarch/alt double_headset = /obj/item/device/radio/headset/alt/double/xenoarch wrist_radio = /obj/item/device/radio/headset/wrist/xenoarch + clipon_radio = /obj/item/device/radio/headset/wrist/clip/xenoarch /datum/job/xenobiologist title = "Xenobiologist" @@ -236,6 +239,7 @@ bowman = /obj/item/device/radio/headset/headset_sci/alt double_headset = /obj/item/device/radio/headset/alt/double/sci wrist_radio = /obj/item/device/radio/headset/wrist/sci + clipon_radio = /obj/item/device/radio/headset/wrist/clip/sci backpack = /obj/item/storage/backpack/toxins backpack_faction = /obj/item/storage/backpack/nt diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index d35b0a289ee..bcc728da049 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -48,6 +48,7 @@ bowman = /obj/item/device/radio/headset/heads/hos/alt double_headset = /obj/item/device/radio/headset/alt/double/hos wrist_radio = /obj/item/device/radio/headset/wrist/hos + clipon_radio = /obj/item/device/radio/headset/wrist/clip/hos tab_pda = /obj/item/modular_computer/handheld/pda/security/hos wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/security/hos @@ -112,6 +113,7 @@ bowman = /obj/item/device/radio/headset/headset_warden/alt double_headset = /obj/item/device/radio/headset/alt/double/sec/warden wrist_radio = /obj/item/device/radio/headset/wrist/sec/warden + clipon_radio = /obj/item/device/radio/headset/wrist/clip/sec/warden tab_pda = /obj/item/modular_computer/handheld/pda/security wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/security @@ -169,6 +171,7 @@ bowman = /obj/item/device/radio/headset/headset_sec/alt double_headset = /obj/item/device/radio/headset/alt/double/sec wrist_radio = /obj/item/device/radio/headset/wrist/sec + clipon_radio = /obj/item/device/radio/headset/wrist/clip/sec tab_pda = /obj/item/modular_computer/handheld/pda/security/detective wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/security/detective @@ -223,6 +226,7 @@ bowman = /obj/item/device/radio/headset/headset_sec/alt double_headset = /obj/item/device/radio/headset/alt/double/sec wrist_radio = /obj/item/device/radio/headset/wrist/sec + clipon_radio = /obj/item/device/radio/headset/wrist/clip/sec tab_pda = /obj/item/modular_computer/handheld/pda/security wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/security @@ -290,6 +294,7 @@ bowman = /obj/item/device/radio/headset/headset_sec/alt double_headset = /obj/item/device/radio/headset/alt/double/sec wrist_radio = /obj/item/device/radio/headset/wrist/sec + clipon_radio = /obj/item/device/radio/headset/wrist/clip/sec backpack = /obj/item/storage/backpack/security satchel = /obj/item/storage/backpack/satchel/sec diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index ccd4bb75dee..2c74361f240 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1234,6 +1234,9 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. /obj/item/proc/get_head_examine_text(var/mob/user) return "on [user.get_pronoun("his")] head" +/obj/item/proc/get_wrist_examine_text(var/mob/user) + return "around [user.get_pronoun("his")] [gender==PLURAL?"wrists":"wrist"]" + /obj/item/proc/should_equip() // when you press E with an empty hand, will this item be pulled from suit storage / back slot and put into your hand return FALSE diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index a2452674162..9d6f869e903 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -213,7 +213,7 @@ item_state = "wristset" slot_flags = SLOT_WRISTS canhear_range = 1 - var/normal_layer = TRUE + var/mob_wear_layer = WRISTS_LAYER_OVER EarSound = FALSE /obj/item/device/radio/headset/wrist/verb/change_layer() @@ -221,11 +221,59 @@ set name = "Change Wrist Layer" set src in usr - normal_layer = !normal_layer - to_chat(usr, SPAN_NOTICE("\The [src] will now layer [normal_layer ? "over" : "under"] your outerwear.")) - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_wrists() + if(mob_wear_layer == WRISTS_LAYER_OVER) + mob_wear_layer = WRISTS_LAYER_UNIFORM + else + mob_wear_layer = WRISTS_LAYER_OVER + to_chat(usr, SPAN_NOTICE("\The [src] will now layer [mob_wear_layer == WRISTS_LAYER_OVER ? "over" : "under"] your outerwear.")) + if (ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + if(H.wrists == src) + H.update_inv_wrists() + else if(H.l_ear == src) + H.update_inv_l_ear() + else if(H.r_ear == src) + H.update_inv_r_ear() + + +/obj/item/device/radio/headset/wrist/clip + name = "clip-on radio" + desc = "A radio designed to clip onto your clothes. Often known for broadcasting loudly enough that those closeby might overhear it." + desc_info = "This radio can be heard by people standing next to the one wearing it." + icon = 'icons/obj/item/tools/radio/clip.dmi' + icon_state = "clip" + item_state = "clip" + slot_flags = SLOT_WRISTS | SLOT_EARS + contained_sprite = TRUE + +/obj/item/device/radio/headset/wrist/clip/verb/flip_radio() + set category = "Object" + set name = "Flip Radio" + set src in usr + + if(item_state == initial(item_state)) + item_state = "[initial(item_state)]_r" + else + item_state = initial(item_state) + to_chat(usr, SPAN_NOTICE("\The [src] will now be worn on your [(item_state == initial(item_state)) ? "left" : "right"] side.")) + if (ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + if(H.wrists == src) + H.update_inv_wrists() + else if(H.l_ear == src) + H.update_inv_l_ear() + else if(H.r_ear == src) + H.update_inv_r_ear() + +/obj/item/device/radio/headset/wrist/clip/get_wrist_examine_text(mob/living/carbon/human/user) + if(!istype(user)) + return ..() + return "clipped to [user.get_pronoun("his")] [(mob_wear_layer == WRISTS_LAYER_OVER) && user.wear_suit ? user.wear_suit.name : user.w_uniform ? user.w_uniform.name : "chest"]" + +/obj/item/device/radio/headset/wrist/clip/get_ear_examine_text(mob/living/carbon/human/user) + if(!istype(user)) + return ..() + return "clipped to [user.get_pronoun("his")] [user.wear_suit ? user.wear_suit.name : user.w_uniform ? user.w_uniform.name : "chest"]" /* * Civillian @@ -254,6 +302,12 @@ item_state = "wristset_srv" ks2type = /obj/item/device/encryptionkey/headset_service +/obj/item/device/radio/headset/wrist/clip/service + name = "clip-on service radio" + icon_state = "clip_srv" + item_state = "clip_srv" + ks2type = /obj/item/device/encryptionkey/headset_service + /obj/item/device/radio/headset/heads/xo name = "executive officer's headset" desc = "The headset of the guy who will one day be captain." @@ -277,6 +331,12 @@ item_state = "wristset_HoP" ks2type = /obj/item/device/encryptionkey/heads/xo +/obj/item/device/radio/headset/wrist/clip/xo + name = "executive officer's clip-on radio" + icon_state = "clip_HoP" + item_state = "clip_HoP" + ks2type = /obj/item/device/encryptionkey/heads/xo + /* * Engineering */ @@ -304,6 +364,12 @@ item_state = "wristset_eng" ks2type = /obj/item/device/encryptionkey/headset_eng +/obj/item/device/radio/headset/wrist/clip/eng + name = "clip-on engineering radio" + icon_state = "clip_eng" + item_state = "clip_eng" + ks2type = /obj/item/device/encryptionkey/headset_eng + /obj/item/device/radio/headset/heads/ce name = "chief engineer's headset" desc = "The headset of the guy who is in charge of morons." @@ -327,6 +393,11 @@ item_state = "wristset_CE" ks2type = /obj/item/device/encryptionkey/heads/ce +/obj/item/device/radio/headset/wrist/clip/ce + name = "chief engineer's clip-on radio" + icon_state = "clip_CE" + item_state = "clip_CE" + ks2type = /obj/item/device/encryptionkey/heads/ce /* * Cargo @@ -355,6 +426,11 @@ item_state = "wristset_cargo" ks2type = /obj/item/device/encryptionkey/headset_cargo +/obj/item/device/radio/headset/wrist/clip/cargo + name = "clip-on cargo radio" + icon_state = "clip_cargo" + item_state = "clip_cargo" + ks2type = /obj/item/device/encryptionkey/headset_cargo /obj/item/device/radio/headset/headset_mining name = "mining radio headset" @@ -378,6 +454,11 @@ icon_state = "wristset_mine" item_state = "wristset_mine" +/obj/item/device/radio/headset/wrist/clip/cargo/mining + name = "clip-on mining radio" + icon_state = "clip_mine" + item_state = "clip_mine" + /obj/item/device/radio/headset/operations_manager name = "operations manager's headset" desc = "A headset used by the head honcho of paper pushing." @@ -401,6 +482,12 @@ item_state = "wristset_QM" ks2type = /obj/item/device/encryptionkey/headset_operations_manager +/obj/item/device/radio/headset/wrist/clip/cargo/operations_manager + name = "clip-on operations manager radio" + icon_state = "clip_QM" + item_state = "clip_QM" + ks2type = /obj/item/device/encryptionkey/headset_operations_manager + /* * Medical */ @@ -428,6 +515,12 @@ item_state = "wristset_med" ks2type = /obj/item/device/encryptionkey/headset_med +/obj/item/device/radio/headset/wrist/clip/med + name = "clip-on medical radio" + icon_state = "clip_med" + item_state = "clip_med" + ks2type = /obj/item/device/encryptionkey/headset_med + /obj/item/device/radio/headset/heads/cmo name = "chief medical officer's headset" desc = "The headset of the highly trained medical chief." @@ -451,6 +544,12 @@ item_state = "wristset_CMO" ks2type = /obj/item/device/encryptionkey/heads/cmo +/obj/item/device/radio/headset/wrist/clip/cmo + name = "chief medical officer's clip-on radio" + icon_state = "clip_CMO" + item_state = "clip_CMO" + ks2type = /obj/item/device/encryptionkey/heads/cmo + /* * Science */ @@ -477,6 +576,12 @@ item_state = "wristset_sci" ks2type = /obj/item/device/encryptionkey/headset_sci +/obj/item/device/radio/headset/wrist/clip/sci + name = "clip-on science radio" + icon_state = "clip_sci" + item_state = "clip_sci" + ks2type = /obj/item/device/encryptionkey/headset_sci + /obj/item/device/radio/headset/headset_xenoarch name = "xenoarchaeology radio headset" desc = "A sciency headset for Xenoarchaeologists." @@ -499,6 +604,12 @@ item_state = "wristset_sci" ks2type = /obj/item/device/encryptionkey/headset_xenoarch +/obj/item/device/radio/headset/wrist/clip/xenoarch + name = "clip-on xenoarchaeology radio" + icon_state = "clip_sci" + item_state = "clip_sci" + ks2type = /obj/item/device/encryptionkey/headset_xenoarch + /obj/item/device/radio/headset/headset_rob name = "robotics radio headset" desc = "Made specifically for the roboticists who cannot decide between departments." @@ -528,6 +639,12 @@ item_state = "wristset_RD" ks2type = /obj/item/device/encryptionkey/heads/rd +/obj/item/device/radio/headset/wrist/clip/rd + name = "research director's clip-on radio" + icon_state = "clip_RD" + item_state = "clip_RD" + ks2type = /obj/item/device/encryptionkey/heads/rd + /* * Security */ @@ -555,6 +672,12 @@ item_state = "wristset_sec" ks2type = /obj/item/device/encryptionkey/headset_sec +/obj/item/device/radio/headset/wrist/sec + name = "clip-on security radio" + icon_state = "clip_sec" + item_state = "clip_sec" + ks2type = /obj/item/device/encryptionkey/headset_sec + /obj/item/device/radio/headset/headset_warden name = "warden radio headset" desc = "This is used by your all-powerful overseer." @@ -574,6 +697,10 @@ name = "wristbound warden radio" ks2type = /obj/item/device/encryptionkey/headset_warden +/obj/item/device/radio/headset/wrist/clip/sec/warden + name = "clip-on warden radio" + ks2type = /obj/item/device/encryptionkey/headset_warden + /obj/item/device/radio/headset/headset_penal name = "penal radio headset" desc = "A headset used by people who have chosen or been chosen to work the fields." @@ -603,6 +730,12 @@ item_state = "wristset_HoS" ks2type = /obj/item/device/encryptionkey/heads/hos +/obj/item/device/radio/headset/wrist/clip/hos + name = "head of security's clip-on radio" + icon_state = "clip_HoS" + item_state = "clip_HoS" + ks2type = /obj/item/device/encryptionkey/heads/hos + /* * Captain */ @@ -630,6 +763,12 @@ item_state = "wristset_com" ks2type = /obj/item/device/encryptionkey/headset_com +/obj/item/device/radio/headset/wrist/clip/command + name = "clip-on command radio" + icon_state = "clip_com" + item_state = "clip_com" + ks2type = /obj/item/device/encryptionkey/headset_com + /obj/item/device/radio/headset/heads/captain name = "captain's headset" desc = "The headset of the boss." @@ -653,6 +792,12 @@ item_state = "wristset_cap" ks2type = /obj/item/device/encryptionkey/heads/captain +/obj/item/device/radio/headset/wrist/clip/captain + name = "captain's clip-on radio" + icon_state = "clip_cap" + item_state = "clip_cap" + ks2type = /obj/item/device/encryptionkey/heads/captain + /* * Misc */ diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e3f231d8a62..c586cf0af9f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -495,7 +495,7 @@ var/list/preferences_datums = list() character.pda_choice = pda_choice - if(headset_choice > OUTFIT_THIN_WRISTRAD || headset_choice < OUTFIT_NOTHING) + if(headset_choice > OUTFIT_CLIPON || headset_choice < OUTFIT_NOTHING) headset_choice = OUTFIT_HEADSET character.headset_choice = headset_choice diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 91c7ec2af92..a35909ec3e4 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -200,7 +200,7 @@ //wrists if(wrists && !skipwrists) - msg += "[get_pronoun("He")] [get_pronoun("is")] wearing [icon2html(wrists, user)] \a [wrists] on [get_pronoun("his")] [wrists.gender==PLURAL?"wrists":"wrist"].\n" + msg += "[get_pronoun("He")] [get_pronoun("is")] wearing [icon2html(wrists, user)] \a [wrists] [wrists.get_wrist_examine_text(src)].\n" //Jitters if(is_jittery) diff --git a/html/changelogs/clipon_radios.yml b/html/changelogs/clipon_radios.yml new file mode 100644 index 00000000000..6d63da00ddd --- /dev/null +++ b/html/changelogs/clipon_radios.yml @@ -0,0 +1,7 @@ +author: Sparky_hotdog + +delete-after: True + +changes: + - rscadd: "Added clip-on radios, available in the radio selection. They can be equipped in either ear slot or the wrist slot." + - bugfix: "Fixed an issue causing wrist radios to not display on mob." diff --git a/icons/obj/item/tools/radio/clip.dmi b/icons/obj/item/tools/radio/clip.dmi new file mode 100644 index 00000000000..b0ee36352f0 Binary files /dev/null and b/icons/obj/item/tools/radio/clip.dmi differ