Port of the TG radio system. Tasty and I tested it out and it works smooth and clean :)

We were able to restore functionality after we blew up half the radio equipment, as well.
AI satellite is now the Comms satellite.
This commit is contained in:
SkyMarshal
2012-01-17 00:12:30 -07:00
parent 26e12e26d0
commit 0d7ce5f347
38 changed files with 4268 additions and 1979 deletions
+32 -1
View File
@@ -81,7 +81,7 @@ proc/process_ghost_teleport_locs()
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
var/turf/picked = pick(get_area_turfs(AR.type))
if (picked.z == 1 || picked.z == 5)
if (picked.z == 1 || picked.z == 3 || picked.z == 5)
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
@@ -1205,6 +1205,37 @@ proc/process_ghost_teleport_locs()
icon_state = "storage"
// Telecommunications Satellite
/area/tcommsat/entrance
name = "Telecommunications Satellite Teleporter"
icon_state = "tcomsatentrance"
/area/tcommsat/chamber
name = "Telecommunications Satellite Central Compartment"
icon_state = "tcomsatcham"
/area/turret_protected/tcomfoyer
name = "Telecommunications Satellite Foyer"
icon_state = "tcomsatlob"
/area/turret_protected/tcomwest
name = "Telecommunications Satellite West Wing"
icon_state = "tcomsatwest"
/area/turret_protected/tcomeast
name = "Telecommunications Satellite East Wing"
icon_state = "tcomsateast"
/area/tcommsat/computer
name = "Telecommunications Satellite Observatory"
icon_state = "tcomsatcomp"
/area/tcommsat/lounge
name = "Telecommunications Satellite Lounge"
icon_state = "tcomsatlounge"
/////////////////////////////////////////////////////////////////////
/*
Lists of areas to be used with is_type_in_list.
+1
View File
@@ -339,6 +339,7 @@
m_amt = 50
g_amt = 20
origin_tech = "magnets=1;engineering=1"
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
/obj/item/blueprints
name = "station blueprints"
+1
View File
@@ -4,6 +4,7 @@
density = 1
anchored = 1.0
var/obj/item/weapon/circuitboard/circuit = null //if circuit==null, computer can't disassemble
var/emagged = 0
/obj/machinery/computer/operating
+2 -2
View File
@@ -541,8 +541,8 @@
/datum/supply_packs/mecha_ripley
name = "Circuit Crate (\"Ripley\" APLU)"
contains = list("/obj/item/weapon/book/manual/ripley_build_and_repair",
"/obj/item/mecha_parts/circuitboard/ripley/peripherals", //TEMPORARY due to lack of circuitboard printer
"/obj/item/mecha_parts/circuitboard/ripley/main") //TEMPORARY due to lack of circuitboard printer
"/obj/item/mecha_parts/circuitboard/ripley/main", //TEMPORARY due to lack of circuitboard printer
"/obj/item/mecha_parts/circuitboard/ripley/peripherals") //TEMPORARY due to lack of circuitboard printer
cost = 40
containertype = "/obj/structure/closet/crate/secure"
containername = "APLU \"Ripley\" Circuit Crate"
+57
View File
@@ -459,6 +459,7 @@
var/assignment = null
var/obj/item/weapon/photo/PHOTO = null
var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit
var/dorm = 0 // determines if this ID has claimed a dorm already
/obj/item/weapon/card/id/gold
name = "identification card"
@@ -1716,3 +1717,59 @@
origin_tech = "materials=5"
rating = 3
m_amt = 80
// Subspace stock parts
/obj/item/weapon/stock_parts/subspace/ansible
name = "Subspace Ansible"
icon_state = "subspace_ansible"
desc = "A compact module capable of sensing extradimensional activity."
origin_tech = "programming=3;magnets=5;materials=4;bluespace=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/filter
name = "Hyperwave Filter"
icon_state = "hyperwave_filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
origin_tech = "programming=4;magnets=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/amplifier
name = "Subspace Amplifier"
icon_state = "subspace_amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
origin_tech = "programming=3;magnets=4;materials=4;bluespace=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/treatment
name = "Subspace Treatment Disk"
icon_state = "treatment_disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
origin_tech = "programming=3;magnets=2;materials=5;bluespace=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/analyzer
name = "Subspace Wavelength Analyzer"
icon_state = "wavelength_analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
origin_tech = "programming=3;magnets=4;materials=4;bluespace=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/crystal
name = "Ansible Crystal"
icon_state = "ansible_crystal"
desc = "A crystal made from pure glass used to transmit laser databursts to subspace."
origin_tech = "magnets=4;materials=4;bluespace=2"
g_amt = 50
/obj/item/weapon/stock_parts/subspace/transmitter
name = "Subspace Transmitter"
icon_state = "subspace_transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
origin_tech = "magnets=5;materials=5;bluespace=3"
m_amt = 50
+54
View File
@@ -83,6 +83,60 @@
//turfs += centerturf
return turfs
/proc/get_mobs_in_view(var/R, var/atom/source)
// Returns a list of mobs in range of R from source. Used in radio and say code.
var/turf/T = get_turf(source)
var/list/hear = hearers(R, T)
var/list/V = view(R, T)
// Search for closets:
for(var/obj/structure/closet/C in V)
for(var/mob/M in C.contents)
if(M.client)
hear += M
// Cryos:
for(var/obj/machinery/atmospherics/unary/cryo_cell/C in V)
if(C.occupant)
if(C.occupant.client)
hear += C.occupant
// Intelicards
for(var/obj/item/device/aicard/C in V)
for(var/mob/living/silicon/ai/M in C)
if(M.client)
hear += M
// Brains/MMIs/pAIs
for(var/mob/living/carbon/brain/C in world)
if(get_turf(C) in V)
hear += C
for(var/mob/living/silicon/pai/C in world)
if(get_turf(C) in V)
hear += C
// Personal AIs
for(var/obj/item/device/paicard/C in V)
if(C.pai)
if(C.pai.client)
hear += C.pai
// Exosuits
for(var/obj/mecha/C in V)
if(C.occupant)
if(C.occupant.client)
hear += C.occupant
// Disposal Machines
for(var/obj/machinery/disposal/C in V)
for(var/mob/M in C.contents)
if(M.client)
hear += M
return hear
/proc/get_dist_euclidian(atom/Loc1 as turf|mob|obj,atom/Loc2 as turf|mob|obj)
var/dx = Loc1.x - Loc2.x
var/dy = Loc1.y - Loc2.y