Port Bay's intercom overhaul

This commit is contained in:
Markolie
2015-09-03 21:21:20 +02:00
parent 65c793f9ac
commit 3a3457de36
26 changed files with 369 additions and 219 deletions
@@ -1,5 +1,5 @@
/obj/item/device/radio/intercom
name = "station intercom"
name = "station intercom (General)"
desc = "Talk through this."
icon_state = "intercom"
anchored = 1
@@ -7,16 +7,40 @@
canhear_range = 2
flags = CONDUCT | NOBLOODY
var/number = 0
var/anyai = 1
var/circuitry_installed=1
var/mob/living/silicon/ai/ai = list()
var/circuitry_installed = 1
var/last_tick //used to delay the powercheck
var/buildstage = 0
/obj/item/device/radio/intercom/custom
name = "station intercom (Custom)"
broadcasting = 0
listening = 0
/obj/item/device/radio/intercom/universe/New()
tag = "UNIVERSE"
return ..()
/obj/item/device/radio/intercom/interrogation
name = "station intercom (Interrogation)"
frequency = 1449
/obj/item/device/radio/intercom/private
name = "station intercom (Private)"
frequency = AI_FREQ
/obj/item/device/radio/intercom/specops
name = "\improper Spec Ops intercom"
frequency = ERT_FREQ
/obj/item/device/radio/intercom/department
canhear_range = 5
broadcasting = 0
listening = 1
/obj/item/device/radio/intercom/department/medbay
name = "station intercom (Medbay)"
frequency = MED_I_FREQ
/obj/item/device/radio/intercom/department/security
name = "station intercom (Security)"
frequency = SEC_I_FREQ
/obj/item/device/radio/intercom/New(turf/loc, var/ndir = 0, var/building = 3)
..()
buildstage = building
@@ -30,6 +54,28 @@
on = 0
update_icon()
/obj/item/device/radio/intercom/department/medbay/New()
..()
internal_channels = default_medbay_channels.Copy()
/obj/item/device/radio/intercom/department/security/New()
..()
internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(SEC_I_FREQ) = list(access_security)
)
/obj/item/device/radio/intercom/syndicate
name = "illicit intercom"
desc = "Talk through this. Evilly"
frequency = SYND_FREQ
subspace_transmission = 1
syndie = 1
/obj/item/device/radio/intercom/syndicate/New()
..()
internal_channels[num2text(SYND_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/Destroy()
processing_objects.Remove(src)
return ..()
@@ -64,12 +110,6 @@
return canhear_range
/obj/item/device/radio/intercom/hear_talk(mob/M as mob, msg)
if(!src.anyai && !(M in src.ai))
return
..()
/obj/item/device/radio/intercom/attackby(obj/item/weapon/W as obj, mob/user as mob)
switch(buildstage)
if(3)
@@ -147,11 +187,16 @@
/obj/item/device/radio/intercom/process()
if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0))
last_tick = world.timeofday
if(!areaMaster)
if(!src.loc)
on = 0
update_icon()
return
on = areaMaster.powered(EQUIP) // set "on" to the power status
else
var/area/A = get_area(src)
if(!A)
on = 0
else
on = A.powered(EQUIP) // set "on" to the power status
update_icon()
/obj/item/weapon/intercom_electronics
@@ -161,4 +206,22 @@
desc = "Looks like a circuit. Probably is."
w_class = 2.0
m_amt = 50
g_amt = 50
g_amt = 50
/obj/item/device/radio/intercom/locked
var/locked_frequency
/obj/item/device/radio/intercom/locked/set_frequency(var/frequency)
if(frequency == locked_frequency)
..(locked_frequency)
/obj/item/device/radio/intercom/locked/list_channels()
return ""
/obj/item/device/radio/intercom/locked/ai_private
name = "\improper AI intercom"
frequency = AI_FREQ
/obj/item/device/radio/intercom/locked/confessional
name = "confessional intercom"
frequency = 1480