Completes the transfer to the refreshed announcement system.

This commit is contained in:
PsiOmega
2014-10-07 12:45:20 +02:00
parent ee72baac69
commit 66483cf6dd
33 changed files with 75 additions and 125 deletions

View File

@@ -169,7 +169,6 @@
#include "code\defines\procs\admin.dm" #include "code\defines\procs\admin.dm"
#include "code\defines\procs\announce.dm" #include "code\defines\procs\announce.dm"
#include "code\defines\procs\AStar.dm" #include "code\defines\procs\AStar.dm"
#include "code\defines\procs\command_alert.dm"
#include "code\defines\procs\dbcore.dm" #include "code\defines\procs\dbcore.dm"
#include "code\defines\procs\hud.dm" #include "code\defines\procs\hud.dm"
#include "code\defines\procs\radio.dm" #include "code\defines\procs\radio.dm"

View File

@@ -31,17 +31,19 @@
title = "Security Announcement" title = "Security Announcement"
announcement_type = "Security Announcement" announcement_type = "Security Announcement"
/datum/announcement/proc/Announce(var/message as text, var/new_title = "") /datum/announcement/proc/Announce(var/message as text, var/new_title = "", var/new_sound = null, var/do_newscast = newscast)
if(!message) if(!message)
return return
var/tmp/message_title = new_title ? new_title : title var/tmp/message_title = new_title ? new_title : title
var/tmp/message_sound = new_sound ? sound(new_sound) : sound
message = html_encode(message) message = html_encode(message)
message_title = html_encode(message_title) message_title = html_encode(message_title)
Message(message, message_title) Message(message, message_title)
NewsCast(message, message_title) if(do_newscast)
Sound() NewsCast(message, message_title)
Sound(message_sound)
Log(message, message_title) Log(message, message_title)
datum/announcement/proc/Message(message as text, message_title as text) datum/announcement/proc/Message(message as text, message_title as text)
@@ -90,27 +92,27 @@ datum/announcement/proc/NewsCast(message as text, message_title as text)
news.can_be_redacted = 0 news.can_be_redacted = 0
announce_newscaster_news(news) announce_newscaster_news(news)
datum/announcement/proc/PlaySound() datum/announcement/proc/PlaySound(var/message_sound)
if(!sound) if(!message_sound)
return return
for(var/mob/M in player_list) for(var/mob/M in player_list)
if(!istype(M,/mob/new_player) && !isdeaf(M)) if(!istype(M,/mob/new_player) && !isdeaf(M))
M << sound M << message_sound
datum/announcement/proc/Sound() datum/announcement/proc/Sound(var/message_sound)
PlaySound() PlaySound(message_sound)
datum/announcement/priority/Sound() datum/announcement/priority/Sound(var/message_sound)
if(sound) if(sound)
world << sound world << sound
datum/announcement/priority/command/Sound() datum/announcement/priority/command/Sound(var/message_sound)
PlaySound() PlaySound(message_sound)
datum/announcement/proc/Log(message as text, message_title as text) datum/announcement/proc/Log(message as text, message_title as text)
if(log) if(log)
log_say("[key_name(usr)] has made a(n) [announcement_type]: [message_title] - [message] - [announcer]") log_say("[key_name(usr)] has made \a [announcement_type]: [message_title] - [message] - [announcer]")
message_admins("[key_name_admin(usr)] has made a(n) [announcement_type].", 1) message_admins("[key_name_admin(usr)] has made \a [announcement_type].", 1)
/proc/GetNameAndAssignmentFromId(var/obj/item/weapon/card/id/I) /proc/GetNameAndAssignmentFromId(var/obj/item/weapon/card/id/I)
// Format currently matches that of newscaster feeds: Registered Name (Assigned Rank) // Format currently matches that of newscaster feeds: Registered Name (Assigned Rank)

View File

