Makes syndicate comm channel pseudonymous.

This commit is contained in:
alex-gh
2018-10-19 14:34:47 +02:00
parent b6b974dbd1
commit 6a4d878940
6 changed files with 42 additions and 15 deletions
@@ -22,6 +22,11 @@
channels = list("Syndicate" = 1)
origin_tech = "syndicate=1;engineering=3;bluespace=2"
syndie = 1 //Signifies that it de-crypts Syndicate transmissions
var/fake_name = "Agent ALERT_A_CODER"
/obj/item/encryptionkey/syndicate/New()
..()
fake_name = "Agent " + pick(GLOB.html_colors)
/obj/item/encryptionkey/syndteam
icon_state = "cypherkey"
@@ -26,8 +26,12 @@
if(ks1type)
keyslot1 = new ks1type(src)
if(keyslot1.syndie)
syndiekey = keyslot1
if(ks2type)
keyslot2 = new ks2type(src)
if(keyslot2.syndie)
syndiekey = keyslot2
recalculateChannels(1)
@@ -79,7 +83,6 @@
/obj/item/radio/headset/syndicate
origin_tech = "syndicate=3"
syndie = 1
ks1type = /obj/item/encryptionkey/syndicate
/obj/item/radio/headset/syndicate/alt //undisguised bowman with flash protection
@@ -353,7 +356,7 @@
src.channels = list()
src.translate_binary = 0
src.translate_hive = 0
src.syndie = 0
src.syndiekey = null
if(keyslot1)
for(var/ch_name in keyslot1.channels)
@@ -369,7 +372,7 @@
src.translate_hive = 1
if(keyslot1.syndie)
src.syndie = 1
src.syndiekey = keyslot1
if(keyslot2)
for(var/ch_name in keyslot2.channels)
@@ -385,7 +388,7 @@
src.translate_hive = 1
if(keyslot2.syndie)
src.syndie = 1
src.syndiekey = keyslot2
for(var/ch_name in channels)
@@ -414,5 +417,5 @@
/obj/item/radio/headset/proc/make_syndie() // Turns normal radios into Syndicate radios!
qdel(keyslot1)
keyslot1 = new /obj/item/encryptionkey/syndicate
syndie = 1
syndiekey = keyslot1
recalculateChannels()
@@ -76,7 +76,7 @@
desc = "Talk through this. Evilly"
frequency = SYND_FREQ
subspace_transmission = 1
syndie = 1
syndiekey = new /obj/item/encryptionkey/syndicate
/obj/item/radio/intercom/syndicate/New()
..()
@@ -129,7 +129,7 @@
if(isnull(position) || !(position.z in level))
return -1
if(freq in ANTAG_FREQS)
if(!(src.syndie))
if(!(src.syndiekey))
return -1//Prevents broadcast of messages over devices lacking the encryption
return canhear_range
+11 -7
View File
@@ -36,7 +36,7 @@ var/global/list/default_medbay_channels = list(
var/listening = 1
var/list/channels = list() //see communications.dm for full list. First channes is a "default" for :h
var/subspace_transmission = 0
var/syndie = 0//Holder to see if it's a syndicate encrpyed radio
var/obj/item/encryptionkey/syndicate/syndiekey = null //Holder for the syndicate encryption key if present
var/disable_timer = 0 //How many times this is disabled by EMPs
var/is_special = 0 //For electropacks mostly, skips Topic() checks
@@ -131,7 +131,7 @@ var/global/list/default_medbay_channels = list(
data["chan_list"] = chanlist
data["chan_list_len"] = chanlist.len
if(syndie)
if(syndiekey)
data["useSyndMode"] = 1
return data
@@ -397,6 +397,10 @@ var/global/list/default_medbay_channels = list(
jobname = "Unknown"
voicemask = 1
if(syndiekey && connection.frequency == SYND_FREQ)
displayname = syndiekey.fake_name
jobname = "Unknown"
voicemask = 1
/* ###### Radio headsets can only broadcast through subspace ###### */
@@ -552,7 +556,7 @@ var/global/list/default_medbay_channels = list(
if(!position || !(position.z in level))
return -1
if(freq in ANTAG_FREQS)
if(!(syndie))//Checks to see if it's allowed on that frequency, based on the encryption keys
if(!(syndiekey))//Checks to see if it's allowed on that frequency, based on the encryption keys
return -1
if(!freq) //recieved on main frequency
if(!listening)
@@ -652,7 +656,6 @@ var/global/list/default_medbay_channels = list(
subspace_transmission = 1
/obj/item/radio/borg/syndicate
syndie = 1
keyslot = new /obj/item/encryptionkey/syndicate
/obj/item/radio/borg/syndicate/CanUseTopic(mob/user, datum/topic_state/state)
@@ -669,6 +672,7 @@ var/global/list/default_medbay_channels = list(
/obj/item/radio/borg/syndicate/New()
..()
syndiekey = keyslot
set_frequency(SYND_FREQ)
/obj/item/radio/borg/deathsquad
@@ -727,7 +731,7 @@ var/global/list/default_medbay_channels = list(
/obj/item/radio/borg/proc/recalculateChannels()
src.channels = list()
src.syndie = 0
src.syndiekey = null
var/mob/living/silicon/robot/D = src.loc
if(D.module)
@@ -744,7 +748,7 @@ var/global/list/default_medbay_channels = list(
src.channels[ch_name] += keyslot.channels[ch_name]
if(keyslot.syndie)
src.syndie = 1
src.syndiekey = keyslot
for(var/ch_name in src.channels)
@@ -814,7 +818,7 @@ var/global/list/default_medbay_channels = list(
data["chan_list"] = chanlist
data["chan_list_len"] = chanlist.len
if(syndie)
if(syndiekey)
data["useSyndMode"] = 1
data["has_loudspeaker"] = 1