Unapologetic Teleporter Buffs (#15628)

This commit is contained in:
Geeves
2023-01-28 12:06:18 +01:00
committed by GitHub
parent 7b64ebfe18
commit bf7377b3b8
7 changed files with 234 additions and 212 deletions
@@ -2,27 +2,43 @@ var/global/list/teleportbeacons = list()
/obj/item/device/radio/beacon
name = "tracking beacon"
desc = "A beacon used by a teleporter."
desc = "A sophisticated beacon with integrated bluespace circuitry, capable of being targetted by a teleportation hub for localized jumps."
icon_state = "beacon"
item_state = "signaler"
show_modify_on_examine = FALSE
var/code = "electronic"
origin_tech = list(TECH_BLUESPACE = 1)
/obj/item/device/radio/beacon/New()
..()
/obj/item/device/radio/beacon/Initialize()
. = ..()
teleportbeacons += src
/obj/item/device/radio/beacon/Destroy()
teleportbeacons.Remove(src)
teleportbeacons -= src
return ..()
/obj/item/device/radio/beacon/examine(mob/user)
. = ..()
if(anchored)
to_chat(user, SPAN_NOTICE("It's been secured to the ground with anchoring screws."))
/obj/item/device/radio/beacon/attack_hand(mob/user)
if(anchored)
return
return ..()
/obj/item/device/radio/beacon/hear_talk()
return
/obj/item/device/radio/beacon/send_hear()
return null
/obj/item/device/radio/beacon/attackby(obj/item/W, mob/user)
if(isturf(loc) && W.isscrewdriver())
anchored = !anchored
user.visible_message("<b>[user]</b> [anchored ? "" : "un"]fastens \the [src] [anchored ? "to" : "from"] the floor.", "You [anchored ? "" : "un"]fasten \the [src] [anchored ? "to" : "from"] the floor.")
return
return ..()
/obj/item/device/radio/beacon/verb/alter_signal(t as text)
set name = "Alter Beacon's Signal"
@@ -39,4 +55,15 @@ var/global/list/teleportbeacons = list()
/obj/item/device/radio/beacon/bacon //Probably a better way of doing this, I'm lazy.
proc/digest_delay()
QDEL_IN(src, 600)
QDEL_IN(src, 600)
/obj/item/device/radio/beacon/fixed
alpha = 0
invisibility = INVISIBILITY_MAXIMUM
anchored = TRUE
/obj/item/device/radio/beacon/fixed/ex_act(severity)
return
/obj/item/device/radio/beacon/fixed/emp_act(severity)
return
@@ -75,6 +75,7 @@ var/global/list/default_medbay_channels = list(
var/traitor_frequency = 0 //tune to frequency to unlock traitor supplies
var/mob/living/announcer/announcer = null // used in autosay, held by the radio for re-use
var/datum/wires/radio/wires = null
var/show_modify_on_examine = TRUE
var/b_stat = 0
var/list/channels = list() //see communications.dm for full list. First non-common, non-entertainment channel is a "default" for :h
@@ -506,12 +507,11 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/examine(mob/user)
. = ..()
if ((in_range(src, user) || loc == user))
if(show_modify_on_examine && (in_range(src, user) || loc == user))
if (b_stat)
user.show_message("<span class='notice'>\The [src] can be attached and modified!</span>")
else
user.show_message("<span class='notice'>\The [src] can not be modified or attached!</span>")
return
/obj/item/device/radio/attackby(obj/item/W as obj, mob/user as mob)
..()