Migrate tracking beacons to the new attack chain. (#32271)

* Migrate tracking beacons to the new attack chain.

* Apply suggestions from CRUNCH review

Co-authored-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
Signed-off-by: Alan <alfalfascout@users.noreply.github.com>

---------

Signed-off-by: Alan <alfalfascout@users.noreply.github.com>
Co-authored-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
This commit is contained in:
Alan
2026-07-24 19:39:14 +00:00
committed by GitHub
co-authored by CRUNCH
parent 3d0a47c4ce
commit 43a254b002
+41 -30
View File
@@ -14,9 +14,13 @@
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
var/wormhole_weaver = FALSE // special beacons for wormwhole weaver
/// If `TRUE`, this beacon allows teleporters to ignore the CC Z-level anti-teleportation protection when targeting it.
var/cc_beacon = FALSE
/// Is this beacon used for the wormhole weaver?
var/wormhole_weaver = FALSE
/// Can teleporter consoles see this beacon? Used for pre-mapped permanent teleporters that shouldn't be targetable.
var/broadcast_to_teleport_hubs = TRUE
new_attack_chain = TRUE
/obj/item/beacon/Initialize(mapload)
. = ..()
@@ -30,10 +34,9 @@
if(!emagged)
emagged = TRUE
syndicate = TRUE
to_chat(user, SPAN_NOTICE("The This beacon now only be locked on to by emagged teleporters!"))
to_chat(user, SPAN_NOTICE("[src] can now only be locked on to by emagged teleporters!"))
return TRUE
/// Probably a better way of doing this, I'm lazy.
/obj/item/beacon/bacon
@@ -50,12 +53,13 @@
desc = "A label on it reads: <i>Activate to have a spider clan brand fuel rod teleported to your location</i>."
origin_tech = "bluespace=6;syndicate=3"
/obj/item/beacon/ninja_rod_spawner/attack_self__legacy__attackchain(mob/user)
/obj/item/beacon/ninja_rod_spawner/activate_self(mob/user)
if(!user)
return
return ..()
var/obj/item/nuclear_rod/fuel/uranium_238/spiders/new_rod = new(user.loc)
qdel(src)
user.put_in_hands(new_rod)
return ITEM_INTERACT_COMPLETE
// SINGULO BEACON SPAWNER
/obj/item/beacon/syndicate
@@ -70,13 +74,15 @@
mycomputer.mybeacon = null
return ..()
/obj/item/beacon/syndicate/attack_self__legacy__attackchain(mob/user)
if(user)
to_chat(user, SPAN_NOTICE("Locked In"))
new /obj/machinery/power/singularity_beacon/syndicate( user.loc )
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
/obj/item/beacon/syndicate/activate_self(mob/user)
if(!user)
return ..()
to_chat(user, SPAN_NOTICE("Locked In."))
new /obj/machinery/power/singularity_beacon/syndicate( user.loc )
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
return ITEM_INTERACT_COMPLETE
/obj/item/beacon/syndicate/bundle
desc = "A label on it reads: <i>Activate to select a bundle</i>."
@@ -101,9 +107,9 @@
var/list/selected = list()
var/list/unselected = list()
/obj/item/beacon/syndicate/bundle/attack_self__legacy__attackchain(mob/user)
/obj/item/beacon/syndicate/bundle/activate_self(mob/user)
if(!user)
return
return ..()
if(!length(selected))
unselected = bundles.Copy()
@@ -113,7 +119,7 @@
var/bundle_name = tgui_input_list(user, "Available Bundles", "Bundle Selection", selected)
if(!bundle_name || QDELETED(src))
return
return ITEM_INTERACT_COMPLETE
if(bundle_name == "Random")
bundle_name = pick(unselected)
@@ -124,30 +130,35 @@
SSblackbox.record_feedback("tally", "syndicate_bundle_pick", 1, "[bundle]")
qdel(src)
user.put_in_hands(bundle)
return ITEM_INTERACT_COMPLETE
/obj/item/beacon/syndicate/power_sink
desc = "A label on it reads: <i>Warning: Activating this device will send a power sink to your location</i>."
/obj/item/beacon/syndicate/power_sink/attack_self__legacy__attackchain(mob/user)
if(user)
to_chat(user, SPAN_NOTICE("Locked In"))
new /obj/item/powersink(user.loc)
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
/obj/item/beacon/syndicate/power_sink/activate_self(mob/user)
if(!user)
return ..()
to_chat(user, SPAN_NOTICE("Locked In."))
new /obj/item/powersink(user.loc)
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
return ITEM_INTERACT_COMPLETE
/obj/item/beacon/syndicate/bomb
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/beacon/syndicate/bomb/attack_self__legacy__attackchain(mob/user)
if(user)
to_chat(user, SPAN_NOTICE("Locked In"))
new bomb(user.loc)
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
/obj/item/beacon/syndicate/bomb/activate_self(mob/user)
if(!user)
return ..()
to_chat(user, SPAN_NOTICE("Locked In."))
new bomb(user.loc)
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
return ITEM_INTERACT_COMPLETE
/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>."