@@ -1,11 +0,0 @@
/proc/command_alert(var/text, var/title = "")
var/command
command += "<h1 class='alert'>[command_name()] Update</h1>"
if (title && length(title) > 0)
command += "<br><h2 class='alert'>[html_encode(title)]</h2>"
command += "<br><span class='alert'>[html_encode(text)]</span><br>"
command += "<br>"
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player))
M << command

View File

@@ -178,9 +178,7 @@
H.viruses += D H.viruses += D
break break
spawn(rand(1500, 3000)) //Delayed announcements to keep the crew on their toes. spawn(rand(1500, 3000)) //Delayed announcements to keep the crew on their toes.
command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/outbreak7.ogg')
/proc/alien_infestation(var/spawncount = 1) // -- TLE /proc/alien_infestation(var/spawncount = 1) // -- TLE
//command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") //command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert")
@@ -207,9 +205,7 @@
spawncount-- spawncount--
spawn(rand(5000, 6000)) //Delayed announcements to keep the crew on their toes. spawn(rand(5000, 6000)) //Delayed announcements to keep the crew on their toes.
command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/aliens.ogg')
/proc/high_radiation_event() /proc/high_radiation_event()
@@ -245,9 +241,7 @@
continue continue
M.apply_effect((rand(15,75)),IRRADIATE,0) M.apply_effect((rand(15,75)),IRRADIATE,0)
sleep(100) sleep(100)
command_alert("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert") command_announcement.Announce("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/radiation.ogg')
@@ -286,7 +280,7 @@
temp_timer.releasetime = 1 temp_timer.releasetime = 1
sleep(150) sleep(150)
command_alert("Gr3y.T1d3 virus detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") command_announcement.Announce("Gr3y.T1d3 virus detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert")
else else
world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area." world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area."
@@ -296,13 +290,11 @@
new /mob/living/simple_animal/hostile/carp(C.loc) new /mob/living/simple_animal/hostile/carp(C.loc)
//sleep(100) //sleep(100)
spawn(rand(300, 600)) //Delayed announcements to keep the crew on their toes. spawn(rand(300, 600)) //Delayed announcements to keep the crew on their toes.
command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") command_announcement.Announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert", new_sound = 'sound/AI/commandreport.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/commandreport.ogg')
/proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 25) //leave lightsoutAmount as 0 to break ALL lights /proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 25) //leave lightsoutAmount as 0 to break ALL lights
if(isEvent) if(isEvent)
command_alert("An Electrical storm has been detected in your area, please repair potential electronic overloads.","Electrical Storm Alert") command_announcement.Announce("An Electrical storm has been detected in your area, please repair potential electronic overloads.","Electrical Storm Alert")
if(lightsoutAmount) if(lightsoutAmount)
var/list/epicentreList = list() var/list/epicentreList = list()

View File

@@ -86,4 +86,4 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
for(var/obj/effect/immovablerod/imm in world) for(var/obj/effect/immovablerod/imm in world)
return return
sleep(50) sleep(50)
command_alert("What the fuck was that?!", "General Alert") command_announcement.Announce("What the fuck was that?!", "General Alert")

View File

@@ -12,10 +12,7 @@
spawn(3000) spawn(3000)
blobevent = 0 blobevent = 0
spawn(rand(1000, 2000)) //Delayed announcements to keep the crew on their toes. spawn(rand(1000, 2000)) //Delayed announcements to keep the crew on their toes.
command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") command_announcement.Announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak5.ogg')
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player))
M << sound('sound/AI/outbreak5.ogg')
/proc/dotheblobbaby() /proc/dotheblobbaby()
if (blobevent) if (blobevent)

View File

