diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm
index 702f7512535..644420fc3c1 100644
--- a/code/game/machinery/atmoalter/canister.dm
+++ b/code/game/machinery/atmoalter/canister.dm
@@ -74,6 +74,7 @@ var/datum/canister_icons/canister_icon_container = new()
var/temperature_resistance = 1000 + T0C
volume = 1000
use_power = 0
+ interact_offline = 1
var/release_log = ""
var/busy = 0
var/update_flag = 0
@@ -424,16 +425,9 @@ update_flag
possibledecals = new /list(3)
/obj/machinery/portable_atmospherics/canister/Topic(href, href_list)
-
- //Do not use "if(..()) return" here, canisters will stop working in unpowered areas like space or on the derelict. // yeah but without SOME sort of Topic check any dick can mess with them via exploits as he pleases -walter0o
- if (!istype(src.loc, /turf))
- return 0
-
- if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) // exploit protection -walter0o
- usr << browse(null, "window=canister")
- onclose(usr, "canister")
- return
-
+ if(..())
+ return 1
+
if (href_list["choice"] == "menu")
menu = text2num(href_list["mode_target"])
diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm
index e9fb01b034c..23dca91dd51 100644
--- a/code/game/machinery/atmoalter/pump.dm
+++ b/code/game/machinery/atmoalter/pump.dm
@@ -99,7 +99,7 @@
src.add_hiddenprint(user)
return src.attack_hand(user)
-/obj/machinery/portable_atmospherics/pump/attack_ghost(var/mob/user)
+/obj/machinery/portable_atmospherics/pump/attack_ghost(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/portable_atmospherics/pump/attack_hand(var/mob/user as mob)
diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm
index b6dabbdec32..5ab92bd3088 100644
--- a/code/game/machinery/atmoalter/scrubber.dm
+++ b/code/game/machinery/atmoalter/scrubber.dm
@@ -109,7 +109,7 @@
src.add_hiddenprint(user)
return src.attack_hand(user)
-/obj/machinery/portable_atmospherics/scrubber/attack_ghost(var/mob/user)
+/obj/machinery/portable_atmospherics/scrubber/attack_ghost(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/portable_atmospherics/scrubber/attack_hand(var/mob/user as mob)
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index 2c03a7a92e8..75acd99fb58 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -53,12 +53,15 @@ FIRE ALARM
if(src.detecting)
if(temperature > T0C+200)
src.alarm() // added check of detector status here
- return
-
+ return
+
/obj/machinery/firealarm/attack_ai(mob/user as mob)
src.add_hiddenprint(user)
return src.attack_hand(user)
+/obj/machinery/firealarm/attack_ghost(mob/user as mob)
+ return src.attack_hand(user)
+
/obj/machinery/firealarm/bullet_act(BLAH)
return src.alarm()
@@ -174,7 +177,7 @@ FIRE ALARM
var/area/A = src.loc
var/d1
var/d2
- if (istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon))
+ if (ishuman(user) || issilicon(user) || isobserver(user))
A = A.loc
if (A.fire)
@@ -208,34 +211,27 @@ FIRE ALARM
return
/obj/machinery/firealarm/Topic(href, href_list)
- ..()
- if (usr.stat || stat & (BROKEN|NOPOWER))
- return
-
+ if(..())
+ return 1
+
if (buildstage != 2)
- return
+ return 1
- if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
- usr.set_machine(src)
- if (href_list["reset"])
- src.reset()
- else if (href_list["alarm"])
- src.alarm()
- else if (href_list["time"])
- src.timing = text2num(href_list["time"])
- last_process = world.timeofday
- processing_objects.Add(src)
- else if (href_list["tp"])
- var/tp = text2num(href_list["tp"])
- src.time += tp
- src.time = min(max(round(src.time), 0), 120)
+ if (href_list["reset"])
+ src.reset()
+ else if (href_list["alarm"])
+ src.alarm()
+ else if (href_list["time"])
+ src.timing = text2num(href_list["time"])
+ last_process = world.timeofday
+ processing_objects.Add(src)
+ else if (href_list["tp"])
+ var/tp = text2num(href_list["tp"])
+ src.time += tp
+ src.time = min(max(round(src.time), 0), 120)
- src.updateUsrDialog()
-
- src.add_fingerprint(usr)
- else
- usr << browse(null, "window=firealarm")
- return
+ src.updateUsrDialog()
+ src.add_fingerprint(usr)
return
/obj/machinery/firealarm/proc/reset()
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index eef7223d15b..43d4363a997 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -183,9 +183,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
if(!src.ispowered || src.isbroken)
return
- if(!user.IsAdvancedToolUser())
- return 0
-
if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) )
var/mob/living/human_or_robot_user = user
var/dat
@@ -444,273 +441,272 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
/obj/machinery/newscaster/Topic(href, href_list)
if(..())
return 1
- if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
- usr.set_machine(src)
- if(href_list["set_channel_name"])
- src.channel_name = sanitizeSQL(strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")))
- while (findtext(src.channel_name," ") == 1)
- src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1)
- src.updateUsrDialog()
- //src.update_icon()
+
+ usr.set_machine(src)
+ if(href_list["set_channel_name"])
+ src.channel_name = sanitizeSQL(strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")))
+ while (findtext(src.channel_name," ") == 1)
+ src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1)
+ src.updateUsrDialog()
+ //src.update_icon()
- else if(href_list["set_channel_lock"])
- src.c_locked = !src.c_locked
- src.updateUsrDialog()
- //src.update_icon()
+ else if(href_list["set_channel_lock"])
+ src.c_locked = !src.c_locked
+ src.updateUsrDialog()
+ //src.update_icon()
- else if(href_list["submit_new_channel"])
- //var/list/existing_channels = list() //OBSOLETE
- var/list/existing_authors = list()
- for(var/datum/feed_channel/FC in news_network.network_channels)
- //existing_channels += FC.channel_name
- if(FC.author == "\[REDACTED\]")
- existing_authors += FC.backup_author
- else
- existing_authors +=FC.author
- var/check = 0
+ else if(href_list["submit_new_channel"])
+ //var/list/existing_channels = list() //OBSOLETE
+ var/list/existing_authors = list()
+ for(var/datum/feed_channel/FC in news_network.network_channels)
+ //existing_channels += FC.channel_name
+ if(FC.author == "\[REDACTED\]")
+ existing_authors += FC.backup_author
+ else
+ existing_authors +=FC.author
+ var/check = 0
+ for(var/datum/feed_channel/FC in news_network.network_channels)
+ if(FC.channel_name == src.channel_name)
+ check = 1
+ break
+ if(src.channel_name == "" || src.channel_name == "\[REDACTED\]" || src.scanned_user == "Unknown" || check || (src.scanned_user in existing_authors) )
+ src.screen=7
+ else
+ var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel")
+ if(choice=="Confirm")
+ var/datum/feed_channel/newChannel = new /datum/feed_channel
+ newChannel.channel_name = src.channel_name
+ newChannel.author = src.scanned_user
+ newChannel.locked = c_locked
+ feedback_inc("newscaster_channels",1)
+ /*for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) //Let's add the new channel in all casters.
+ NEWSCASTER.channel_list += newChannel*/ //Now that it is sane, get it into the list. -OBSOLETE
+ news_network.network_channels += newChannel //Adding channel to the global network
+ src.screen=5
+ src.updateUsrDialog()
+ //src.update_icon()
+
+ else if(href_list["set_channel_receiving"])
+ //var/list/datum/feed_channel/available_channels = list()
+ var/list/available_channels = list()
+ for(var/datum/feed_channel/F in news_network.network_channels)
+ if( (!F.locked || F.author == scanned_user) && !F.censored)
+ available_channels += F.channel_name
+ src.channel_name = strip_html_simple(input(usr, "Choose receiving Feed Channel", "Network Channel Handler") in available_channels )
+ src.updateUsrDialog()
+
+ else if(href_list["set_new_message"])
+ src.msg = strip_html(input(usr, "Write your feed story", "Network Channel Handler", ""))
+ while (findtext(src.msg," ") == 1)
+ src.msg = copytext(src.msg,2,lentext(src.msg)+1)
+ src.updateUsrDialog()
+
+ else if(href_list["set_attachment"])
+ AttachPhoto(usr)
+ src.updateUsrDialog()
+
+ else if(href_list["submit_new_message"])
+ if(src.msg =="" || src.msg=="\[REDACTED\]" || src.scanned_user == "Unknown" || src.channel_name == "" )
+ src.screen=6
+ else
+ var/datum/feed_message/newMsg = new /datum/feed_message
+ newMsg.author = src.scanned_user
+ newMsg.body = src.msg
+ if(photo)
+ newMsg.img = photo.img
+ feedback_inc("newscaster_stories",1)
+ var/announcement = ""
for(var/datum/feed_channel/FC in news_network.network_channels)
if(FC.channel_name == src.channel_name)
- check = 1
+ FC.messages += newMsg //Adding message to the network's appropriate feed_channel
+ announcement = FC.announce_news()
break
- if(src.channel_name == "" || src.channel_name == "\[REDACTED\]" || src.scanned_user == "Unknown" || check || (src.scanned_user in existing_authors) )
- src.screen=7
- else
- var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel")
- if(choice=="Confirm")
- var/datum/feed_channel/newChannel = new /datum/feed_channel
- newChannel.channel_name = src.channel_name
- newChannel.author = src.scanned_user
- newChannel.locked = c_locked
- feedback_inc("newscaster_channels",1)
- /*for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) //Let's add the new channel in all casters.
- NEWSCASTER.channel_list += newChannel*/ //Now that it is sane, get it into the list. -OBSOLETE
- news_network.network_channels += newChannel //Adding channel to the global network
- src.screen=5
- src.updateUsrDialog()
- //src.update_icon()
+ src.screen=4
+ for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
+ NEWSCASTER.newsAlert(announcement)
- else if(href_list["set_channel_receiving"])
- //var/list/datum/feed_channel/available_channels = list()
- var/list/available_channels = list()
- for(var/datum/feed_channel/F in news_network.network_channels)
- if( (!F.locked || F.author == scanned_user) && !F.censored)
- available_channels += F.channel_name
- src.channel_name = strip_html_simple(input(usr, "Choose receiving Feed Channel", "Network Channel Handler") in available_channels )
- src.updateUsrDialog()
+ src.updateUsrDialog()
- else if(href_list["set_new_message"])
- src.msg = strip_html(input(usr, "Write your feed story", "Network Channel Handler", ""))
- while (findtext(src.msg," ") == 1)
- src.msg = copytext(src.msg,2,lentext(src.msg)+1)
- src.updateUsrDialog()
+ else if(href_list["create_channel"])
+ src.screen=2
+ src.updateUsrDialog()
- else if(href_list["set_attachment"])
- AttachPhoto(usr)
- src.updateUsrDialog()
+ else if(href_list["create_feed_story"])
+ src.screen=3
+ src.updateUsrDialog()
- else if(href_list["submit_new_message"])
- if(src.msg =="" || src.msg=="\[REDACTED\]" || src.scanned_user == "Unknown" || src.channel_name == "" )
- src.screen=6
- else
- var/datum/feed_message/newMsg = new /datum/feed_message
- newMsg.author = src.scanned_user
- newMsg.body = src.msg
- if(photo)
- newMsg.img = photo.img
- feedback_inc("newscaster_stories",1)
- var/announcement = ""
- for(var/datum/feed_channel/FC in news_network.network_channels)
- if(FC.channel_name == src.channel_name)
- FC.messages += newMsg //Adding message to the network's appropriate feed_channel
- announcement = FC.announce_news()
- break
- src.screen=4
- for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
- NEWSCASTER.newsAlert(announcement)
+ else if(href_list["menu_paper"])
+ src.screen=8
+ src.updateUsrDialog()
+ else if(href_list["print_paper"])
+ if(!src.paper_remaining)
+ src.screen=21
+ else
+ src.print_paper()
+ src.screen = 20
+ src.updateUsrDialog()
- src.updateUsrDialog()
+ else if(href_list["menu_censor_story"])
+ src.screen=10
+ src.updateUsrDialog()
- else if(href_list["create_channel"])
- src.screen=2
- src.updateUsrDialog()
+ else if(href_list["menu_censor_channel"])
+ src.screen=11
+ src.updateUsrDialog()
- else if(href_list["create_feed_story"])
- src.screen=3
- src.updateUsrDialog()
+ else if(href_list["menu_wanted"])
+ var/already_wanted = 0
+ if(news_network.wanted_issue)
+ already_wanted = 1
- else if(href_list["menu_paper"])
- src.screen=8
- src.updateUsrDialog()
- else if(href_list["print_paper"])
- if(!src.paper_remaining)
- src.screen=21
- else
- src.print_paper()
- src.screen = 20
- src.updateUsrDialog()
+ if(already_wanted)
+ src.channel_name = news_network.wanted_issue.author
+ src.msg = news_network.wanted_issue.body
+ src.screen = 14
+ src.updateUsrDialog()
- else if(href_list["menu_censor_story"])
- src.screen=10
- src.updateUsrDialog()
+ else if(href_list["set_wanted_name"])
+ src.channel_name = strip_html(input(usr, "Provide the name of the Wanted person", "Network Security Handler", ""))
+ while (findtext(src.channel_name," ") == 1)
+ src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1)
+ src.updateUsrDialog()
- else if(href_list["menu_censor_channel"])
- src.screen=11
- src.updateUsrDialog()
+ else if(href_list["set_wanted_desc"])
+ src.msg = strip_html(input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", ""))
+ while (findtext(src.msg," ") == 1)
+ src.msg = copytext(src.msg,2,lentext(src.msg)+1)
+ src.updateUsrDialog()
- else if(href_list["menu_wanted"])
- var/already_wanted = 0
- if(news_network.wanted_issue)
- already_wanted = 1
-
- if(already_wanted)
- src.channel_name = news_network.wanted_issue.author
- src.msg = news_network.wanted_issue.body
- src.screen = 14
- src.updateUsrDialog()
-
- else if(href_list["set_wanted_name"])
- src.channel_name = strip_html(input(usr, "Provide the name of the Wanted person", "Network Security Handler", ""))
- while (findtext(src.channel_name," ") == 1)
- src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1)
- src.updateUsrDialog()
-
- else if(href_list["set_wanted_desc"])
- src.msg = strip_html(input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", ""))
- while (findtext(src.msg," ") == 1)
- src.msg = copytext(src.msg,2,lentext(src.msg)+1)
- src.updateUsrDialog()
-
- else if(href_list["submit_wanted"])
- var/input_param = text2num(href_list["submit_wanted"])
- if(src.msg == "" || src.channel_name == "" || src.scanned_user == "Unknown")
- src.screen = 16
- else
- var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel")
- if(choice=="Confirm")
- if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below
- var/datum/feed_message/WANTED = new /datum/feed_message
- WANTED.author = src.channel_name
- WANTED.body = src.msg
- WANTED.backup_author = src.scanned_user //I know, a bit wacky
- if(photo)
- WANTED.img = photo.img
- news_network.wanted_issue = WANTED
- for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
- NEWSCASTER.newsAlert()
- NEWSCASTER.update_icon()
- src.screen = 15
- else
- if(news_network.wanted_issue.is_admin_message)
- alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot edit it.","Ok")
- return
- news_network.wanted_issue.author = src.channel_name
- news_network.wanted_issue.body = src.msg
- news_network.wanted_issue.backup_author = src.scanned_user
- if(photo)
- news_network.wanted_issue.img = photo.img
- src.screen = 19
-
- src.updateUsrDialog()
-
- else if(href_list["cancel_wanted"])
- if(news_network.wanted_issue.is_admin_message)
- alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot take it down.","Ok")
- return
- var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel")
+ else if(href_list["submit_wanted"])
+ var/input_param = text2num(href_list["submit_wanted"])
+ if(src.msg == "" || src.channel_name == "" || src.scanned_user == "Unknown")
+ src.screen = 16
+ else
+ var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel")
if(choice=="Confirm")
- news_network.wanted_issue = null
- for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
- NEWSCASTER.update_icon()
- src.screen=17
- src.updateUsrDialog()
+ if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below
+ var/datum/feed_message/WANTED = new /datum/feed_message
+ WANTED.author = src.channel_name
+ WANTED.body = src.msg
+ WANTED.backup_author = src.scanned_user //I know, a bit wacky
+ if(photo)
+ WANTED.img = photo.img
+ news_network.wanted_issue = WANTED
+ for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
+ NEWSCASTER.newsAlert()
+ NEWSCASTER.update_icon()
+ src.screen = 15
+ else
+ if(news_network.wanted_issue.is_admin_message)
+ alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot edit it.","Ok")
+ return
+ news_network.wanted_issue.author = src.channel_name
+ news_network.wanted_issue.body = src.msg
+ news_network.wanted_issue.backup_author = src.scanned_user
+ if(photo)
+ news_network.wanted_issue.img = photo.img
+ src.screen = 19
- else if(href_list["view_wanted"])
- src.screen=18
- src.updateUsrDialog()
- else if(href_list["censor_channel_author"])
- var/datum/feed_channel/FC = locate(href_list["censor_channel_author"])
- if(FC.is_admin_channel)
- alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok")
- return
- if(FC.author != "\[REDACTED\]")
- FC.backup_author = FC.author
- FC.author = "\[REDACTED\]"
- else
- FC.author = FC.backup_author
- src.updateUsrDialog()
+ src.updateUsrDialog()
- else if(href_list["censor_channel_story_author"])
- var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"])
- if(MSG.is_admin_message)
- alert("This message was created by a Nanotrasen Officer. You cannot censor its author.","Ok")
- return
- if(MSG.author != "\[REDACTED\]")
- MSG.backup_author = MSG.author
- MSG.author = "\[REDACTED\]"
- else
- MSG.author = MSG.backup_author
- src.updateUsrDialog()
+ else if(href_list["cancel_wanted"])
+ if(news_network.wanted_issue.is_admin_message)
+ alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot take it down.","Ok")
+ return
+ var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel")
+ if(choice=="Confirm")
+ news_network.wanted_issue = null
+ for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
+ NEWSCASTER.update_icon()
+ src.screen=17
+ src.updateUsrDialog()
- else if(href_list["censor_channel_story_body"])
- var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"])
- if(MSG.is_admin_message)
- alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok")
- return
- if(MSG.img != null)
- MSG.backup_img = MSG.img
- MSG.img = null
- else
- MSG.img = MSG.backup_img
- if(MSG.body != "\[REDACTED\]")
- MSG.backup_body = MSG.body
- MSG.body = "\[REDACTED\]"
- else
- MSG.body = MSG.backup_body
- src.updateUsrDialog()
+ else if(href_list["view_wanted"])
+ src.screen=18
+ src.updateUsrDialog()
+ else if(href_list["censor_channel_author"])
+ var/datum/feed_channel/FC = locate(href_list["censor_channel_author"])
+ if(FC.is_admin_channel)
+ alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok")
+ return
+ if(FC.author != "\[REDACTED\]")
+ FC.backup_author = FC.author
+ FC.author = "\[REDACTED\]"
+ else
+ FC.author = FC.backup_author
+ src.updateUsrDialog()
- else if(href_list["pick_d_notice"])
- var/datum/feed_channel/FC = locate(href_list["pick_d_notice"])
- src.viewing_channel = FC
- src.screen=13
- src.updateUsrDialog()
+ else if(href_list["censor_channel_story_author"])
+ var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"])
+ if(MSG.is_admin_message)
+ alert("This message was created by a Nanotrasen Officer. You cannot censor its author.","Ok")
+ return
+ if(MSG.author != "\[REDACTED\]")
+ MSG.backup_author = MSG.author
+ MSG.author = "\[REDACTED\]"
+ else
+ MSG.author = MSG.backup_author
+ src.updateUsrDialog()
- else if(href_list["toggle_d_notice"])
- var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"])
- if(FC.is_admin_channel)
- alert("This channel was created by a Nanotrasen Officer. You cannot place a D-Notice upon it.","Ok")
- return
- FC.censored = !FC.censored
- src.updateUsrDialog()
+ else if(href_list["censor_channel_story_body"])
+ var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"])
+ if(MSG.is_admin_message)
+ alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok")
+ return
+ if(MSG.img != null)
+ MSG.backup_img = MSG.img
+ MSG.img = null
+ else
+ MSG.img = MSG.backup_img
+ if(MSG.body != "\[REDACTED\]")
+ MSG.backup_body = MSG.body
+ MSG.body = "\[REDACTED\]"
+ else
+ MSG.body = MSG.backup_body
+ src.updateUsrDialog()
- else if(href_list["view"])
- src.screen=1
- src.updateUsrDialog()
+ else if(href_list["pick_d_notice"])
+ var/datum/feed_channel/FC = locate(href_list["pick_d_notice"])
+ src.viewing_channel = FC
+ src.screen=13
+ src.updateUsrDialog()
- else if(href_list["setScreen"]) //Brings us to the main menu and resets all fields~
- src.screen = text2num(href_list["setScreen"])
- if (src.screen == 0)
- src.scanned_user = "Unknown";
- msg = "";
- src.c_locked=0;
- channel_name="";
- src.viewing_channel = null
- src.updateUsrDialog()
+ else if(href_list["toggle_d_notice"])
+ var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"])
+ if(FC.is_admin_channel)
+ alert("This channel was created by a Nanotrasen Officer. You cannot place a D-Notice upon it.","Ok")
+ return
+ FC.censored = !FC.censored
+ src.updateUsrDialog()
- else if(href_list["show_channel"])
- var/datum/feed_channel/FC = locate(href_list["show_channel"])
- src.viewing_channel = FC
- src.screen = 9
- src.updateUsrDialog()
+ else if(href_list["view"])
+ src.screen=1
+ src.updateUsrDialog()
- else if(href_list["pick_censor_channel"])
- var/datum/feed_channel/FC = locate(href_list["pick_censor_channel"])
- src.viewing_channel = FC
- src.screen = 12
- src.updateUsrDialog()
+ else if(href_list["setScreen"]) //Brings us to the main menu and resets all fields~
+ src.screen = text2num(href_list["setScreen"])
+ if (src.screen == 0)
+ src.scanned_user = "Unknown";
+ msg = "";
+ src.c_locked=0;
+ channel_name="";
+ src.viewing_channel = null
+ src.updateUsrDialog()
- else if(href_list["refresh"])
- src.updateUsrDialog()
+ else if(href_list["show_channel"])
+ var/datum/feed_channel/FC = locate(href_list["show_channel"])
+ src.viewing_channel = FC
+ src.screen = 9
+ src.updateUsrDialog()
+ else if(href_list["pick_censor_channel"])
+ var/datum/feed_channel/FC = locate(href_list["pick_censor_channel"])
+ src.viewing_channel = FC
+ src.screen = 12
+ src.updateUsrDialog()
+
+ else if(href_list["refresh"])
+ src.updateUsrDialog()
/obj/machinery/newscaster/attackby(obj/item/I as obj, mob/living/user as mob, params)
if(istype(I, /obj/item/weapon/wrench))
@@ -746,10 +742,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
user << "This does nothing."
src.update_icon()
-/obj/machinery/newscaster/attack_ai(mob/user as mob)
- return src.attack_hand(user) //or maybe it'll have some special functions? No idea.
-
-
/obj/machinery/newscaster/proc/AttachPhoto(mob/user as mob)
if(photo)
if(!issilicon(user))
@@ -794,11 +786,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
var/scribble=""
var/scribble_page = null
-/*obj/item/weapon/newspaper/attack_hand(mob/user as mob)
- ..()
- world << "derp"*/
-
-obj/item/weapon/newspaper/attack_self(mob/user as mob)
+/obj/item/weapon/newspaper/attack_self(mob/user as mob)
if(ishuman(user))
var/mob/living/carbon/human/human_user = user
var/dat
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 3cbcde23f4a..b6bb39bd32b 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -37,12 +37,16 @@
/obj/item/device/radio/intercom/attack_ai(mob/user as mob)
add_hiddenprint(user)
add_fingerprint(user)
- spawn (0)
+ spawn(0)
+ attack_self(user)
+
+/obj/item/device/radio/intercom/attack_ghost(mob/user as mob)
+ spawn(0)
attack_self(user)
/obj/item/device/radio/intercom/attack_hand(mob/user as mob)
add_fingerprint(user)
- spawn (0)
+ spawn(0)
attack_self(user)
/obj/item/device/radio/intercom/receive_range(freq, level)
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 62498009f0b..cf26aeca7c0 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -122,14 +122,9 @@
listening = !listening && !(wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL))
/obj/item/device/radio/Topic(href, href_list)
- //..()
- if (usr.stat || !on)
- return
+ if(..())
+ return 1
- if (!(issilicon(usr) || (usr.contents.Find(src) || ( in_range(src, usr) && istype(loc, /turf) ))))
- usr << browse(null, "window=radio")
- return
- usr.set_machine(src)
if (href_list["track"])
var/mob/target = locate(href_list["track"])
var/mob/living/silicon/ai/A = locate(href_list["track2"])
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 488eb2c50c5..b41dece52d7 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -846,10 +846,13 @@ var/list/admin_verbs_mentor = list(
set category = "Admin"
set name = "Man Up Global"
set desc = "Tells everyone to man up and deal with it."
+
+ var/confirm = alert("Are you sure you want to send the global message?", "Confirm Man Up Global", "Yes", "No")
- for (var/mob/T as mob in mob_list)
- T << "