Skip to content

Commit

Permalink
Minor Tcomms Update: Decrufts Syndicate Comms, Removes Station Freque…
Browse files Browse the repository at this point in the history
…ncy Names, and Expands Usable Frequencies (#3835)

## About The Pull Request

Telecommunications was obtuse and adding a faction's custom frequency
required codediving or knowledge ahead of time when working with
machines. Additionally, departmental comms (including Command) have been
dead for years at this point and won't make a return. This correctly
mataches frequencies to their factions and reflavors Command to an
Emergency Frequency (a reference to
https://en.wikipedia.org/wiki/Aircraft_emergency_frequency). Pirates are
now only listed as "Unidentified" rather than Pirates.

Updated channels listed here.

![image](https://github.com/user-attachments/assets/6114b99e-73d2-4cac-aa90-618f632bc809)

Another major change is the removal of special treatment for syndicate
comms. No longer can they listen in on every frequency, nor are they
prevented from having their frequency tuned into. Theirs is the exact
same as everyone else's, now.

This also expands the list of usable frequencies by a decent margin in
order to make it significantly less likely that you can accidentally
tune into someone else's comms, as well as specifically make it so
certain powergaming strategies are no longer feasible. Wideband has been
moved up to compensate.

## Why It's Good For The Game

Removes a large amount of residual references to station content and
makes Syndicate communications not blatantly able to monitor every
single channel. Makes tcomms easier to work with when adding channels,
and organization within servers easier. Stops certain powergaming
strategies from being feasible while reducing the constant frequency
overlaps from only having 24 bands (dating back to the existence of
stations).

## Changelog

:cl: Cloudbreak
del: AI Private frequency
balance: Syndicate communications are no longer able to monitor all
other factions.
balance: Syndicate communications are no longer unable to be monitored.
balance: Nanotrasen has modernized their handhelds. Possible radio
frequencies adjusted from 144.1-148.9 to 144.1-168.9.
add: Reflavored set channels to properly ID their faction.
fix: Vox sprite compatibility in a single sprite.
/:cl:
  • Loading branch information
firebudgy authored Dec 3, 2024
1 parent b8c9ed0 commit f4213f2
Show file tree
Hide file tree
Showing 31 changed files with 85 additions and 130 deletions.
29 changes: 11 additions & 18 deletions code/__DEFINES/radio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,9 @@
#define RADIO_CHANNEL_COMMON "Common"
#define RADIO_KEY_COMMON ";"

#define RADIO_CHANNEL_COMMAND "Command"
#define RADIO_KEY_COMMAND "c"
#define RADIO_TOKEN_COMMAND ":c"

#define RADIO_CHANNEL_AI_PRIVATE "AI Private"
#define RADIO_KEY_AI_PRIVATE "o"
#define RADIO_TOKEN_AI_PRIVATE ":o"

#define RADIO_CHANNEL_EMERGENCY "Emergency"
#define RADIO_KEY_EMERGENCY "c"
#define RADIO_TOKEN_EMERGENCY ":c"

#define RADIO_CHANNEL_SYNDICATE "Syndicate"
#define RADIO_KEY_SYNDICATE "t"
Expand Down Expand Up @@ -51,28 +46,26 @@
#define MIN_FREE_FREQ 1201 // -------------------------------------------------
// Frequencies are always odd numbers and range from 1201 to 1599.

#define FREQ_SYNDICATE 1213 // Nuke op comms frequency, dark brown
#define FREQ_CENTCOM 1337 // CentCom comms frequency, gray
#define FREQ_SYNDICATE 1213 // Syndicate Coalition comms frequency, dark brown
#define FREQ_CENTCOM 1337 // NT-CentCom comms frequency, gray
#define FREQ_SOLGOV 1345 // SolGov comms frequency, dark blue WS ADDITION
#define FREQ_INTEQ 1347 // Inteq comms frequency, light brown
#define FREQ_PGF 1349 // PGF comms frequency, lime green
#define FREQ_NANOTRASEN 1351 // Nanotrasen comms frequency, plum
#define FREQ_COMMAND 1353 // Command comms frequency, gold
#define FREQ_EMERGENCY 1353 // Emergency comms frequency, red
#define FREQ_MINUTEMEN 1355 // Minutemen comms frequency, soft blue
#define FREQ_PIRATE 1359 // Pirate comms frequency, red
#define FREQ_PIRATE 1359 // Pirate comms frequency, gold

#define FREQ_HOLOGRID_SOLUTION 1433
#define FREQ_STATUS_DISPLAYS 1435
#define FREQ_ATMOS_ALARMS 1437 // air alarms <-> alert computers
#define FREQ_ATMOS_CONTROL 1439 // air alarms <-> vents and scrubbers

#define MIN_FREQ 1441 // ------------------------------------------------------
// Only the 1441 to 1489 range is freely available for general conversation.
// This represents 1/8th of the available spectrum.
// Only the 1441 to 1689 range is freely available for general conversation.

#define FREQ_ATMOS_STORAGE 1441
#define FREQ_NAV_BEACON 1445
#define FREQ_AI_PRIVATE 1447 // AI private comms frequency, magenta
#define FREQ_PRESSURE_PLATE 1447
#define FREQ_AIRLOCK_CONTROL 1449
#define FREQ_ELECTROPACK 1449
Expand All @@ -81,11 +74,11 @@
#define FREQ_SIGNALER 1457 // the default for new signalers
#define FREQ_COMMON 1459 // Common comms frequency, dark green

#define MAX_FREQ 1489 // ------------------------------------------------------
#define MAX_FREQ 1689 // ------------------------------------------------------

#define FREQ_WIDEBAND 1501 // sector wide communication
#define FREQ_WIDEBAND 1691 // sector wide communication

#define MAX_FREE_FREQ 1599 // -------------------------------------------------
#define MAX_FREE_FREQ 1699 // -------------------------------------------------

// Transmission types.
#define TRANSMISSION_WIRE 0 // some sort of wired connection, not used
Expand Down
6 changes: 2 additions & 4 deletions code/controllers/subsystem/blackbox.dm
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ SUBSYSTEM_DEF(blackbox)
record_feedback("tally", "radio_usage", 1, "common")
if(FREQ_NANOTRASEN)
record_feedback("tally", "radio_usage", 1, "nanotrasen")
if(FREQ_COMMAND)
record_feedback("tally", "radio_usage", 1, "command")
if(FREQ_EMERGENCY)
record_feedback("tally", "radio_usage", 1, "emergency")
if(FREQ_MINUTEMEN)
record_feedback("tally", "radio_usage", 1, "minutemen")
if(FREQ_INTEQ)
Expand All @@ -148,8 +148,6 @@ SUBSYSTEM_DEF(blackbox)
record_feedback("tally", "radio_usage", 1, "centcom")
if(FREQ_SOLGOV) //WS Edit - SolGov Rep
record_feedback("tally", "radio_usage", 1, "solgov") //WS Edit - SolGov Rep
if(FREQ_AI_PRIVATE)
record_feedback("tally", "radio_usage", 1, "ai private")
else
record_feedback("tally", "radio_usage", 1, "other")

Expand Down
6 changes: 2 additions & 4 deletions code/game/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ GLOBAL_LIST_EMPTY(all_radios)

GLOBAL_LIST_INIT(radiochannels, list(
RADIO_CHANNEL_COMMON = FREQ_COMMON,
RADIO_CHANNEL_COMMAND = FREQ_COMMAND,
RADIO_CHANNEL_EMERGENCY = FREQ_EMERGENCY,
RADIO_CHANNEL_CENTCOM = FREQ_CENTCOM,
RADIO_CHANNEL_SOLGOV = FREQ_SOLGOV,
RADIO_CHANNEL_WIDEBAND = FREQ_WIDEBAND,
Expand All @@ -102,12 +102,11 @@ GLOBAL_LIST_INIT(radiochannels, list(
RADIO_CHANNEL_PGF = FREQ_PGF,
RADIO_CHANNEL_INTEQ = FREQ_INTEQ,
RADIO_CHANNEL_PIRATE = FREQ_PIRATE,
RADIO_CHANNEL_AI_PRIVATE = FREQ_AI_PRIVATE,
))

GLOBAL_LIST_INIT(reverseradiochannels, list(
"[FREQ_COMMON]" = RADIO_CHANNEL_COMMON,
"[FREQ_COMMAND]" = RADIO_CHANNEL_COMMAND,
"[FREQ_EMERGENCY]" = RADIO_CHANNEL_EMERGENCY,
"[FREQ_CENTCOM]" = RADIO_CHANNEL_CENTCOM,
"[FREQ_SOLGOV]" = RADIO_CHANNEL_SOLGOV,
"[FREQ_WIDEBAND]" = RADIO_CHANNEL_WIDEBAND,
Expand All @@ -117,7 +116,6 @@ GLOBAL_LIST_INIT(reverseradiochannels, list(
"[FREQ_PGF]" = RADIO_CHANNEL_PGF,
"[FREQ_INTEQ]" = RADIO_CHANNEL_INTEQ,
"[FREQ_PIRATE]" = RADIO_CHANNEL_PIRATE,
"[FREQ_AI_PRIVATE]" = RADIO_CHANNEL_AI_PRIVATE,
))

/datum/radio_frequency
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/cloning.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
var/internal_radio = TRUE
var/obj/item/radio/radio
var/radio_key = /obj/item/encryptionkey/headset_com
var/radio_channel = RADIO_CHANNEL_COMMAND
var/radio_channel = RADIO_CHANNEL_EMERGENCY

var/obj/effect/countdown/clonepod/countdown

Expand Down
8 changes: 4 additions & 4 deletions code/game/machinery/computer/arcade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -528,11 +528,11 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(

if(gamers[gamer] > 2 && prob(20 * gamers[gamer]))

Radio.set_frequency(FREQ_COMMAND)
Radio.talk_into(src, "SECURITY ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please watch for violent behavior.", FREQ_COMMAND)
Radio.set_frequency(FREQ_EMERGENCY)
Radio.talk_into(src, "SECURITY ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please watch for violent behavior.", FREQ_EMERGENCY)

Radio.set_frequency(FREQ_COMMAND)
Radio.talk_into(src, "PSYCH ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please schedule psych evaluation.", FREQ_COMMAND)
Radio.set_frequency(FREQ_EMERGENCY)
Radio.talk_into(src, "PSYCH ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please schedule psych evaluation.", FREQ_EMERGENCY)

gamers[gamer] = -1

Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/doors/brigdoors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@
return 0

if(!forced)
Radio.set_frequency(FREQ_COMMAND)
Radio.talk_into(src, "Timer has expired. Releasing prisoner.", FREQ_COMMAND)
Radio.set_frequency(FREQ_EMERGENCY)
Radio.talk_into(src, "Timer has expired. Releasing prisoner.", FREQ_EMERGENCY)

timing = FALSE
activation_time = null
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/requests_console.dm
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments)

if(href_list["send"] && message && to_department && priority)

var/radio_freq = FREQ_COMMAND
var/radio_freq = FREQ_EMERGENCY

var/datum/signal/subspace/messaging/rc/signal = new(src, list(
"sender" = department,
Expand Down
6 changes: 0 additions & 6 deletions code/game/machinery/telecomms/broadcasting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -155,12 +155,6 @@
if(R.can_receive(frequency, map_zones))
radios += R

// Syndicate radios can hear all well-known radio channels
if (num2text(frequency) in GLOB.reverseradiochannels)
for(var/obj/item/radio/R in GLOB.all_radios["[FREQ_SYNDICATE]"])
if(R.can_receive(FREQ_SYNDICATE, map_zones))
radios |= R

if (TRANSMISSION_RADIO)
// Only radios not currently in subspace mode
for(var/obj/item/radio/R in GLOB.all_radios["[frequency]"])
Expand Down
12 changes: 4 additions & 8 deletions code/game/machinery/telecomms/machine_interactions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,10 @@
tempfreq = sanitize_frequency(text2num(params["value"]) * 10, TRUE) //WS Edit - add frequency filter fix
if("freq")
var/newfreq = tempfreq //WS Edit - add frequency filter fix
if(newfreq == FREQ_SYNDICATE)
to_chat(operator, "<span class='warning'>Error: Interference preventing filtering frequency: \"[newfreq / 10] GHz\"</span>")
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE)
else
if(!(newfreq in freq_listening) && newfreq < 10000)
freq_listening.Add(newfreq)
log_game("[key_name(operator)] added frequency [newfreq] for [src] at [AREACOORD(src)].")
. = TRUE
if(!(newfreq in freq_listening) && newfreq < 10000)
freq_listening.Add(newfreq)
log_game("[key_name(operator)] added frequency [newfreq] for [src] at [AREACOORD(src)].")
. = TRUE
if("delete")
freq_listening.Remove(params["value"])
log_game("[key_name(operator)] added removed frequency [params["value"]] for [src] at [AREACOORD(src)].")
Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/telecomms/machines/bus.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
if(!istype(signal) || !is_freq_listening(signal))
return

if(change_frequency && signal.frequency != FREQ_SYNDICATE)
if(change_frequency)
signal.frequency = change_frequency

if(!istype(machine_from, /obj/machinery/telecomms/processor) && machine_from != src) // Signal must be ready (stupid assuming machine), let's send it
Expand All @@ -50,7 +50,7 @@
/obj/machinery/telecomms/bus/preset_one
id = "General Communications Bus"
network = "tcommsat"
freq_listening = list(FREQ_COMMAND, FREQ_COMMON)
freq_listening = list(FREQ_EMERGENCY, FREQ_COMMON)
autolinkers = list("processor1", "command", "common", "messaging", "receiverA")

/obj/machinery/telecomms/bus/preset_two
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/telecomms/machines/receiver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
id = "Receiver A"
network = "tcommsat"
autolinkers = list("receiverA") // link to relay
freq_listening = list(FREQ_SOLGOV, FREQ_NANOTRASEN, FREQ_MINUTEMEN, FREQ_COMMAND, FREQ_COMMON)
freq_listening = list(FREQ_SOLGOV, FREQ_NANOTRASEN, FREQ_MINUTEMEN, FREQ_EMERGENCY, FREQ_COMMON)


//--PRESET RIGHT--//
Expand Down
14 changes: 7 additions & 7 deletions code/game/machinery/telecomms/machines/relay.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,37 +74,37 @@
autolinkers = list("r_relay")

/obj/machinery/telecomms/relay/preset/nanotrasen
freq_listening = list(FREQ_COMMAND, FREQ_NANOTRASEN)
freq_listening = list(FREQ_EMERGENCY, FREQ_NANOTRASEN)
id = "Nanotrasen Relay"
network = "nt_commnet"

/obj/machinery/telecomms/relay/preset/inteq
freq_listening = list(FREQ_COMMAND, FREQ_INTEQ)
freq_listening = list(FREQ_EMERGENCY, FREQ_INTEQ)
id = "IRMG Relay"
network = "irmg_commnet"

/obj/machinery/telecomms/relay/preset/minutemen
freq_listening = list(FREQ_COMMAND, FREQ_MINUTEMEN)
freq_listening = list(FREQ_EMERGENCY, FREQ_MINUTEMEN)
id = "CLIP Relay"
network = "clip_commnet"

/obj/machinery/telecomms/relay/preset/solgov
freq_listening = list(FREQ_COMMAND, FREQ_SOLGOV)
freq_listening = list(FREQ_EMERGENCY, FREQ_SOLGOV)
id = "SolGov Relay"
network = "solgov_commnet"

/obj/machinery/telecomms/relay/preset/syndicate
freq_listening = list(FREQ_COMMAND, FREQ_SYNDICATE)
freq_listening = list(FREQ_EMERGENCY, FREQ_SYNDICATE)
id = "Syndicate Relay"
network = "synd_commnet"

/obj/machinery/telecomms/relay/preset/frontiersmen
freq_listening = list(FREQ_COMMAND, FREQ_PIRATE)
freq_listening = list(FREQ_EMERGENCY, FREQ_PIRATE)
id = "Frontiersmen Relay"
network = "frontier_commnet"

/obj/machinery/telecomms/relay/preset/pgf
freq_listening = list(FREQ_COMMAND, FREQ_PGF)
freq_listening = list(FREQ_EMERGENCY, FREQ_PGF)
id = "PGF Relay"
network = "pgf_commnet"

Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/telecomms/machines/server.dm
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@

/obj/machinery/telecomms/server/presets/command
id = "Command Server"
freq_listening = list(FREQ_COMMAND, FREQ_COMMON)
freq_listening = list(FREQ_EMERGENCY, FREQ_COMMON)
autolinkers = list("command")

/obj/machinery/telecomms/server/presets/common/birdstation/Initialize()
Expand Down
14 changes: 3 additions & 11 deletions code/game/objects/items/devices/radio/encryptionkey.dm
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,12 @@
/obj/item/encryptionkey/headset_com
name = "command radio encryption key"
icon_state = "com_cypherkey"
channels = list(RADIO_CHANNEL_COMMAND = 1)
channels = list(RADIO_CHANNEL_EMERGENCY = 1)

/obj/item/encryptionkey/heads/captain
name = "\proper the captain's encryption key"
icon_state = "cap_cypherkey"
channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_WIDEBAND = 0) //WS edit - Wideband radio
channels = list(RADIO_CHANNEL_EMERGENCY = 1, RADIO_CHANNEL_WIDEBAND = 0) //WS edit - Wideband radio

/obj/item/encryptionkey/headset_cent
name = "\improper CentCom radio encryption key"
Expand All @@ -77,22 +77,14 @@
channels = list(RADIO_CHANNEL_CENTCOM = 1, RADIO_CHANNEL_WIDEBAND = 0) //WS edit- Wideband Radio

/obj/item/encryptionkey/ai //ported from NT, this goes 'inside' the AI.
channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_AI_PRIVATE = 1)

/obj/item/encryptionkey/secbot
channels = list(RADIO_CHANNEL_AI_PRIVATE = 1)
channels = list(RADIO_CHANNEL_EMERGENCY = 1)

/obj/item/encryptionkey/solgov
name = "\improper SolGov encryption key"
icon = 'icons/obj/radio.dmi'
icon_state = "solgov_cypherkey"
channels = list(RADIO_CHANNEL_SOLGOV = 1)

// /obj/item/encryptionkey/suns
// name = "\improper SUNS encryption key"
// icon_state = "suns_cypherkey"
// channels = list(RADIO_CHANNEL_SUNS = 1)

/obj/item/encryptionkey/wideband
name = "wideband encryption key"
icon = 'icons/obj/radio.dmi'
Expand Down
5 changes: 2 additions & 3 deletions code/game/objects/items/devices/radio/headset.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Used for translating channels to tokens on examination
GLOBAL_LIST_INIT(channel_tokens, list(
RADIO_CHANNEL_COMMON = RADIO_KEY_COMMON,
RADIO_CHANNEL_COMMAND = RADIO_TOKEN_COMMAND,
RADIO_CHANNEL_EMERGENCY = RADIO_TOKEN_EMERGENCY,
RADIO_CHANNEL_CENTCOM = RADIO_TOKEN_CENTCOM,
RADIO_CHANNEL_SOLGOV = RADIO_TOKEN_SOLGOV, //WS Edit - SolGov Rep
RADIO_CHANNEL_SYNDICATE = RADIO_TOKEN_SYNDICATE,
Expand All @@ -10,8 +10,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
RADIO_CHANNEL_PGF = RADIO_TOKEN_PGF,
RADIO_CHANNEL_INTEQ = RADIO_TOKEN_INTEQ,
RADIO_CHANNEL_PIRATE = RADIO_TOKEN_PIRATE,
MODE_BINARY = MODE_TOKEN_BINARY,
RADIO_CHANNEL_AI_PRIVATE = RADIO_TOKEN_AI_PRIVATE
MODE_BINARY = MODE_TOKEN_BINARY
))

/obj/item/radio/headset
Expand Down
3 changes: 1 addition & 2 deletions code/game/say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ GLOBAL_LIST_INIT(freqtospan, list(
"[FREQ_INTEQ]" = "irmgradio",
"[FREQ_PGF]" = "pgfradio",
"[FREQ_PIRATE]" = "pirradio",
"[FREQ_COMMAND]" = "comradio",
"[FREQ_AI_PRIVATE]" = "aiprivradio",
"[FREQ_EMERGENCY]" = "emrgradio",
"[FREQ_SYNDICATE]" = "syndradio",
"[FREQ_CENTCOM]" = "centcomradio",
"[FREQ_SOLGOV]" = "solgovradio",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

var/obj/item/radio/radio
var/radio_key = /obj/item/encryptionkey/headset_com
var/radio_channel = RADIO_CHANNEL_COMMAND
var/radio_channel = RADIO_CHANNEL_EMERGENCY

var/running_anim = FALSE

Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/outfits/standard.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

var/obj/item/radio/R = H.ears
if(R)
R.set_frequency(FREQ_SYNDICATE)
R.set_frequency(FREQ_PIRATE)
R.freqlock = TRUE

var/obj/item/card/id/W = H.wear_id
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/under/syndicate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@
name = "inteq corpsman skirtleneck"
desc = "A sterile white turtleneck with a free flowing black skirt, it is emblazoned with the lettering 'IRMG' on the shoulder. For the IRMG's support division Corpsmen."
icon_state = "inteqmed_skirt"
supports_variations = KEPORI_VARIATION | DIGITIGRADE_VARIATION_NO_NEW_ICON
supports_variations = KEPORI_VARIATION | VOX_VARIATION | DIGITIGRADE_VARIATION_NO_NEW_ICON

/obj/item/clothing/under/syndicate/inteq/honorable
name = "honorable vanguard turtleneck"
Expand Down
Loading

0 comments on commit f4213f2

Please sign in to comment.