diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 5c75562db25..aa359437d80 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -53,6 +53,9 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r
var/wanted_issue = 0
// 0 = there's no WANTED issued, we don't need a special icon_state
// 1 = Guess what.
+ var/alert = 0
+ // 0 = there hasn't been a news/wanted update in the last minutes
+ // 1 = there has
var/scanned_user = "Unknown" //Will contain the name of the person who currently uses the newscaster
var/msg = ""; //Feed message
var/channel_name = ""; //the feed channel which will be receiving the feed, or being created
@@ -86,6 +89,9 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r
src.overlays = null
src.overlays += image(src.icon, "crack3")
return
+ if(alert)
+ icon_state = "newscaster_alert"
+ return
if(wanted_issue)
icon_state = "newscaster_wanted"
return
@@ -445,6 +451,10 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r
FC.messages += newMsg // To avoid further confusion, this one for adds the message to all existing newscasters' channel_list's channels.
break // Another for to go through newscasters is not needed. Due to the nature of submit_new_CHANNEL, every reference
src.screen=4 // to a channel in ANY newscaster is the same. Editing one will edit them all.
+
+ for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
+ NEWSCASTER.newsAlert(src.channel_name)
+
src.updateUsrDialog()
else if(href_list["create_channel"])
@@ -513,6 +523,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r
for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
NEWSCASTER.wanted = WANTED
NEWSCASTER.wanted_issue = 1
+ NEWSCASTER.wantedAlert()
NEWSCASTER.update_icon()
src.screen = 15
else
@@ -824,7 +835,24 @@ obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob)
return
+/obj/machinery/newscaster/proc/newsAlert(channel)
+ var/turf/T = get_turf(src)
+ for(var/mob/O in hearers(world.view-1, T))
+ O.show_message("Newscaster beeps, \"Breaking news from [channel]!\"",2)
+ playsound(src.loc, 'twobeep.ogg', 75, 1)
+ src.alert = 1
+ src.update_icon()
+ spawn(600)
+ src.alert = 0
+ src.update_icon()
-
-
-
+/obj/machinery/newscaster/proc/wantedAlert()
+ var/turf/T = get_turf(src)
+ for(var/mob/O in hearers(world.view-1, T))
+ O.show_message("Newscaster beeps, \"Wanted notice posted!\"",2)
+ playsound(src.loc, 'twobeep.ogg', 75, 1)
+ src.alert = 1
+ src.update_icon()
+ spawn(600)
+ src.alert = 0
+ src.update_icon()
\ No newline at end of file
diff --git a/icons/obj/terminals.dmi b/icons/obj/terminals.dmi
index 71678ae9c66..e9edcd84c96 100644
Binary files a/icons/obj/terminals.dmi and b/icons/obj/terminals.dmi differ