Fix SM (and some other) follow links (#20554)

* hoopefully fix SM message tracking being really weird

* update some more follow targets

* Apply suggestions from code review

hehe

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

* Cleans up some loose ends, implements for arrivals announcer too

* Changes target to the new deactivated core

---------

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
This commit is contained in:
Luc
2023-03-26 12:17:37 +01:00
committed by GitHub
co-authored by Contrabang
parent 148d1275c3
commit 6bf5172bec
10 changed files with 17 additions and 7 deletions
+1
View File
@@ -70,6 +70,7 @@ GLOBAL_LIST_INIT(cloner_biomass_items, list(\
Radio = new /obj/item/radio(src)
Radio.listening = FALSE
Radio.config(list("Medical" = 0))
Radio.follow_target = src
component_parts = list()
component_parts += new /obj/item/circuitboard/clonepod(null)
+1
View File
@@ -238,6 +238,7 @@
/obj/machinery/cryopod/Initialize(mapload)
. = ..()
announce = new /obj/item/radio/intercom(src)
announce.follow_target = src
icon_state = base_icon_state
find_control_computer()
+1
View File
@@ -67,6 +67,7 @@
var/area/pet_death_area = get_area(M)
var/obj/item/radio/headset/pet_death_announcer = new /obj/item/radio/headset(src)
pet_death_announcer.follow_target = src
if(istype(pet_death_area, /area/syndicate_mothership) || istype(pet_death_area, /area/shuttle/syndicate_elite))
//give the syndicats a bit of stealth
pet_death_announcer.autosay("[M] has been vandalized in Space!", "[M]'s Death Alarm")
@@ -253,7 +253,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list(
/obj/item/radio/proc/ToggleReception()
listening = !listening && !(wires.is_cut(WIRE_RADIO_RECEIVER) || wires.is_cut(WIRE_RADIO_SIGNAL))
/obj/item/radio/proc/autosay(message, from, channel, role = "Unknown") //BS12 EDIT
/obj/item/radio/proc/autosay(message, from, channel, role = "Unknown", follow_target_override) //BS12 EDIT
var/datum/radio_frequency/connection = null
if(channel && channels && channels.len > 0)
if(channel == "department")
@@ -295,7 +295,10 @@ GLOBAL_LIST_INIT(default_medbay_channels, list(
else
tcm.source_level = level_name_to_num(MAIN_STATION) // Assume station level if we dont have an actual Z level available to us.
tcm.freq = connection.frequency
tcm.follow_target = follow_target
if(follow_target_override)
tcm.follow_target = follow_target_override
else
tcm.follow_target = follow_target
// Now put that through the stuff
for(var/obj/machinery/tcomms/core/C in GLOB.tcomms_machines)
@@ -40,6 +40,7 @@
/obj/machinery/mineral/labor_prisoner_shuttle_console/Initialize()
. = ..()
announcer = new /obj/item/radio/intercom(null)
announcer.follow_target = src
announcer.config(list("Security" = 0))
/obj/machinery/mineral/labor_prisoner_shuttle_console/Destroy()
@@ -12,8 +12,9 @@ GLOBAL_LIST_EMPTY(empty_playable_ai_cores)
cryo_AI()
/mob/living/silicon/ai/proc/cryo_AI()
GLOB.empty_playable_ai_cores += new /obj/structure/AIcore/deactivated(loc)
GLOB.global_announcer.autosay("[src] has been moved to intelligence storage.", "Artificial Intelligence Oversight")
var/dead_aicore = new /obj/structure/AIcore/deactivated(loc)
GLOB.empty_playable_ai_cores += dead_aicore
GLOB.global_announcer.autosay("[src] has been moved to intelligence storage.", "Artificial Intelligence Oversight", follow_target_override = dead_aicore)
//Handle job slot/tater cleanup.
var/job = mind.assigned_role
+2 -2
View File
@@ -416,7 +416,7 @@
if((character.mind.assigned_role != "Cyborg") && (character.mind.assigned_role != character.mind.special_role))
if(character.mind.role_alt_title)
rank = character.mind.role_alt_title
GLOB.global_announcer.autosay("[character.real_name],[rank ? " [rank]," : " visitor," ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
GLOB.global_announcer.autosay("[character.real_name],[rank ? " [rank]," : " visitor," ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer", follow_target_override = character)
/mob/new_player/proc/AnnounceCyborg(mob/living/character, rank, join_message)
if(SSticker.current_state == GAME_STATE_PLAYING)
@@ -433,7 +433,7 @@
if(character.mind)
if(character.mind.assigned_role != character.mind.special_role)
// can't use their name here, since cyborg namepicking is done post-spawn, so we'll just say "A new Cyborg has arrived"/"A new Android has arrived"/etc.
GLOB.global_announcer.autosay("A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
GLOB.global_announcer.autosay("A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer", follow_target_override = character)
/mob/new_player/proc/LateChoices()
var/mills = ROUND_TIME // 1/10 of a second, not real milliseconds but whatever
@@ -201,6 +201,7 @@
GLOB.poi_list |= src
radio = new(src)
radio.listening = FALSE
radio.follow_target = src
radio.config(list("Engineering" = 0))
investigate_log("has been created.", "supermatter")
@@ -747,6 +747,7 @@
. = ..()
Announcer = new /obj/item/radio/headset(src)
Announcer.config(list("Security" = 1))
Announcer.follow_target = src
options["The Original"] = "handgun"
options["Golden Mamba"] = "handgun_golden-mamba"
options["NT's Finest"] = "handgun_nt-finest"
@@ -188,7 +188,7 @@
atom_say("All Emergency Response Teams are dispatched and can not be called at this time.")
return
atom_say("ERT request transmitted!")
GLOB.command_announcer.autosay("ERT request transmitted. Reason: [ert_reason]", name)
GLOB.command_announcer.autosay("ERT request transmitted. Reason: [ert_reason]", name, follow_target_override = src)
print_centcom_report(ert_reason, station_time_timestamp() + " ERT Request")
var/fullmin_count = 0