diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 1132144a212..2a6350b4c3e 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -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: Activate to have a spider clan brand fuel rod teleported to your location." 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: Activate to select a bundle." @@ -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: Warning: Activating this device will send a power sink to your location." -/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: Warning: Activating this device will send a high-ordinance explosive to your location." 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: Warning: Activating this device will send a high-ordinance EMP explosive to your location."