@@ -1,12 +1,10 @@
/proc/power_failure(var/announce = 1) /proc/power_failure(var/announce = 1)
if(announce) if(announce)
command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure") command_announcement.Announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", new_sound = 'sound/AI/poweroff.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/poweroff.ogg')
var/list/skipped_areas = list(/area/turret_protected/ai) var/list/skipped_areas = list(/area/turret_protected/ai)
for(var/obj/machinery/power/smes/S in world) for(var/obj/machinery/power/smes/S in world)
var/area/current_area = get_area(S) var/area/current_area = get_area(S)
if(current_area.type in skipped_areas || S.z != 1) if(current_area.type in skipped_areas || S.z != 1)
@@ -20,18 +18,16 @@
S.updateicon() S.updateicon()
S.power_change() S.power_change()
for(var/obj/machinery/power/apc/C in world) for(var/obj/machinery/power/apc/C in world)
if(C.cell && C.z == 1) if(C.cell && C.z == 1)
C.cell.charge = 0 C.cell.charge = 0
/proc/power_restore(var/announce = 1) /proc/power_restore(var/announce = 1)
var/list/skipped_areas = list(/area/turret_protected/ai) var/list/skipped_areas = list(/area/turret_protected/ai)
if(announce) if(announce)
command_alert("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal") command_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/poweron.ogg')
for(var/obj/machinery/power/apc/C in world) for(var/obj/machinery/power/apc/C in world)
if(C.cell && C.z == 1) if(C.cell && C.z == 1)
C.cell.charge = C.cell.maxcharge C.cell.charge = C.cell.maxcharge
@@ -48,9 +44,7 @@
/proc/power_restore_quick(var/announce = 1) /proc/power_restore_quick(var/announce = 1)
if(announce) if(announce)
command_alert("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal") command_announcement.Announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/poweron.ogg')
for(var/obj/machinery/power/smes/S in world) for(var/obj/machinery/power/smes/S in world)
if(S.z != 1) if(S.z != 1)
continue continue

View File

@@ -7,10 +7,7 @@
if(pick_turfs.len) if(pick_turfs.len)
//All ready. Announce that bad juju is afoot. //All ready. Announce that bad juju is afoot.
command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") command_announcement.Announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert", new_sound = 'sound/AI/spanomalies.ogg')
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player))
M << sound('sound/AI/spanomalies.ogg')
//prob(20) can be approximated to 1 wormhole every 5 turfs! //prob(20) can be approximated to 1 wormhole every 5 turfs!
//admittedly less random but totally worth it >_< //admittedly less random but totally worth it >_<

View File

@@ -165,16 +165,12 @@
if (alert(usr, "Are you sure you wish to initiate the takeover? The station hostile runtime detection software is bound to alert everyone. You have hacked [ticker.mode:apcs] APCs.", "Takeover:", "Yes", "No") != "Yes") if (alert(usr, "Are you sure you wish to initiate the takeover? The station hostile runtime detection software is bound to alert everyone. You have hacked [ticker.mode:apcs] APCs.", "Takeover:", "Yes", "No") != "Yes")
return return
command_alert("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert") command_announcement.Announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", new_sound = 'sound/AI/aimalf.ogg')
set_security_level("delta") set_security_level("delta")
ticker.mode:malf_mode_declared = 1 ticker.mode:malf_mode_declared = 1
for(var/datum/mind/AI_mind in ticker.mode:malf_ai) for(var/datum/mind/AI_mind in ticker.mode:malf_ai)
AI_mind.current.verbs -= /datum/game_mode/malfunction/proc/takeover AI_mind.current.verbs -= /datum/game_mode/malfunction/proc/takeover
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player))
M << sound('sound/AI/aimalf.ogg')
/datum/game_mode/malfunction/proc/ai_win() /datum/game_mode/malfunction/proc/ai_win()
set category = "Malfunction" set category = "Malfunction"

View File

