Radios for Posibrains

General communication device. Handed in for general testing, reference
ehancement #400.

Known bugs:
* Mob's own speech scrubbed out with asterisks
This commit is contained in:
skull132
2015-03-05 17:13:14 +02:00
parent 4a6da81963
commit 863cea572a
2 changed files with 36 additions and 1 deletions
@@ -14,6 +14,8 @@
locked = 0
mecha = null//This does not appear to be used outside of reference in mecha.dm.
var/obj/item/device/radio/radio = null//Let's give it a radio.
/obj/item/device/mmi/posibrain/attack_self(mob/user as mob)
if(brainmob && !brainmob.key && searching == 0)
@@ -142,4 +144,33 @@
// src.brainmob.brain_op_stage = 4.0
dead_mob_list -= src.brainmob
radio = new(src)//Spawns a radio inside the MMI.
radio.broadcasting = 0//So it's broadcasting from the start.
..()
/obj/item/device/mmi/posibrain/verb/Toggle_Broadcasting() //totally not nicking from certain places. Yay.
set name = "Toggle Broadcasting"
set desc = "Toggle broadcasting channel on or off."
set category = "Posi"
set src = usr.loc//In user location, or in MMI in this case.
set popup_menu = 0//Will not appear when right clicking.
if(brainmob.stat)//Only the brainmob will trigger these so no further check is necessary.
brainmob << "Can't do that while incapacitated or dead."
radio.broadcasting = radio.broadcasting==1 ? 0 : 1
brainmob << "\blue Radio is [radio.broadcasting==1 ? "now" : "no longer"] broadcasting."
/obj/item/device/mmi/posibrain/verb/Toggle_Listening()
set name = "Toggle Listening"
set desc = "Toggle listening channel on or off."
set category = "Posi"
set src = usr.loc
set popup_menu = 0
if(brainmob.stat)
brainmob << "Can't do that while incapacitated or dead."
radio.listening = radio.listening==1 ? 0 : 1
brainmob << "\blue Radio is [radio.listening==1 ? "now" : "no longer"] receiving broadcast."
+5 -1
View File
@@ -3,7 +3,7 @@
if (silent)
return
if(!(container && (istype(container, /obj/item/device/mmi) || istype(container, /obj/item/device/mmi/posibrain))))
if(!(container && (istype(container, /obj/item/device/mmi))))
return //No MMI, can't speak, bucko./N
else
if(prob(emp_damage*4))
@@ -15,4 +15,8 @@
var/obj/item/device/mmi/radio_enabled/R = container
if(R.radio)
spawn(0) R.radio.hear_talk(src, sanitize(message))
if(istype(container, /obj/item/device/mmi/posibrain))//For them posibrains that now get radios. Apparently.
var/obj/item/device/mmi/posibrain/R = container
if(R.radio)
spawn(0) R.radio.hear_talk(src, sanitize(message))
..()