diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 5226084b96..39b2b2d5be 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -101,6 +101,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) //config stuff /obj/machinery/announcement_system/interact(mob/user) + if(!user.canUseTopic(src, !issilicon(user))) + return if(stat & BROKEN) visible_message("[src] buzzes.", "You hear a faint buzz.") playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1) @@ -115,6 +117,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) popup.open() /obj/machinery/announcement_system/Topic(href, href_list) + if(!usr.canUseTopic(src, !issilicon(usr))) + return if(stat & BROKEN) visible_message("[src] buzzes.", "You hear a faint buzz.") playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1) @@ -122,13 +126,13 @@ GLOBAL_LIST_EMPTY(announcement_systems) if(href_list["ArrivalTopic"]) var/NewMessage = stripped_input(usr, "Enter in the arrivals announcement configuration.", "Arrivals Announcement Config", arrival) - if(!in_range(src, usr) && src.loc != usr && (!isAI(usr) && !IsAdminGhost(usr))) + if(!usr.canUseTopic(src, !issilicon(usr))) return if(NewMessage) arrival = NewMessage else if(href_list["NewheadTopic"]) var/NewMessage = stripped_input(usr, "Enter in the departmental head announcement configuration.", "Head Departmental Announcement Config", newhead) - if(!in_range(src, usr) && src.loc != usr && (!isAI(usr) && !IsAdminGhost(usr))) + if(!usr.canUseTopic(src, !issilicon(usr))) return if(NewMessage) newhead = NewMessage @@ -147,7 +151,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) . = attack_ai(user) /obj/machinery/announcement_system/attack_ai(mob/user) - if(!issilicon(user) && !IsAdminGhost(user)) + if(!user.canUseTopic(src, !issilicon(user))) return if(stat & BROKEN) to_chat(user, "[src]'s firmware appears to be malfunctioning!")