Beacons are no longer radios (#25559)

* lets goooo

* name change

* yes

* dgamer review

* Update code/modules/projectiles/projectile/special_projectiles.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

---------

Signed-off-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
Contrabang
2024-06-12 14:00:08 -04:00
committed by GitHub
parent 77d83ef1b9
commit 7df5e186a0
27 changed files with 112 additions and 107 deletions
+3 -3
View File
@@ -274,9 +274,9 @@
var/turf/T = pick(get_area_turfs(impact_area))
if(T)
// Calculate new position (searches through beacons in world)
var/obj/item/radio/beacon/chosen
var/obj/item/beacon/chosen
var/list/possible = list()
for(var/obj/item/radio/beacon/W in GLOB.beacons)
for(var/obj/item/beacon/W in GLOB.beacons)
if(!is_station_level(W.z))
continue
possible += W
@@ -300,7 +300,7 @@
var/y_distance = turf_to.y - turf_from.y
var/x_distance = turf_to.x - turf_from.x
for(var/atom/movable/A in urange(BLUESPACE_MASS_TELEPORT_RANGE, turf_from)) // iterate thru list of mobs in the area
if(istype(A, /obj/item/radio/beacon))
if(istype(A, /obj/item/beacon))
continue // don't teleport beacons because that's just insanely stupid
if(A.anchored || A.move_resist == INFINITY)
continue
@@ -38,12 +38,12 @@
//This proc re-assigns all of engine beacons in the global list to a local list.
/obj/item/enginepicker/proc/locatebeacons()
LAZYCLEARLIST(list_enginebeacons)
for(var/obj/item/radio/beacon/engine/B in GLOB.engine_beacon_list)
for(var/obj/item/beacon/engine/B in GLOB.engine_beacon_list)
if(B && !QDELETED(B)) //This ensures that the input pop-up won't have any qdeleted beacons
list_enginebeacons += B
//Spawns and logs / announces the appropriate engine based on the choice made
/obj/item/enginepicker/proc/processchoice(obj/item/radio/beacon/engine/choice, mob/living/carbon/user)
/obj/item/enginepicker/proc/processchoice(obj/item/beacon/engine/choice, mob/living/carbon/user)
var/issuccessful = FALSE //Check for a successful choice
var/engtype //Engine type
var/G //Generator that will be spawned
+36 -30
View File
@@ -1,55 +1,61 @@
/obj/item/radio/beacon
name = "Tracking Beacon"
/obj/item/beacon
name = "tracking beacon"
desc = "A beacon used by a teleporter."
icon = 'icons/obj/radio.dmi'
icon_state = "beacon"
item_state = "signaler"
origin_tech = "bluespace=1"
flags = CONDUCT
slot_flags = SLOT_FLAG_BELT
throw_speed = 2
throw_range = 9
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_METAL = 200, MAT_GLASS = 100)
var/syndicate = FALSE
var/area_bypass = FALSE
var/cc_beacon = FALSE //set if allowed to teleport to even if on zlevel2
/obj/item/radio/beacon/New()
..()
GLOB.beacons += src
/obj/item/beacon/Initialize()
. = ..()
GLOB.beacons |= src
/obj/item/radio/beacon/Destroy()
/obj/item/beacon/Destroy()
GLOB.beacons -= src
return ..()
/obj/item/radio/beacon/emag_act(user as mob)
/obj/item/beacon/emag_act(user)
if(!emagged)
emagged = TRUE
syndicate = TRUE
to_chat(user, "<span class='notice'>The This beacon now only be locked on to by emagged teleporters!</span>")
return TRUE
/obj/item/radio/beacon/hear_talk()
return
/// Probably a better way of doing this, I'm lazy.
/obj/item/radio/beacon/bacon
/obj/item/beacon/bacon
/obj/item/radio/beacon/bacon/proc/digest_delay()
QDEL_IN(src, 600)
/obj/item/beacon/bacon/proc/digest_delay()
QDEL_IN(src, 60 SECONDS)
/obj/item/radio/beacon/emagged
/obj/item/beacon/emagged
syndicate = TRUE
emagged = TRUE
// SINGULO BEACON SPAWNER
/obj/item/radio/beacon/syndicate
/obj/item/beacon/syndicate
name = "suspicious beacon"
desc = "A label on it reads: <i>Activate to have a singularity beacon teleported to your location</i>."
origin_tech = "bluespace=6;syndicate=5"
syndicate = TRUE
var/obj/machinery/computer/syndicate_depot/teleporter/mycomputer
/obj/item/radio/beacon/syndicate/Destroy()
/obj/item/beacon/syndicate/Destroy()
if(mycomputer)
mycomputer.mybeacon = null
return ..()
/obj/item/radio/beacon/syndicate/attack_self(mob/user)
/obj/item/beacon/syndicate/attack_self(mob/user)
if(user)
to_chat(user, "<span class='notice'>Locked In</span>")
new /obj/machinery/power/singularity_beacon/syndicate( user.loc )
@@ -57,7 +63,7 @@
user.drop_item()
qdel(src)
/obj/item/radio/beacon/syndicate/bundle
/obj/item/beacon/syndicate/bundle
name = "suspicious beacon"
desc = "A label on it reads: <i>Activate to select a bundle</i>."
var/list/static/bundles = list(
@@ -80,7 +86,7 @@
var/list/selected = list()
var/list/unselected = list()
/obj/item/radio/beacon/syndicate/bundle/attack_self(mob/user)
/obj/item/beacon/syndicate/bundle/attack_self(mob/user)
if(!user)
return
@@ -104,11 +110,11 @@
qdel(src)
user.put_in_hands(bundle)
/obj/item/radio/beacon/syndicate/power_sink
/obj/item/beacon/syndicate/power_sink
name = "suspicious beacon"
desc = "A label on it reads: <i>Warning: Activating this device will send a power sink to your location</i>."
/obj/item/radio/beacon/syndicate/power_sink/attack_self(mob/user)
/obj/item/beacon/syndicate/power_sink/attack_self(mob/user)
if(user)
to_chat(user, "<span class='notice'>Locked In</span>")
new /obj/item/powersink(user.loc)
@@ -116,13 +122,13 @@
user.drop_item()
qdel(src)
/obj/item/radio/beacon/syndicate/bomb
/obj/item/beacon/syndicate/bomb
name = "suspicious beacon"
desc = "A label on it reads: <i>Warning: Activating this device will send a high-ordinance explosive to your location</i>."
origin_tech = "bluespace=5;syndicate=5"
var/bomb = /obj/machinery/syndicatebomb
/obj/item/radio/beacon/syndicate/bomb/attack_self(mob/user)
/obj/item/beacon/syndicate/bomb/attack_self(mob/user)
if(user)
to_chat(user, "<span class='notice'>Locked In</span>")
new bomb(user.loc)
@@ -130,36 +136,36 @@
user.drop_item()
qdel(src)
/obj/item/radio/beacon/syndicate/bomb/emp
/obj/item/beacon/syndicate/bomb/emp
desc = "A label on it reads: <i>Warning: Activating this device will send a high-ordinance EMP explosive to your location</i>."
bomb = /obj/machinery/syndicatebomb/emp
/obj/item/radio/beacon/syndicate/bomb/grey_autocloner
/obj/item/beacon/syndicate/bomb/grey_autocloner
desc = "A label on it reads: <i>Warning: Activating this device will send an expensive cloner to your location</i>."
origin_tech = "bluespace=2;syndicate=2"
bomb = /obj/machinery/grey_autocloner
/obj/item/radio/beacon/engine
/obj/item/beacon/engine
desc = "A label on it reads: <i>Warning: This device is used for transportation of high-density objects used for high-yield power generation. Stay away!</i>."
anchored = TRUE //Let's not move these around. Some folk might get the idea to use these for assassinations
var/list/enginetype = list()
/obj/item/radio/beacon/engine/Initialize(mapload)
/obj/item/beacon/engine/Initialize(mapload)
LAZYADD(GLOB.engine_beacon_list, src)
return ..()
/obj/item/radio/beacon/engine/Destroy()
/obj/item/beacon/engine/Destroy()
GLOB.engine_beacon_list -= src
return ..()
/obj/item/radio/beacon/engine/tesling
/obj/item/beacon/engine/tesling
name = "Engine Beacon for Tesla and Singularity"
enginetype = list(ENGTYPE_TESLA, ENGTYPE_SING)
/obj/item/radio/beacon/engine/tesla
/obj/item/beacon/engine/tesla
name = "Engine Beacon for Tesla"
enginetype = list(ENGTYPE_TESLA)
/obj/item/radio/beacon/engine/sing
/obj/item/beacon/engine/sing
name = "Engine Beacon for Singularity"
enginetype = list(ENGTYPE_SING)
@@ -574,13 +574,12 @@ GLOBAL_LIST_EMPTY(deadsay_radio_systems)
return
b_stat = !b_stat
if(!istype(src, /obj/item/radio/beacon))
if(b_stat)
user.show_message("<span class='notice'>The radio can now be attached and modified!</span>")
else
user.show_message("<span class='notice'>The radio can no longer be modified or attached!</span>")
if(b_stat)
user.show_message("<span class='notice'>The radio can now be attached and modified!</span>")
else
user.show_message("<span class='notice'>The radio can no longer be modified or attached!</span>")
updateDialog()
updateDialog()
/obj/item/radio/wirecutter_act(mob/user, obj/item/I)
. = TRUE
@@ -549,7 +549,7 @@
/obj/item/storage/box/syndie_kit/prescan/populate_contents()
new /obj/item/bio_chip_implanter/grey_autocloner(src)
new /obj/item/radio/beacon/syndicate/bomb/grey_autocloner(src)
new /obj/item/beacon/syndicate/bomb/grey_autocloner(src)
/obj/item/storage/box/syndie_kit/pen_bomb
name = "\improper Pen bomb"
@@ -24,7 +24,7 @@
new /obj/item/gun/energy/kinetic_accelerator/pistol(src)
new /obj/item/storage/firstaid/regular(src)
new /obj/item/clothing/accessory/holster(src)
new /obj/item/radio/beacon(src)
new /obj/item/beacon(src)
new /obj/item/storage/box/relay_kit(src)
new /obj/item/gps(src)
new /obj/item/storage/bag/ore(src)