diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm index a5741d8e00f..901fbecbcf5 100755 --- a/code/game/objects/devices/PDA/PDA.dm +++ b/code/game/objects/devices/PDA/PDA.dm @@ -510,14 +510,14 @@ last_text = world.time -// var/AnsweringMS = 0 + var/AnsweringMS = 0 for (var/obj/machinery/message_server/MS in world) MS.send_pda_message("[P.owner]","[owner]","[t]") -// if(MS.active) -// AnsweringMS++ + if(MS.active) + AnsweringMS++ -// if(!AnsweringMS) -// return + if(!AnsweringMS) + return tnote += "→ To [P.owner]:
[t]
" P.tnote += "← From [owner]:
[t]
" @@ -544,7 +544,7 @@ // pAI Message else -/* var/AnsweringMS = 0 + var/AnsweringMS = 0 for (var/obj/machinery/message_server/MS in world) MS.send_pda_message("[P]","[src]","[t]") if(MS.active) @@ -552,7 +552,7 @@ if(!AnsweringMS) return -*/ + tnote += "→ To [P]:
[t]
" P.tnote += "← From [src]:
[t]
" diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index f5d96760133..30338c21fc4 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -170,8 +170,14 @@ if(isnull(P)||P.toff) return + var/AnsweringMS = 0 for (var/obj/machinery/message_server/MS in world) MS.send_pda_message("[P.owner]","[src]","[t]") + if(MS.active) + AnsweringMS++ + + if(!AnsweringMS) + return tnote += "→ To [P.owner]:
[t]
" P.tnote += "← From [src]:
[t]
" @@ -195,12 +201,18 @@ else var/mob/living/silicon/pai/P = target - tnote += "→ To [P]:
[t]
" - P.tnote += "← From [src]:
[t]
" - - + var/AnsweringMS = 0 for (var/obj/machinery/message_server/MS in world) MS.send_pda_message("[P]","[src]","[t]") + if(MS.active) + AnsweringMS++ + + if(!AnsweringMS) + return + + + tnote += "→ To [P]:
[t]
" + P.tnote += "← From [src]:
[t]
" if (prob(15)) //Give the AI a chance of intercepting the message var/who = src diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 721c5f00f70..d4c5de435f5 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -54,6 +54,16 @@ var/list/datum/data_pda_msg/pda_msgs = list() var/list/datum/data_rc_msg/rc_msgs = list() + var/active = 1 + +/obj/machinery/message_server/process() + if((stat & (BROKEN|NOPOWER)) && active) + active = 0 + return + + update_icon() + return + /obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "") pda_msgs += new/datum/data_pda_msg(recipient,sender,message) @@ -61,8 +71,22 @@ rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth) /obj/machinery/message_server/attack_hand(user as mob) - user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays." +// user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays." + user << "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]" + active = !active + update_icon() + return + +/obj/machinery/message_server/update_icon() + if((stat & (BROKEN|NOPOWER))) + icon_state = "server-nopower" + else if (!active) + icon_state = "server-off" + else + icon_state = "server-on" + + return /datum/feedback_variable