@@ -27,7 +27,7 @@ datum/game_mode/mutiny
proc/reveal_directives() proc/reveal_directives()
spawn(rand(1 MINUTE, 3 MINUTES)) spawn(rand(1 MINUTE, 3 MINUTES))
command_alert("Incoming emergency directive: Captain's office fax machine, [station_name()].","Emergency Transmission") command_announcement.Announce("Incoming emergency directive: Captain's office fax machine, [station_name()].","Emergency Transmission")
spawn(rand(3 MINUTES, 5 MINUTES)) spawn(rand(3 MINUTES, 5 MINUTES))
send_pda_message() send_pda_message()
spawn(rand(3 MINUTES, 5 MINUTES)) spawn(rand(3 MINUTES, 5 MINUTES))
@@ -67,7 +67,7 @@ datum/game_mode/mutiny
"classified security operations", "classified security operations",
"science-defying raw elemental chaos" "science-defying raw elemental chaos"
) )
command_alert("The presence of [pick(reasons)] in the region is tying up all available local emergency resources; emergency response teams cannot be called at this time.","Emergency Transmission") command_announcement.Announce("The presence of [pick(reasons)] in the region is tying up all available local emergency resources; emergency response teams cannot be called at this time.","Emergency Transmission")
// Returns an array in case we want to expand on this later. // Returns an array in case we want to expand on this later.
proc/get_head_loyalist_candidates() proc/get_head_loyalist_candidates()

View File

@@ -1824,11 +1824,11 @@
if(gravity_is_on) if(gravity_is_on)
log_admin("[key_name(usr)] toggled gravity on.", 1) log_admin("[key_name(usr)] toggled gravity on.", 1)
message_admins("\blue [key_name_admin(usr)] toggled gravity on.", 1) message_admins("\blue [key_name_admin(usr)] toggled gravity on.", 1)
command_alert("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.") command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.")
else else
log_admin("[key_name(usr)] toggled gravity off.", 1) log_admin("[key_name(usr)] toggled gravity off.", 1)
message_admins("\blue [key_name_admin(usr)] toggled gravity off.", 1) message_admins("\blue [key_name_admin(usr)] toggled gravity off.", 1)
command_alert("Feedback surge detected in mass-distributions systems. Artifical gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.") command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artifical gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.")
if("wave") if("wave")
feedback_inc("admin_secrets_fun_used",1) feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","Meteor") feedback_add_details("admin_secrets_fun_used","Meteor")
@@ -2178,8 +2178,7 @@
if("gravanomalies") if("gravanomalies")
feedback_inc("admin_secrets_fun_used",1) feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","GA") feedback_add_details("admin_secrets_fun_used","GA")
command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert") command_announcement.Announce("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert", 'sound/AI/granomalies.ogg')
world << sound('sound/AI/granomalies.ogg')
var/turf/T = pick(blobstart) var/turf/T = pick(blobstart)
var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 )
spawn(rand(100, 600)) spawn(rand(100, 600))
@@ -2372,8 +2371,7 @@
if(W.z == 1 && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) if(W.z == 1 && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison))
W.req_access = list() W.req_access = list()
message_admins("[key_name_admin(usr)] activated Egalitarian Station mode") message_admins("[key_name_admin(usr)] activated Egalitarian Station mode")
command_alert("Centcomm airlock control override activated. Please take this time to get acquainted with your coworkers.") command_announcement.Announce("Centcomm airlock control override activated. Please take this time to get acquainted with your coworkers.", new_sound = 'sound/AI/commandreport.ogg')
world << sound('sound/AI/commandreport.ogg')
if("dorf") if("dorf")
feedback_inc("admin_secrets_fun_used",1) feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","DF") feedback_add_details("admin_secrets_fun_used","DF")
@@ -2388,8 +2386,7 @@
message_admins("[key_name_admin(usr)] triggered an ion storm") message_admins("[key_name_admin(usr)] triggered an ion storm")
var/show_log = alert(usr, "Show ion message?", "Message", "Yes", "No") var/show_log = alert(usr, "Show ion message?", "Message", "Yes", "No")
if(show_log == "Yes") if(show_log == "Yes")
command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert") command_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", new_sound = 'sound/AI/ionstorm.ogg')
world << sound('sound/AI/ionstorm.ogg')
if("spacevines") if("spacevines")
feedback_inc("admin_secrets_fun_used",1) feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","K") feedback_add_details("admin_secrets_fun_used","K")

