diff --git a/code/datums/action.dm b/code/datums/action.dm
index e2328f7ac99..d3ee25bbd76 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -388,6 +388,10 @@
if(istype(H))
H.toggle_geiger_counter()
+/datum/action/item_action/toggle_radio_jammer
+ name = "Toggle Radio Jammer"
+ desc = "Turns your jammer on or off. Hush, you."
+
/datum/action/item_action/hands_free
check_flags = AB_CHECK_CONSCIOUS
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 39a7a22f8c2..494c78bce30 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -1557,7 +1557,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/device_tools/jammer
name = "Radio Jammer"
- desc = "This device will disrupt any nearby outgoing radio communication when activated."
+ desc = "When turned on this device will scramble any outgoing radio communications near you, making them hard to understand."
reference = "RJ"
item = /obj/item/jammer
cost = 4
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index e07104e1401..7df40719a15 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -1,8 +1,11 @@
/obj/item/jammer
name = "radio jammer"
- desc = "Device used to disrupt nearby radio communication."
+ desc = "Fog of war that fits your pocket. Flicking the switch and extending the antenna will scramble nearby radio comms, making outgoing messages hard to understand."
icon = 'icons/obj/device.dmi'
icon_state = "jammer"
+ item_state = "jammer"
+ w_class = WEIGHT_CLASS_TINY
+ actions_types = list(/datum/action/item_action/toggle_radio_jammer)
var/active = FALSE
var/range = 12
@@ -10,13 +13,22 @@
GLOB.active_jammers -= src
return ..()
+/obj/item/jammer/update_icon_state()
+ if(active)
+ icon_state = "[initial(icon_state)]-on"
+ else
+ icon_state = "[initial(icon_state)]"
+
/obj/item/jammer/attack_self(mob/user)
- to_chat(user, "You [active ? "deactivate" : "activate"] [src].")
+ to_chat(user, "You [active ? "deactivate [src]. It goes quiet with a small click." : "activate [src]. It starts to hum softly."] ")
active = !active
+ update_icon(UPDATE_ICON_STATE)
if(active)
GLOB.active_jammers |= src
else
GLOB.active_jammers -= src
+ for(var/datum/action/item_action/toggle_radio_jammer/A in actions)
+ A.UpdateButtonIcon()
/obj/item/teleporter
name = "syndicate teleporter"
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index d164b27d9c4..4c04396181d 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index 8988938b4ef..7658ac307a6 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 2c9dee8178c..36026dade05 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