Adds emergency message for AI

This commit is contained in:
Yoshax
2015-04-02 21:09:48 +01:00
parent 16ecb75a30
commit 61691a9603
2 changed files with 49 additions and 12 deletions
+27 -12
View File
@@ -1317,21 +1317,27 @@
M.stuttering = 20
else if(href_list["CentcommReply"])
var/mob/living/carbon/human/H = locate(href_list["CentcommReply"])
if(!istype(H))
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
usr << "The person you are trying to contact is not wearing a headset"
var/mob/living/L = locate(href_list["CentcommReply"])
if(!istype(L))
usr << "This can only be used on instances of type /mob/living/"
return
var/input = sanitize(input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from Centcomm", ""))
if(!input) return
if(L.can_centcom_reply())
var/input = input(src.owner, "Please enter a message to reply to [key_name(L)] via their headset.","Outgoing message from Centcomm", "")
if(!input) return
src.owner << "You sent [input] to [L] via a secure channel."
log_admin("[src.owner] replied to [key_name(L)]'s Centcomm message with the message [input].")
message_admins("[src.owner] replied to [key_name(L)]'s Centcom message with: \"[input]\"")
if(!L.isAI())
L << "<span class='info'>You hear something crackle in your headset for a moment before a voice speaks.</span>"
L << "<span class='info'>Please stand by for a message from Central Command.</span>"
L << "<span class='info'>Message as follows.</span>"
L << "<span class='notice'>[input]</span>"
L << "<span class='info'>Message ends.</span>"
else
src.owner << "The person you are trying to contact does not have functional radio equipment."
src.owner << "You sent [input] to [H] via a secure channel."
log_admin("[src.owner] replied to [key_name(H)]'s Centcomm message with the message [input].")
message_admins("[src.owner] replied to [key_name(H)]'s Centcom message with: \"[input]\"")
H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. <b>\"[input]\"</b> Message ends.\""
else if(href_list["SyndicateReply"])
var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"])
@@ -2619,3 +2625,12 @@
if("list")
PlayerNotesPage(text2num(href_list["index"]))
return
mob/living/proc/can_centcom_reply()
return 0
mob/living/carbon/human/can_centcom_reply()
return istype(l_ear, /obj/item/device/radio/headset) || istype(r_ear, /obj/item/device/radio/headset)
mob/living/silicon/ai/can_centcom_reply()
return common_radio != null && !check_unable(2)
+22
View File
@@ -6,6 +6,7 @@ var/list/ai_verbs_default = list(
/mob/living/silicon/ai/proc/ai_announcement,
/mob/living/silicon/ai/proc/ai_call_shuttle,
// /mob/living/silicon/ai/proc/ai_recall_shuttle,
/mob/living/silicon/ai/proc/ai_emergency_message,
/mob/living/silicon/ai/proc/ai_camera_track,
/mob/living/silicon/ai/proc/ai_camera_list,
/mob/living/silicon/ai/proc/ai_goto_location,
@@ -380,6 +381,27 @@ var/list/ai_verbs_default = list(
if(confirm == "Yes")
cancel_call_proc(src)
/mob/living/silicon/ai/var/emergency_message_cooldown = 0
/mob/living/silicon/ai/proc/ai_emergency_message()
set category = "AI Commands"
set name = "Send Emergency Message"
if(check_unable(AI_CHECK_WIRELESS))
return
if(emergency_message_cooldown)
usr << "\red Arrays recycling. Please stand by."
return
var/input = input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "")
if(!input)
return
Centcomm_announce(input, usr)
usr << "\blue Message transmitted."
log_say("[key_name(usr)] has made an IA Centcomm announcement: [input]")
emergency_message_cooldown = 1
spawn(300)
emergency_message_cooldown = 0
/mob/living/silicon/ai/check_eye(var/mob/user as mob)
if (!camera)
return null