View File

@@ -205,7 +205,6 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
M << "You have been [muteunmute] from [mute_string]." M << "You have been [muteunmute] from [mute_string]."
feedback_add_details("admin_verb","MUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","MUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_add_random_ai_law() /client/proc/cmd_admin_add_random_ai_law()
set category = "Fun" set category = "Fun"
set name = "Add Random AI Law" set name = "Add Random AI Law"
@@ -219,8 +218,7 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No") var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No")
if(show_log == "Yes") if(show_log == "Yes")
command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert") command_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", new_sound = 'sound/AI/ionstorm.ogg')
world << sound('sound/AI/ionstorm.ogg')
IonStorm(0) IonStorm(0)
feedback_add_details("admin_verb","ION") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","ION") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -535,8 +533,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No") var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No")
if(show_log == "Yes") if(show_log == "Yes")
command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert") command_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", new_sound = 'sound/AI/ionstorm.ogg')
world << sound('sound/AI/ionstorm.ogg')
feedback_add_details("admin_verb","IONC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","IONC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_rejuvenate(mob/living/M as mob in mob_list) /client/proc/cmd_admin_rejuvenate(mob/living/M as mob in mob_list)
@@ -582,11 +579,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
switch(alert("Should this be announced to the general population?",,"Yes","No")) switch(alert("Should this be announced to the general population?",,"Yes","No"))
if("Yes") if("Yes")
command_alert(input, customname); command_announcement.Announce(input, customname, new_sound = 'sound/AI/commandreport.ogg');
if("No") if("No")
world << "\red New NanoTrasen Update available at all communication consoles." world << "\red New NanoTrasen Update available at all communication consoles."
world << sound('sound/AI/commandreport.ogg')
world << sound('sound/AI/commandreport.ogg')
log_admin("[key_name(src)] has created a command report: [input]") log_admin("[key_name(src)] has created a command report: [input]")
message_admins("[key_name_admin(src)] has created a command report", 1) message_admins("[key_name_admin(src)] has created a command report", 1)
feedback_add_details("admin_verb","CCR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","CCR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!

View File

@@ -42,7 +42,7 @@
if (usr.stat || usr.restrained()) return if (usr.stat || usr.restrained()) return
if(src.reload < 180) return if(src.reload < 180) return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
command_alert("Bluespace artillery fire detected. Brace for impact.") command_announcement.Announce("Bluespace artillery fire detected. Brace for impact.")
message_admins("[key_name_admin(usr)] has launched an artillery strike.", 1) message_admins("[key_name_admin(usr)] has launched an artillery strike.", 1)
var/list/L = list() var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type)) for(var/turf/T in get_area_turfs(thearea.type))

View File

@@ -15,8 +15,7 @@
/datum/event/alien_infestation/announce() /datum/event/alien_infestation/announce()
if(successSpawn) if(successSpawn)
command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
world << sound('sound/AI/aliens.ogg')
/datum/event/alien_infestation/start() /datum/event/alien_infestation/start()

View File

