mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-01-17 20:44:33 +00:00
Cleaned up a bit of the broadcasting code. Made everything use turf's z levels as I find them more reliable, sometimes an item's loc can be null or the z level can be entirely wrong. I hope the high usage of get_turf() will not create problems. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4275 316c924e-a436-60f5-8080-3fe189b3f50e
54 lines
1.1 KiB
Plaintext
54 lines
1.1 KiB
Plaintext
/obj/item/device/radio/intercom
|
|
name = "station intercom"
|
|
desc = "Talk through this."
|
|
icon_state = "intercom"
|
|
anchored = 1
|
|
w_class = 4.0
|
|
canhear_range = 4
|
|
var/number = 0
|
|
var/anyai = 1
|
|
var/mob/living/silicon/ai/ai = list()
|
|
|
|
|
|
attack_ai(mob/user as mob)
|
|
src.add_fingerprint(user)
|
|
spawn (0)
|
|
attack_self(user)
|
|
|
|
attack_paw(mob/user as mob)
|
|
if ((ticker && ticker.mode.name == "monkey"))
|
|
return src.attack_hand(user)
|
|
|
|
|
|
attack_hand(mob/user as mob)
|
|
src.add_fingerprint(user)
|
|
spawn (0)
|
|
attack_self(user)
|
|
|
|
|
|
send_hear(freq, level)
|
|
var/range = receive_range(freq, level)
|
|
if(range > 0)
|
|
return get_mobs_in_view(canhear_range, src)
|
|
|
|
receive_range(freq, level)
|
|
if (!on)
|
|
return 0
|
|
if (!(src.wires & WIRE_RECEIVE))
|
|
return 0
|
|
var/turf/position = get_turf(src)
|
|
if(isnull(position) || position.z != level)
|
|
return 0
|
|
if (!src.listening)
|
|
return 0
|
|
if(freq == SYND_FREQ)
|
|
if(!(src.syndie))
|
|
return 0//Prevents broadcast of messages over devices lacking the encryption
|
|
|
|
return canhear_range
|
|
|
|
|
|
hear_talk(mob/M as mob, msg)
|
|
if(!src.anyai && !(M in src.ai))
|
|
return
|
|
..() |