diff --git a/code/game/response_team.dm b/code/game/response_team.dm index d9b8cfcc375..c16c6475f8d 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -9,6 +9,7 @@ var/list/response_team_members = list() var/responseteam_age = 21 // Minimum account age to play as an ERT member var/datum/response_team/active_team = null var/send_emergency_team +var/ert_request_answered = 0 /client/proc/response_team() set name = "Dispatch CentComm Response Team" @@ -47,6 +48,7 @@ var/send_emergency_team if(!ert_type) return + ert_request_answered = 1 message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team", 1) log_admin("[key_name(usr)] used Dispatch Emergency Response Team..") trigger_armed_response_team(ert_type) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 59278124aa0..2be62321e71 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1854,7 +1854,7 @@ var/input = input(src.owner, "Please enter a reason for denying [key_name(H)]'s ERT request.","Outgoing message from CentComm", "") if(!input) return - + ert_request_answered = 1 to_chat(src.owner, "You sent [input] to [H] via a secure channel.") log_admin("[src.owner] denied [key_name(H)]'s ERT request with the message [input].") to_chat(H, "You hear something crackle in your headset for a moment before a voice speaks. \"Your ERT request has been denied for the following reasons: [input]. Message ends.\"") diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index caed1de43af..a9562268fdd 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -50,9 +50,11 @@ if(X.prefs.sound & SOUND_ADMINHELP) X << 'sound/effects/adminhelp.ogg' -/proc/ERT_Announce(var/text , var/mob/Sender) +/proc/ERT_Announce(var/text , var/mob/Sender, var/repeat_warning) var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN)) - msg = "\blue ERT REQUEST: [key_name(Sender, 1)] (PP) (VV) (SM) ([admin_jump_link(Sender, "holder")]) (CA) (BSA) (REPLY): [msg]" + msg = "ERT REQUEST: [key_name(Sender, 1)] (PP) (VV) (SM) ([admin_jump_link(Sender, "holder")]) (CA) (BSA) (RESPOND): [msg]" + if (repeat_warning) + msg += "
WARNING: ERT request has gone 5 minutes with no reply!" for(var/client/X in admins) if(check_rights(R_EVENT,0,X.mob)) to_chat(X, msg) diff --git a/code/modules/security_levels/keycard authentication.dm b/code/modules/security_levels/keycard authentication.dm index d27820ac033..2220b85f361 100644 --- a/code/modules/security_levels/keycard authentication.dm +++ b/code/modules/security_levels/keycard authentication.dm @@ -155,12 +155,21 @@ if(is_ert_blocked()) to_chat(usr, "\red All Emergency Response Teams are dispatched and can not be called at this time.") return - to_chat(usr, "ERT request transmitted.") - if(admins.len) - ERT_Announce(ert_reason , event_triggered_by) + + + var/fullmin_count = 0 + for(var/client/C in admins) + if (check_rights(R_EVENT, 0, C.mob)) + fullmin_count++ + if(fullmin_count) + ert_request_answered = 0 + ERT_Announce(ert_reason , event_triggered_by, 0) ert_reason = "Reason for ERT" feedback_inc("alert_keycard_auth_ert",1) + spawn(3000) + if (!ert_request_answered) + ERT_Announce(ert_reason , event_triggered_by, 1) else trigger_armed_response_team(new /datum/response_team/amber) // No admins? No problem. Automatically send a code amber ERT.