mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
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:
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user