@@ -6,8 +6,7 @@
/datum/event/blob/announce() /datum/event/blob/announce()
command_alert("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") command_announcement.Announce("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg')
world << sound('sound/AI/outbreak7.ogg')
/datum/event/blob/start() /datum/event/blob/start()

View File

@@ -15,8 +15,7 @@
/datum/event/borer_infestation/announce() /datum/event/borer_infestation/announce()
if(successSpawn) if(successSpawn)
command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
world << sound('sound/AI/aliens.ogg')
/datum/event/borer_infestation/start() /datum/event/borer_infestation/start()
var/list/vents = list() var/list/vents = list()

View File

@@ -9,7 +9,7 @@
/datum/event/brand_intelligence/announce() /datum/event/brand_intelligence/announce()
command_alert("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert") command_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert")
/datum/event/brand_intelligence/start() /datum/event/brand_intelligence/start()

View File

@@ -9,7 +9,7 @@
endWhen = rand(600,1200) endWhen = rand(600,1200)
/datum/event/carp_migration/announce() /datum/event/carp_migration/announce()
command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") command_announcement.Announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert")
/datum/event/carp_migration/start() /datum/event/carp_migration/start()
for(var/obj/effect/landmark/C in landmarks_list) for(var/obj/effect/landmark/C in landmarks_list)

View File

@@ -2,7 +2,7 @@
/proc/communications_blackout(var/silent = 1) /proc/communications_blackout(var/silent = 1)
if(!silent) if(!silent)
command_alert("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT") command_announcement.Announce("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT", new_sound = 'sound/misc/interference.ogg')
else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms
for(var/mob/living/silicon/ai/A in player_list) for(var/mob/living/silicon/ai/A in player_list)
A << "<br>" A << "<br>"

View File

@@ -12,7 +12,7 @@
A << "<br>" A << "<br>"
if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts. if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts.
command_alert(alert) command_announcement.Announce(alert, new_sound = 'sound/misc/interference.ogg')
/datum/event/communications_blackout/start() /datum/event/communications_blackout/start()

View File

@@ -4,8 +4,7 @@
/datum/event/disease_outbreak/announce() /datum/event/disease_outbreak/announce()
command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg')
world << sound('sound/AI/outbreak7.ogg')
/datum/event/disease_outbreak/setup() /datum/event/disease_outbreak/setup()
announceWhen = rand(15, 30) announceWhen = rand(15, 30)

View File

@@ -4,7 +4,7 @@
/datum/event/electrical_storm/announce() /datum/event/electrical_storm/announce()
command_alert("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") command_announcement.Announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert")
/datum/event/electrical_storm/start() /datum/event/electrical_storm/start()

View File

@@ -8,9 +8,7 @@
power_failure(0) power_failure(0)
/datum/event/grid_check/announce() /datum/event/grid_check/announce()
command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Automated Grid Check") command_announcement.Announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Automated Grid Check", new_sound = 'sound/AI/poweroff.ogg')
for(var/mob/M in player_list)
M << sound('sound/AI/poweroff.ogg')
/datum/event/grid_check/end() /datum/event/grid_check/end()
power_restore() power_restore()

View File

@@ -102,7 +102,7 @@
/datum/event/infestation/announce() /datum/event/infestation/announce()
command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation") command_announcement.Announce("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation")
#undef LOC_KITCHEN #undef LOC_KITCHEN
#undef LOC_ATMOS #undef LOC_ATMOS

View File

