diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm
index 1205bc17d701..0674c6231026 100644
--- a/code/game/machinery/telecomms/machine_interactions.dm
+++ b/code/game/machinery/telecomms/machine_interactions.dm
@@ -40,7 +40,9 @@
dat += "
[temp]
"
dat += "
Power Status: [toggled ? "On" : "Off"]"
if(on && toggled)
- if(id != "" && id)
+ if(obj_flags & EMAGGED)
+ dat += "
[Gibberish("Identification String: NULL",100)]"
+ else if(id != "" && id)
dat += "
Identification String: [id]"
else
dat += "
Identification String: NULL"
@@ -53,6 +55,8 @@
dat += Options_Menu()
dat += "
Linked Network Entities:
"
+ if(obj_flags & EMAGGED)
+ dat += "- [Gibberish("NULL NULL (NULL)",100)]
"
var/i = 0
for(var/obj/machinery/telecomms/T in links)
@@ -64,6 +68,9 @@
dat += "
Filtering Frequencies: "
+ if(obj_flags & EMAGGED)
+ dat += "- [Gibberish("357353 GHz",100)]
"
+
i = 0
if(length(freq_listening))
for(var/x in freq_listening)
@@ -80,6 +87,8 @@
if(P)
var/obj/machinery/telecomms/T = P.buffer
+ if(obj_flags & EMAGGED)
+ dat += "
[Gibberish("MULTITOOL BUFFER: NULL (NULL)",100)]"
if(istype(T))
dat += "
MULTITOOL BUFFER: [T] ([T.id]) \[Link\] \[Flush\]"
else
@@ -157,6 +166,22 @@
change_frequency = 0
temp = "-% Frequency changing deactivated %-"
+/obj/machinery/telecomms/processor/Options_Menu()
+ var/dat = ""
+ if(obj_flags & EMAGGED)
+ dat = "
Compressing signa;: [process_mode ? "YES" : "NO"]"
+ return dat
+
+/obj/machinery/telecomms/processor/Options_Topic(href, href_list)
+ if(obj_flags & EMAGGED)
+ if(href_list["proc_mode"])
+ if(canAccess(usr))
+ if(process_mode == 1)
+ process_mode = 0
+ temp = "-% Compressing Signal activated %-"
+ else
+ process_mode = 1
+ temp = "-% Signal Compression halted %-"
/obj/machinery/telecomms/Topic(href, href_list)
if(..())
@@ -174,7 +199,7 @@
if("toggle")
toggled = !toggled
- temp = "-% [src] has been [toggled ? "activated" : "deactivated"]."
+ temp = " [src] has been [toggled ? "activated" : "deactivated"]."
update_power()
diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm
index 0653084bce23..4b6207a0dc7a 100644
--- a/code/game/machinery/telecomms/machines/server.dm
+++ b/code/game/machinery/telecomms/machines/server.dm
@@ -39,7 +39,7 @@
// If the signal is still compressed, make the log entry gibberish
var/compression = signal.data["compression"]
- if(compression > 0)
+ if(compression > 0 || (obj_flags & EMAGGED))
log.input_type = "Corrupt File"
log.parameters["name"] = Gibberish(signal.data["name"], compression + 50)
log.parameters["job"] = Gibberish(signal.data["job"], compression + 50)
diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm
index 31de3ed34f3d..f30081e268ae 100644
--- a/code/game/machinery/telecomms/telecomunications.dm
+++ b/code/game/machinery/telecomms/telecomunications.dm
@@ -184,4 +184,9 @@ GLOBAL_LIST_EMPTY(telecomms_list)
addtimer(CALLBACK(src, .proc/de_emp), rand(duration - 20, duration + 20))
/obj/machinery/telecomms/proc/de_emp()
- stat &= ~EMPED
\ No newline at end of file
+ stat &= ~EMPED
+
+/obj/machinery/telecomms/emag_act()
+ obj_flags |= EMAGGED
+ visible_message("Sparks fly out of the[src]!")
+ traffic += 50
\ No newline at end of file