@@ -94,7 +94,7 @@
/datum/event/ionstorm/end() /datum/event/ionstorm/end()
spawn(rand(5000,8000)) spawn(rand(5000,8000))
if(prob(50)) if(prob(50))
command_alert("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert") command_announcement.Announce("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert")
/* /*
/proc/IonStorm(botEmagChance = 10) /proc/IonStorm(botEmagChance = 10)

View File

@@ -9,15 +9,14 @@
endWhen = rand(10,25) * 3 endWhen = rand(10,25) * 3
/datum/event/meteor_wave/announce() /datum/event/meteor_wave/announce()
command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert") command_announcement.Announce("Meteors have been detected on collision course with the station.", "Meteor Alert", new_sound = 'sound/AI/meteors.ogg')
world << sound('sound/AI/meteors.ogg')
/datum/event/meteor_wave/tick() /datum/event/meteor_wave/tick()
if(IsMultiple(activeFor, 3)) if(IsMultiple(activeFor, 3))
spawn_meteors(rand(2,5)) spawn_meteors(rand(2,5))
/datum/event/meteor_wave/end() /datum/event/meteor_wave/end()
command_alert("The station has cleared the meteor storm.", "Meteor Alert") command_announcement.Announce("The station has cleared the meteor storm.", "Meteor Alert")
// //
/datum/event/meteor_shower /datum/event/meteor_shower
@@ -30,7 +29,7 @@
waves = rand(1,4) waves = rand(1,4)
/datum/event/meteor_shower/announce() /datum/event/meteor_shower/announce()
command_alert("The station is now in a meteor shower.", "Meteor Alert") command_announcement.Announce("The station is now in a meteor shower.", "Meteor Alert")
//meteor showers are lighter and more common, //meteor showers are lighter and more common,
/datum/event/meteor_shower/tick() /datum/event/meteor_shower/tick()
@@ -44,4 +43,4 @@
endWhen = next_meteor + 1 endWhen = next_meteor + 1
/datum/event/meteor_shower/end() /datum/event/meteor_shower/end()
command_alert("The station has cleared the meteor shower", "Meteor Alert") command_announcement.Announce("The station has cleared the meteor shower", "Meteor Alert")

View File

@@ -16,7 +16,7 @@
/datum/event/prison_break/announce() /datum/event/prison_break/announce()
if(prisonAreas && prisonAreas.len > 0) if(prisonAreas && prisonAreas.len > 0)
command_alert("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") command_announcement.Announce("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert")
else else
world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area." world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area."
kill() kill()

View File

@@ -8,15 +8,14 @@
/datum/event/radiation_storm/start() /datum/event/radiation_storm/start()
spawn() spawn()
world << sound('sound/AI/radiation.ogg') command_announcement.Announce("High levels of radiation detected near the station. Please evacuate into one of the shielded maintenance tunnels.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
command_alert("High levels of radiation detected near the station. Please evacuate into one of the shielded maintenance tunnels.", "Anomaly Alert")
make_maint_all_access() make_maint_all_access()
sleep(600) sleep(600)
command_alert("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert") command_announcement.Announce("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert")
for(var/i = 0, i < 10, i++) for(var/i = 0, i < 10, i++)
for(var/mob/living/carbon/human/H in living_mob_list) for(var/mob/living/carbon/human/H in living_mob_list)
@@ -50,7 +49,7 @@
sleep(100) sleep(100)
command_alert("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert") command_announcement.Announce("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
sleep(600) // Want to give them time to get out of maintenance. sleep(600) // Want to give them time to get out of maintenance.

View File

@@ -30,7 +30,7 @@
msg = "Contact has been lost with a combat drone wing operating out of the NMV Icarus. If any are sighted in the area, approach with caution." msg = "Contact has been lost with a combat drone wing operating out of the NMV Icarus. If any are sighted in the area, approach with caution."
else else
msg = "Unidentified hackers have targetted a combat drone wing deployed from the NMV Icarus. If any are sighted in the area, approach with caution." msg = "Unidentified hackers have targetted a combat drone wing deployed from the NMV Icarus. If any are sighted in the area, approach with caution."
command_alert(msg, "Rogue drone alert") command_announcement.Announce(msg, "Rogue drone alert")
/datum/event/rogue_drone/tick() /datum/event/rogue_drone/tick()
return return
@@ -48,6 +48,6 @@
num_recovered++ num_recovered++
if(num_recovered > drones_list.len * 0.75) if(num_recovered > drones_list.len * 0.75)
command_alert("Icarus drone control reports the malfunctioning wing has been recovered safely.", "Rogue drone alert") command_announcement.Announce("Icarus drone control reports the malfunctioning wing has been recovered safely.", "Rogue drone alert")
else else
command_alert("Icarus drone control registers disappointment at the loss of the drones, but the survivors have been recovered.", "Rogue drone alert") command_announcement.Announce("Icarus drone control registers disappointment at the loss of the drones, but the survivors have been recovered.", "Rogue drone alert")

View File

@@ -13,8 +13,7 @@
sent_spiders_to_station = 0 sent_spiders_to_station = 0
/datum/event/spider_infestation/announce() /datum/event/spider_infestation/announce()
command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
world << sound('sound/AI/aliens.ogg')
/datum/event/spider_infestation/start() /datum/event/spider_infestation/start()

View File

@@ -8,8 +8,7 @@ datum/event/viral_infection/setup()
severity = rand(1, 3) severity = rand(1, 3)
datum/event/viral_infection/announce() datum/event/viral_infection/announce()
command_alert("Confirmed outbreak of level five biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") command_announcement.Announce("Confirmed outbreak of level five biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak5.ogg')
world << sound('sound/AI/outbreak5.ogg')
datum/event/viral_infection/start() datum/event/viral_infection/start()
var/list/candidates = list() //list of candidate keys var/list/candidates = list() //list of candidate keys

View File

@@ -10,7 +10,7 @@ datum/event/wallrot/setup()
severity = rand(5, 10) severity = rand(5, 10)
datum/event/wallrot/announce() datum/event/wallrot/announce()
command_alert("Harmful fungi detected on station. Station structures may be contaminated.", "Biohazard Alert") command_announcement.Announce("Harmful fungi detected on station. Station structures may be contaminated.", "Biohazard Alert")
datum/event/wallrot/start() datum/event/wallrot/start()
spawn() spawn()

View File

@@ -33,14 +33,14 @@
if(cloaked || isnull(departure_message)) if(cloaked || isnull(departure_message))
return return
command_alert(departure_message,(announcer ? announcer : "Central Command")) command_announcement.Announce(departure_message,(announcer ? announcer : "Central Command"))
/datum/shuttle/multi_shuttle/proc/announce_arrival() /datum/shuttle/multi_shuttle/proc/announce_arrival()
if(cloaked || isnull(arrival_message)) if(cloaked || isnull(arrival_message))
return return
command_alert(arrival_message,(announcer ? announcer : "Central Command")) command_announcement.Announce(arrival_message,(announcer ? announcer : "Central Command"))
/obj/machinery/computer/shuttle_control/multi /obj/machinery/computer/shuttle_control/multi
@@ -85,7 +85,7 @@
var/datum/shuttle/multi_shuttle/MS = shuttle_controller.shuttles[shuttle_tag] var/datum/shuttle/multi_shuttle/MS = shuttle_controller.shuttles[shuttle_tag]
if(!istype(MS)) return if(!istype(MS)) return
//world << "multi_shuttle: last_departed=[MS.last_departed], origin=[MS.origin], interim=[MS.interim], travel_time=[MS.move_time]" //world << "multi_shuttle: last_departed=[MS.last_departed], origin=[MS.origin], interim=[MS.interim], travel_time=[MS.move_time]"
if (MS.moving_status != SHUTTLE_IDLE) if (MS.moving_status != SHUTTLE_IDLE)
@@ -103,7 +103,7 @@
//TODO: Actually end the mission. //TODO: Actually end the mission.
MS.return_warning = 1 MS.return_warning = 1
return return
MS.long_jump(MS.last_departed,MS.origin,MS.interim,MS.move_time) MS.long_jump(MS.last_departed,MS.origin,MS.interim,MS.move_time)
MS.last_departed = MS.origin MS.last_departed = MS.origin
MS.at_origin = 1 MS.at_origin = 1
@@ -128,7 +128,7 @@
MS.last_departed = MS.origin MS.last_departed = MS.origin
MS.at_origin = 0 MS.at_origin = 0
MS.long_jump(MS.last_departed, MS.destinations[choice], MS.interim, MS.move_time) MS.long_jump(MS.last_departed, MS.destinations[choice], MS.interim, MS.move_time)
MS.last_departed = MS.destinations[choice] MS.last_departed = MS.destinations[choice]
return return