mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 18:02:57 +00:00
Ports "Replaces radio channel names and keys with defines"
This commit is contained in:
@@ -1,5 +1,55 @@
|
||||
// Radios use a large variety of predefined frequencies.
|
||||
|
||||
//say based modes like binary are in living/say.dm
|
||||
|
||||
#define RADIO_CHANNEL_COMMON "Common"
|
||||
#define RADIO_KEY_COMMON ";"
|
||||
|
||||
#define RADIO_CHANNEL_SECURITY "Security"
|
||||
#define RADIO_KEY_SECURITY "s"
|
||||
#define RADIO_TOKEN_SECURITY ":s"
|
||||
|
||||
#define RADIO_CHANNEL_ENGINEERING "Engineering"
|
||||
#define RADIO_KEY_ENGINEERING "e"
|
||||
#define RADIO_TOKEN_ENGINEERING ":e"
|
||||
|
||||
#define RADIO_CHANNEL_COMMAND "Command"
|
||||
#define RADIO_KEY_COMMAND "c"
|
||||
#define RADIO_TOKEN_COMMAND ":c"
|
||||
|
||||
#define RADIO_CHANNEL_SCIENCE "Science"
|
||||
#define RADIO_KEY_SCIENCE "n"
|
||||
#define RADIO_TOKEN_SCIENCE ":n"
|
||||
|
||||
#define RADIO_CHANNEL_MEDICAL "Medical"
|
||||
#define RADIO_KEY_MEDICAL "m"
|
||||
#define RADIO_TOKEN_MEDICAL ":m"
|
||||
|
||||
#define RADIO_CHANNEL_SUPPLY "Supply"
|
||||
#define RADIO_KEY_SUPPLY "u"
|
||||
#define RADIO_TOKEN_SUPPLY ":u"
|
||||
|
||||
#define RADIO_CHANNEL_SERVICE "Service"
|
||||
#define RADIO_KEY_SERVICE "v"
|
||||
#define RADIO_TOKEN_SERVICE ":v"
|
||||
|
||||
#define RADIO_CHANNEL_AI_PRIVATE "AI Private"
|
||||
#define RADIO_KEY_AI_PRIVATE "o"
|
||||
#define RADIO_TOKEN_AI_PRIVATE ":o"
|
||||
|
||||
|
||||
#define RADIO_CHANNEL_SYNDICATE "Syndicate"
|
||||
#define RADIO_KEY_SYNDICATE "t"
|
||||
#define RADIO_TOKEN_SYNDICATE ":t"
|
||||
|
||||
#define RADIO_CHANNEL_CENTCOM "CentCom"
|
||||
#define RADIO_KEY_CENTCOM "y"
|
||||
#define RADIO_TOKEN_CENTCOM ":y"
|
||||
|
||||
#define RADIO_CHANNEL_CTF_RED "Red Team"
|
||||
#define RADIO_CHANNEL_CTF_BLUE "Blue Team"
|
||||
|
||||
|
||||
#define MIN_FREE_FREQ 1201 // -------------------------------------------------
|
||||
// Frequencies are always odd numbers and range from 1201 to 1599.
|
||||
|
||||
|
||||
@@ -6,17 +6,43 @@
|
||||
//Message modes. Each one defines a radio channel, more or less.
|
||||
#define MODE_HEADSET "headset"
|
||||
#define MODE_ROBOT "robot"
|
||||
|
||||
#define MODE_R_HAND "right hand"
|
||||
#define MODE_KEY_R_HAND "r"
|
||||
|
||||
#define MODE_L_HAND "left hand"
|
||||
#define MODE_KEY_L_HAND "l"
|
||||
|
||||
#define MODE_INTERCOM "intercom"
|
||||
#define MODE_KEY_INTERCOM "i"
|
||||
|
||||
#define MODE_BINARY "binary"
|
||||
#define MODE_KEY_BINARY "b"
|
||||
#define MODE_TOKEN_BINARY ":b"
|
||||
|
||||
#define MODE_WHISPER "whisper"
|
||||
#define MODE_WHISPER_CRIT "whispercrit"
|
||||
|
||||
#define MODE_DEPARTMENT "department"
|
||||
#define MODE_KEY_DEPARTMENT "h"
|
||||
#define MODE_TOKEN_DEPARTMENT ":h"
|
||||
|
||||
#define MODE_ADMIN "admin"
|
||||
#define MODE_KEY_ADMIN "p"
|
||||
|
||||
#define MODE_DEADMIN "deadmin"
|
||||
#define MODE_KEY_DEADMIN "d"
|
||||
|
||||
#define MODE_ALIEN "alientalk"
|
||||
#define MODE_HOLOPAD "holopad"
|
||||
|
||||
#define MODE_CHANGELING "changeling"
|
||||
#define MODE_KEY_CHANGELING "g"
|
||||
#define MODE_TOKEN_CHANGELING ":g"
|
||||
|
||||
#define MODE_VOCALCORDS "cords"
|
||||
#define MODE_KEY_VOCALCORDS "x"
|
||||
|
||||
#define MODE_MONKEY "monkeyhive"
|
||||
|
||||
//Spans. Robot speech, italics, etc. Applied in compose_message().
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
|
||||
/datum/saymode/changeling
|
||||
key = "g"
|
||||
key = MODE_KEY_CHANGELING
|
||||
mode = MODE_CHANGELING
|
||||
|
||||
/datum/saymode/changeling/handle_message(mob/living/user, message, datum/language/language)
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
|
||||
/datum/saymode/vocalcords
|
||||
key = "x"
|
||||
key = MODE_KEY_VOCALCORDS
|
||||
mode = MODE_VOCALCORDS
|
||||
|
||||
/datum/saymode/vocalcords/handle_message(mob/living/user, message, datum/language/language)
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
|
||||
/datum/saymode/binary //everything that uses .b (silicons, drones, blobbernauts/spores, swarmers)
|
||||
key = "b"
|
||||
key = MODE_KEY_BINARY
|
||||
mode = MODE_BINARY
|
||||
|
||||
/datum/saymode/binary/handle_message(mob/living/user, message, datum/language/language)
|
||||
|
||||
@@ -91,35 +91,35 @@ GLOBAL_LIST_EMPTY(all_radios)
|
||||
// use in maps, such as in intercoms.
|
||||
|
||||
GLOBAL_LIST_INIT(radiochannels, list(
|
||||
"Common" = FREQ_COMMON,
|
||||
"Science" = FREQ_SCIENCE,
|
||||
"Command" = FREQ_COMMAND,
|
||||
"Medical" = FREQ_MEDICAL,
|
||||
"Engineering" = FREQ_ENGINEERING,
|
||||
"Security" = FREQ_SECURITY,
|
||||
"CentCom" = FREQ_CENTCOM,
|
||||
"Syndicate" = FREQ_SYNDICATE,
|
||||
"Supply" = FREQ_SUPPLY,
|
||||
"Service" = FREQ_SERVICE,
|
||||
"AI Private" = FREQ_AI_PRIVATE,
|
||||
"Red Team" = FREQ_CTF_RED,
|
||||
"Blue Team" = FREQ_CTF_BLUE
|
||||
RADIO_CHANNEL_COMMON = FREQ_COMMON,
|
||||
RADIO_CHANNEL_SCIENCE = FREQ_SCIENCE,
|
||||
RADIO_CHANNEL_COMMAND = FREQ_COMMAND,
|
||||
RADIO_CHANNEL_MEDICAL = FREQ_MEDICAL,
|
||||
RADIO_CHANNEL_ENGINEERING = FREQ_ENGINEERING,
|
||||
RADIO_CHANNEL_SECURITY = FREQ_SECURITY,
|
||||
RADIO_CHANNEL_CENTCOM = FREQ_CENTCOM,
|
||||
RADIO_CHANNEL_SYNDICATE = FREQ_SYNDICATE,
|
||||
RADIO_CHANNEL_SUPPLY = FREQ_SUPPLY,
|
||||
RADIO_CHANNEL_SERVICE = FREQ_SERVICE,
|
||||
RADIO_CHANNEL_AI_PRIVATE = FREQ_AI_PRIVATE,
|
||||
RADIO_CHANNEL_CTF_RED = FREQ_CTF_RED,
|
||||
RADIO_CHANNEL_CTF_BLUE = FREQ_CTF_BLUE
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(reverseradiochannels, list(
|
||||
"[FREQ_COMMON]" = "Common",
|
||||
"[FREQ_SCIENCE]" = "Science",
|
||||
"[FREQ_COMMAND]" = "Command",
|
||||
"[FREQ_MEDICAL]" = "Medical",
|
||||
"[FREQ_ENGINEERING]" = "Engineering",
|
||||
"[FREQ_SECURITY]" = "Security",
|
||||
"[FREQ_CENTCOM]" = "CentCom",
|
||||
"[FREQ_SYNDICATE]" = "Syndicate",
|
||||
"[FREQ_SUPPLY]" = "Supply",
|
||||
"[FREQ_SERVICE]" = "Service",
|
||||
"[FREQ_AI_PRIVATE]" = "AI Private",
|
||||
"[FREQ_CTF_RED]" = "Red Team",
|
||||
"[FREQ_CTF_BLUE]" = "Blue Team"
|
||||
"[FREQ_COMMON]" = RADIO_CHANNEL_COMMON,
|
||||
"[FREQ_SCIENCE]" = RADIO_CHANNEL_SCIENCE,
|
||||
"[FREQ_COMMAND]" = RADIO_CHANNEL_COMMAND,
|
||||
"[FREQ_MEDICAL]" = RADIO_CHANNEL_MEDICAL,
|
||||
"[FREQ_ENGINEERING]" = RADIO_CHANNEL_ENGINEERING,
|
||||
"[FREQ_SECURITY]" = RADIO_CHANNEL_SECURITY,
|
||||
"[FREQ_CENTCOM]" = RADIO_CHANNEL_CENTCOM,
|
||||
"[FREQ_SYNDICATE]" = RADIO_CHANNEL_SYNDICATE,
|
||||
"[FREQ_SUPPLY]" = RADIO_CHANNEL_SUPPLY,
|
||||
"[FREQ_SERVICE]" = RADIO_CHANNEL_SERVICE,
|
||||
"[FREQ_AI_PRIVATE]" = RADIO_CHANNEL_AI_PRIVATE,
|
||||
"[FREQ_CTF_RED]" = RADIO_CHANNEL_CTF_RED,
|
||||
"[FREQ_CTF_BLUE]" = RADIO_CHANNEL_CTF_BLUE
|
||||
))
|
||||
|
||||
/datum/radio_frequency
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
var/siphoning = FALSE
|
||||
var/next_warning = 0
|
||||
var/obj/item/radio/radio
|
||||
var/radio_channel = "Common"
|
||||
var/radio_channel = RADIO_CHANNEL_COMMON
|
||||
var/minimum_time_between_warnings = 400
|
||||
|
||||
/obj/machinery/computer/bank_machine/Initialize()
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
var/internal_radio = TRUE
|
||||
var/obj/item/radio/radio
|
||||
var/radio_key = /obj/item/encryptionkey/headset_med
|
||||
var/radio_channel = "Medical"
|
||||
var/radio_channel = RADIO_CHANNEL_MEDICAL
|
||||
|
||||
var/obj/effect/countdown/clonepod/countdown
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/encryptionkey
|
||||
name = "standard encryption key"
|
||||
desc = "An encryption key for a radio headset. Has no special codes in it. WHY DOES IT EXIST? ASK NANOTRASEN."
|
||||
desc = "An encryption key for a radio headset."
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
icon_state = "cypherkey"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
@@ -9,124 +9,119 @@
|
||||
var/independent = FALSE
|
||||
var/list/channels = list()
|
||||
|
||||
/obj/item/encryptionkey/Initialize()
|
||||
. = ..()
|
||||
if(!channels.len)
|
||||
desc = "An encryption key for a radio headset. Has no special codes in it. You should probably tell a coder!"
|
||||
|
||||
/obj/item/encryptionkey/examine(mob/user)
|
||||
. = ..()
|
||||
if(LAZYLEN(channels))
|
||||
var/list/examine_text_list = list()
|
||||
for(var/i in channels)
|
||||
examine_text_list += "[GLOB.channel_tokens[i]] - [lowertext(i)]"
|
||||
|
||||
to_chat(user, "<span class='notice'>It can access the following channels; [jointext(examine_text_list, ", ")].</span>")
|
||||
|
||||
/obj/item/encryptionkey/syndicate
|
||||
name = "syndicate encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the syndicate channel, use :t."
|
||||
icon_state = "syn_cypherkey"
|
||||
channels = list("Syndicate" = 1)
|
||||
syndie = 1//Signifies that it de-crypts Syndicate transmissions
|
||||
channels = list(RADIO_CHANNEL_SYNDICATE = 1)
|
||||
syndie = TRUE //Signifies that it de-crypts Syndicate transmissions
|
||||
|
||||
/obj/item/encryptionkey/binary
|
||||
name = "binary translator key"
|
||||
desc = "An encryption key for a radio headset. To access the binary channel, use :b."
|
||||
icon_state = "bin_cypherkey"
|
||||
translate_binary = TRUE
|
||||
|
||||
/obj/item/encryptionkey/headset_sec
|
||||
name = "security radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the security channel, use :s."
|
||||
icon_state = "sec_cypherkey"
|
||||
channels = list("Security" = 1)
|
||||
channels = list(RADIO_CHANNEL_SECURITY = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_eng
|
||||
name = "engineering radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the engineering channel, use :e."
|
||||
icon_state = "eng_cypherkey"
|
||||
channels = list("Engineering" = 1)
|
||||
channels = list(RADIO_CHANNEL_ENGINEERING = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_rob
|
||||
name = "robotics radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the engineering channel, use :e. For research, use :n."
|
||||
icon_state = "rob_cypherkey"
|
||||
channels = list("Science" = 1, "Engineering" = 1)
|
||||
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_ENGINEERING = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_med
|
||||
name = "medical radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the medical channel, use :m."
|
||||
icon_state = "med_cypherkey"
|
||||
channels = list("Medical" = 1)
|
||||
channels = list(RADIO_CHANNEL_MEDICAL = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_sci
|
||||
name = "science radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the science channel, use :n."
|
||||
icon_state = "sci_cypherkey"
|
||||
channels = list("Science" = 1)
|
||||
channels = list(RADIO_CHANNEL_SCIENCE = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_medsci
|
||||
name = "medical research radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the medical channel, use :m. For science, use :n."
|
||||
icon_state = "medsci_cypherkey"
|
||||
channels = list("Science" = 1, "Medical" = 1)
|
||||
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_MEDICAL = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_com
|
||||
name = "command radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the command channel, use :c."
|
||||
icon_state = "com_cypherkey"
|
||||
channels = list("Command" = 1)
|
||||
channels = list(RADIO_CHANNEL_COMMAND = 1)
|
||||
|
||||
/obj/item/encryptionkey/heads/captain
|
||||
name = "\proper the captain's encryption key"
|
||||
desc = "An encryption key for a radio headset. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science."
|
||||
icon_state = "cap_cypherkey"
|
||||
channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0, "Service" = 0)
|
||||
channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_ENGINEERING = 0, RADIO_CHANNEL_SCIENCE = 0, RADIO_CHANNEL_MEDICAL = 0, RADIO_CHANNEL_SUPPLY = 0, RADIO_CHANNEL_SERVICE = 0)
|
||||
|
||||
/obj/item/encryptionkey/heads/rd
|
||||
name = "\proper the research director's encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the science channel, use :n. For command, use :c."
|
||||
icon_state = "rd_cypherkey"
|
||||
channels = list("Science" = 1, "Command" = 1)
|
||||
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_COMMAND = 1)
|
||||
|
||||
/obj/item/encryptionkey/heads/hos
|
||||
name = "\proper the head of security's encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the security channel, use :s. For command, use :c."
|
||||
icon_state = "hos_cypherkey"
|
||||
channels = list("Security" = 1, "Command" = 1)
|
||||
channels = list(RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_COMMAND = 1)
|
||||
|
||||
/obj/item/encryptionkey/heads/ce
|
||||
name = "\proper the chief engineer's encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the engineering channel, use :e. For command, use :c."
|
||||
icon_state = "ce_cypherkey"
|
||||
channels = list("Engineering" = 1, "Command" = 1)
|
||||
channels = list(RADIO_CHANNEL_ENGINEERING = 1, RADIO_CHANNEL_COMMAND = 1)
|
||||
|
||||
/obj/item/encryptionkey/heads/cmo
|
||||
name = "\proper the chief medical officer's encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the medical channel, use :m. For command, use :c."
|
||||
icon_state = "cmo_cypherkey"
|
||||
channels = list("Medical" = 1, "Command" = 1)
|
||||
channels = list(RADIO_CHANNEL_MEDICAL = 1, RADIO_CHANNEL_COMMAND = 1)
|
||||
|
||||
/obj/item/encryptionkey/heads/hop
|
||||
name = "\proper the head of personnel's encryption key"
|
||||
desc = "An encryption key for a radio headset. Channels are as follows: :u - supply, :v - service, :c - command."
|
||||
icon_state = "hop_cypherkey"
|
||||
channels = list("Supply" = 1, "Service" = 1, "Command" = 1)
|
||||
channels = list(RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_COMMAND = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_cargo
|
||||
name = "supply radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the supply channel, use :u."
|
||||
icon_state = "cargo_cypherkey"
|
||||
channels = list("Supply" = 1)
|
||||
channels = list(RADIO_CHANNEL_SUPPLY = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_mining
|
||||
name = "mining radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the supply channel, use :u. For science, use :n."
|
||||
icon_state = "cargo_cypherkey"
|
||||
channels = list("Supply" = 1, "Science" = 1)
|
||||
channels = list(RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_SCIENCE = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_service
|
||||
name = "service radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the service channel, use :v."
|
||||
icon_state = "srv_cypherkey"
|
||||
channels = list("Service" = 1)
|
||||
channels = list(RADIO_CHANNEL_SERVICE = 1)
|
||||
|
||||
/obj/item/encryptionkey/headset_cent
|
||||
name = "\improper CentCom radio encryption key"
|
||||
desc = "An encryption key for a radio headset. To access the CentCom channel, use :y."
|
||||
icon_state = "cent_cypherkey"
|
||||
independent = TRUE
|
||||
channels = list("CentCom" = 1)
|
||||
channels = list(RADIO_CHANNEL_CENTCOM = 1)
|
||||
|
||||
/obj/item/encryptionkey/ai //ported from NT, this goes 'inside' the AI.
|
||||
channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1)
|
||||
channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_ENGINEERING = 1, RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_MEDICAL = 1, RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_AI_PRIVATE = 1)
|
||||
|
||||
/obj/item/encryptionkey/secbot
|
||||
channels = list("AI Private"=1,"Security"=1)
|
||||
channels = list(RADIO_CHANNEL_AI_PRIVATE = 1, RADIO_CHANNEL_SECURITY = 1)
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
// Used for translating channels to tokens on examination
|
||||
GLOBAL_LIST_INIT(channel_tokens, list(
|
||||
RADIO_CHANNEL_COMMON = RADIO_KEY_COMMON,
|
||||
RADIO_CHANNEL_SCIENCE = RADIO_TOKEN_SCIENCE,
|
||||
RADIO_CHANNEL_COMMAND = RADIO_TOKEN_COMMAND,
|
||||
RADIO_CHANNEL_MEDICAL = RADIO_TOKEN_MEDICAL,
|
||||
RADIO_CHANNEL_ENGINEERING = RADIO_TOKEN_ENGINEERING,
|
||||
RADIO_CHANNEL_SECURITY = RADIO_TOKEN_SECURITY,
|
||||
RADIO_CHANNEL_CENTCOM = RADIO_TOKEN_CENTCOM,
|
||||
RADIO_CHANNEL_SYNDICATE = RADIO_TOKEN_SYNDICATE,
|
||||
RADIO_CHANNEL_SUPPLY = RADIO_TOKEN_SUPPLY,
|
||||
RADIO_CHANNEL_SERVICE = RADIO_TOKEN_SERVICE,
|
||||
MODE_BINARY = MODE_TOKEN_BINARY,
|
||||
RADIO_CHANNEL_AI_PRIVATE = RADIO_TOKEN_AI_PRIVATE
|
||||
))
|
||||
|
||||
/obj/item/radio/headset
|
||||
name = "radio headset"
|
||||
desc = "An updated, modular intercom that fits over the head. Takes encryption keys."
|
||||
@@ -17,9 +33,24 @@
|
||||
|
||||
/obj/item/radio/headset/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>To speak on the general radio frequency, use ; before speaking.</span>")
|
||||
if (command)
|
||||
to_chat(user, "<span class='notice'>Alt-click to toggle the high-volume mode.</span>")
|
||||
|
||||
if(item_flags & IN_INVENTORY && loc == user)
|
||||
// construction of frequency description
|
||||
var/list/avail_chans = list("Use [RADIO_KEY_COMMON] for the currently tuned frequency")
|
||||
if(translate_binary)
|
||||
avail_chans += "use [MODE_TOKEN_BINARY] for [MODE_BINARY]"
|
||||
if(length(channels))
|
||||
for(var/i in 1 to length(channels))
|
||||
if(i == 1)
|
||||
avail_chans += "use [MODE_TOKEN_DEPARTMENT] or [GLOB.channel_tokens[channels[i]]] for [lowertext(channels[i])]"
|
||||
else
|
||||
avail_chans += "use [GLOB.channel_tokens[channels[i]]] for [lowertext(channels[i])]"
|
||||
to_chat(user, "<span class='notice'>A small screen on the headset displays the following available frequencies:\n[english_list(avail_chans)].")
|
||||
|
||||
if(command)
|
||||
to_chat(user, "<span class='info'>Alt-click to toggle the high-volume mode.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>A small screen on the headset flashes, it's too small to read without holding or wearing the headset.</span>")
|
||||
|
||||
/obj/item/radio/headset/Initialize()
|
||||
. = ..()
|
||||
@@ -47,7 +78,7 @@
|
||||
|
||||
/obj/item/radio/headset/syndicate/alt //undisguised bowman with flash protection
|
||||
name = "syndicate headset"
|
||||
desc = "A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs. \nTo access the syndicate channel, use ; before speaking."
|
||||
desc = "A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs."
|
||||
icon_state = "syndie_headset"
|
||||
item_state = "syndie_headset"
|
||||
|
||||
@@ -72,13 +103,13 @@
|
||||
|
||||
/obj/item/radio/headset/headset_sec
|
||||
name = "security radio headset"
|
||||
desc = "This is used by your elite security force.\nTo access the security channel, use :s."
|
||||
desc = "This is used by your elite security force."
|
||||
icon_state = "sec_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_sec
|
||||
|
||||
/obj/item/radio/headset/headset_sec/alt
|
||||
name = "security bowman headset"
|
||||
desc = "This is used by your elite security force. Protects ears from flashbangs.\nTo access the security channel, use :s."
|
||||
desc = "This is used by your elite security force. Protects ears from flashbangs."
|
||||
icon_state = "sec_headset_alt"
|
||||
item_state = "sec_headset_alt"
|
||||
|
||||
@@ -88,31 +119,31 @@
|
||||
|
||||
/obj/item/radio/headset/headset_eng
|
||||
name = "engineering radio headset"
|
||||
desc = "When the engineers wish to chat like girls.\nTo access the engineering channel, use :e."
|
||||
desc = "When the engineers wish to chat like girls."
|
||||
icon_state = "eng_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_eng
|
||||
|
||||
/obj/item/radio/headset/headset_rob
|
||||
name = "robotics radio headset"
|
||||
desc = "Made specifically for the roboticists, who cannot decide between departments.\nTo access the engineering channel, use :e. For research, use :n."
|
||||
desc = "Made specifically for the roboticists, who cannot decide between departments."
|
||||
icon_state = "rob_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_rob
|
||||
|
||||
/obj/item/radio/headset/headset_med
|
||||
name = "medical radio headset"
|
||||
desc = "A headset for the trained staff of the medbay.\nTo access the medical channel, use :m."
|
||||
desc = "A headset for the trained staff of the medbay."
|
||||
icon_state = "med_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_med
|
||||
|
||||
/obj/item/radio/headset/headset_sci
|
||||
name = "science radio headset"
|
||||
desc = "A sciency headset. Like usual.\nTo access the science channel, use :n."
|
||||
desc = "A sciency headset. Like usual."
|
||||
icon_state = "sci_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_sci
|
||||
|
||||
/obj/item/radio/headset/headset_medsci
|
||||
name = "medical research radio headset"
|
||||
desc = "A headset that is a result of the mating between medical and science.\nTo access the medical channel, use :m. For science, use :n."
|
||||
desc = "A headset that is a result of the mating between medical and science."
|
||||
icon_state = "medsci_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_medsci
|
||||
|
||||
@@ -127,13 +158,13 @@
|
||||
|
||||
/obj/item/radio/headset/heads/captain
|
||||
name = "\proper the captain's headset"
|
||||
desc = "The headset of the king.\nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science."
|
||||
desc = "The headset of the king."
|
||||
icon_state = "com_headset"
|
||||
keyslot = new /obj/item/encryptionkey/heads/captain
|
||||
|
||||
/obj/item/radio/headset/heads/captain/alt
|
||||
name = "\proper the captain's bowman headset"
|
||||
desc = "The headset of the boss. Protects ears from flashbangs.\nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science."
|
||||
desc = "The headset of the boss. Protects ears from flashbangs."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "com_headset_alt"
|
||||
|
||||
@@ -143,19 +174,19 @@
|
||||
|
||||
/obj/item/radio/headset/heads/rd
|
||||
name = "\proper the research director's headset"
|
||||
desc = "Headset of the fellow who keeps society marching towards technological singularity.\nTo access the science channel, use :n. For command, use :c."
|
||||
desc = "Headset of the fellow who keeps society marching towards technological singularity."
|
||||
icon_state = "com_headset"
|
||||
keyslot = new /obj/item/encryptionkey/heads/rd
|
||||
|
||||
/obj/item/radio/headset/heads/hos
|
||||
name = "\proper the head of security's headset"
|
||||
desc = "The headset of the man in charge of keeping order and protecting the station.\nTo access the security channel, use :s. For command, use :c."
|
||||
desc = "The headset of the man in charge of keeping order and protecting the station."
|
||||
icon_state = "com_headset"
|
||||
keyslot = new /obj/item/encryptionkey/heads/hos
|
||||
|
||||
/obj/item/radio/headset/heads/hos/alt
|
||||
name = "\proper the head of security's bowman headset"
|
||||
desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs.\nTo access the security channel, use :s. For command, use :c."
|
||||
desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "com_headset_alt"
|
||||
|
||||
@@ -165,43 +196,43 @@
|
||||
|
||||
/obj/item/radio/headset/heads/ce
|
||||
name = "\proper the chief engineer's headset"
|
||||
desc = "The headset of the guy in charge of keeping the station powered and undamaged.\nTo access the engineering channel, use :e. For command, use :c."
|
||||
desc = "The headset of the guy in charge of keeping the station powered and undamaged."
|
||||
icon_state = "com_headset"
|
||||
keyslot = new /obj/item/encryptionkey/heads/ce
|
||||
|
||||
/obj/item/radio/headset/heads/cmo
|
||||
name = "\proper the chief medical officer's headset"
|
||||
desc = "The headset of the highly trained medical chief.\nTo access the medical channel, use :m. For command, use :c."
|
||||
desc = "The headset of the highly trained medical chief."
|
||||
icon_state = "com_headset"
|
||||
keyslot = new /obj/item/encryptionkey/heads/cmo
|
||||
|
||||
/obj/item/radio/headset/heads/hop
|
||||
name = "\proper the head of personnel's headset"
|
||||
desc = "The headset of the guy who will one day be captain.\nChannels are as follows: :u - supply, :v - service, :c - command."
|
||||
desc = "The headset of the guy who will one day be captain."
|
||||
icon_state = "com_headset"
|
||||
keyslot = new /obj/item/encryptionkey/heads/hop
|
||||
|
||||
/obj/item/radio/headset/headset_cargo
|
||||
name = "supply radio headset"
|
||||
desc = "A headset used by the QM and his slaves.\nTo access the supply channel, use :u."
|
||||
desc = "A headset used by the QM and his slaves."
|
||||
icon_state = "cargo_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_cargo
|
||||
|
||||
/obj/item/radio/headset/headset_cargo/mining
|
||||
name = "mining radio headset"
|
||||
desc = "Headset used by shaft miners.\nTo access the supply channel, use :u. For science, use :n."
|
||||
desc = "Headset used by shaft miners."
|
||||
icon_state = "mine_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_mining
|
||||
|
||||
/obj/item/radio/headset/headset_srv
|
||||
name = "service radio headset"
|
||||
desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean.\nTo access the service channel, use :v."
|
||||
desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean."
|
||||
icon_state = "srv_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_service
|
||||
|
||||
/obj/item/radio/headset/headset_cent
|
||||
name = "\improper CentCom headset"
|
||||
desc = "A headset used by the upper echelons of Nanotrasen.\nTo access the CentCom channel, use :y."
|
||||
desc = "A headset used by the upper echelons of Nanotrasen."
|
||||
icon_state = "cent_headset"
|
||||
keyslot = new /obj/item/encryptionkey/headset_com
|
||||
keyslot2 = new /obj/item/encryptionkey/headset_cent
|
||||
@@ -215,7 +246,7 @@
|
||||
|
||||
/obj/item/radio/headset/headset_cent/alt
|
||||
name = "\improper CentCom bowman headset"
|
||||
desc = "A headset especially for emergency response personnel. Protects ears from flashbangs.\nTo access the CentCom channel, use :y."
|
||||
desc = "A headset especially for emergency response personnel. Protects ears from flashbangs."
|
||||
icon_state = "cent_headset_alt"
|
||||
item_state = "cent_headset_alt"
|
||||
keyslot = null
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
// From the channel, determine the frequency and get a reference to it.
|
||||
var/freq
|
||||
if(channel && channels && channels.len > 0)
|
||||
if(channel == "department")
|
||||
if(channel == MODE_DEPARTMENT)
|
||||
channel = channels[1]
|
||||
freq = secure_radio_connections[channel]
|
||||
if (!channels[channel]) // if the channel is turned off, don't broadcast
|
||||
|
||||
@@ -1882,14 +1882,14 @@
|
||||
return
|
||||
|
||||
var/mob/M = locate(href_list["CentComReply"])
|
||||
usr.client.admin_headset_message(M, "CentCom")
|
||||
usr.client.admin_headset_message(M, RADIO_CHANNEL_CENTCOM)
|
||||
|
||||
else if(href_list["SyndicateReply"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
var/mob/M = locate(href_list["SyndicateReply"])
|
||||
usr.client.admin_headset_message(M, "Syndicate")
|
||||
usr.client.admin_headset_message(M, RADIO_CHANNEL_SYNDICATE)
|
||||
|
||||
else if(href_list["HeadsetMessage"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
.["laws"] = borg.laws ? borg.laws.get_law_list(include_zeroth = TRUE) : list()
|
||||
.["channels"] = list()
|
||||
for (var/k in GLOB.radiochannels)
|
||||
if (k == "Common")
|
||||
if (k == RADIO_CHANNEL_COMMON)
|
||||
continue
|
||||
.["channels"] += list(list("name" = k, "installed" = (k in borg.radio.channels)))
|
||||
.["cell"] = borg.cell ? list("missing" = FALSE, "maxcharge" = borg.cell.maxcharge, "charge" = borg.cell.charge) : list("missing" = TRUE, "maxcharge" = 1, "charge" = 0)
|
||||
@@ -164,15 +164,15 @@
|
||||
if (channel in borg.radio.channels) // We're removing a channel
|
||||
if (!borg.radio.keyslot) // There's no encryption key. This shouldn't happen but we can cope
|
||||
borg.radio.channels -= channel
|
||||
if (channel == "Syndicate")
|
||||
if (channel == RADIO_CHANNEL_SYNDICATE)
|
||||
borg.radio.syndie = FALSE
|
||||
else if (channel == "CentCom")
|
||||
else if (channel == RADIO_CHANNEL_CENTCOM)
|
||||
borg.radio.independent = FALSE
|
||||
else
|
||||
borg.radio.keyslot.channels -= channel
|
||||
if (channel == "Syndicate")
|
||||
if (channel == RADIO_CHANNEL_SYNDICATE)
|
||||
borg.radio.keyslot.syndie = FALSE
|
||||
else if (channel == "CentCom")
|
||||
else if (channel == RADIO_CHANNEL_CENTCOM)
|
||||
borg.radio.keyslot.independent = FALSE
|
||||
message_admins("[key_name_admin(user)] removed the [channel] radio channel from [ADMIN_LOOKUPFLW(borg)].")
|
||||
log_admin("[key_name(user)] removed the [channel] radio channel from [key_name(borg)].")
|
||||
@@ -180,9 +180,9 @@
|
||||
if (!borg.radio.keyslot) // Assert that an encryption key exists
|
||||
borg.radio.keyslot = new (borg.radio)
|
||||
borg.radio.keyslot.channels[channel] = 1
|
||||
if (channel == "Syndicate")
|
||||
if (channel == RADIO_CHANNEL_SYNDICATE)
|
||||
borg.radio.keyslot.syndie = TRUE
|
||||
else if (channel == "CentCom")
|
||||
else if (channel == RADIO_CHANNEL_CENTCOM)
|
||||
borg.radio.keyslot.independent = TRUE
|
||||
message_admins("[key_name_admin(user)] added the [channel] radio channel to [ADMIN_LOOKUPFLW(borg)].")
|
||||
log_admin("[key_name(user)] added the [channel] radio channel to [key_name(borg)].")
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
return
|
||||
|
||||
if (!sender)
|
||||
sender = input("Who is the message from?", "Sender") as null|anything in list("CentCom","Syndicate")
|
||||
sender = input("Who is the message from?", "Sender") as null|anything in list(RADIO_CHANNEL_CENTCOM,RADIO_CHANNEL_SYNDICATE)
|
||||
if(!sender)
|
||||
return
|
||||
|
||||
|
||||
@@ -353,7 +353,7 @@
|
||||
/datum/antagonist/changeling/greet()
|
||||
if (you_are_greet)
|
||||
to_chat(owner.current, "<span class='boldannounce'>You are [changelingID], a changeling! You have absorbed and taken the form of a human.</span>")
|
||||
to_chat(owner.current, "<span class='boldannounce'>Use say \":g message\" to communicate with your fellow changelings.</span>")
|
||||
to_chat(owner.current, "<span class='boldannounce'>Use say \"[MODE_TOKEN_CHANGELING] message\" to communicate with your fellow changelings.</span>")
|
||||
to_chat(owner.current, "<b>You must complete the following tasks:</b>")
|
||||
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ling_aler.ogg', 100, FALSE, pressure_affected = FALSE)
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
//HIVEMIND COMMUNICATION (:g)
|
||||
//HIVEMIND COMMUNICATION //MODE_TOKEN_CHANGELING / :g
|
||||
/obj/effect/proc_holder/changeling/hivemind_comms
|
||||
name = "Hivemind Communication"
|
||||
desc = "We tune our senses to the airwaves to allow us to discreetly communicate and exchange DNA with other changelings."
|
||||
helptext = "We will be able to talk with other changelings with :g. Exchanged DNA do not count towards absorb objectives."
|
||||
helptext = "We will be able to talk with other changelings with :g. Exchanged DNA do not count towards absorb objectives." //MODE_TOKEN_CHANGELING needs to be manually updated here.
|
||||
dna_cost = 1
|
||||
chemical_cost = -1
|
||||
action_icon = 'icons/mob/actions/actions_xeno.dmi'
|
||||
@@ -20,7 +20,7 @@
|
||||
..()
|
||||
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
changeling.changeling_speak = 1
|
||||
to_chat(user, "<i><font color=#800080>Use say \":g message\" to communicate with the other changelings.</font></i>")
|
||||
to_chat(user, "<i><font color=#800080>Use say \"[MODE_TOKEN_CHANGELING] message\" to communicate with the other changelings.</font></i>")
|
||||
var/obj/effect/proc_holder/changeling/hivemind_upload/S1 = new
|
||||
if(!changeling.has_sting(S1))
|
||||
changeling.purchasedpowers+=S1
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
if(M.lingcheck() == LINGHIVE_LING)
|
||||
to_chat(M, "<i><font color=#800080>We can sense a foreign presence in the hivemind...</font></i>")
|
||||
target.mind.linglink = 1
|
||||
target.say(":g AAAAARRRRGGGGGHHHHH!!")
|
||||
to_chat(target, "<font color=#800040><span class='boldannounce'>You can now communicate in the changeling hivemind, say \":g message\" to communicate!</span>")
|
||||
target.say("[MODE_TOKEN_CHANGELING] AAAAARRRRGGGGGHHHHH!!")
|
||||
to_chat(target, "<font color=#800040><span class='boldannounce'>You can now communicate in the changeling hivemind, say \"[MODE_TOKEN_CHANGELING] message\" to communicate!</span>")
|
||||
target.reagents.add_reagent("salbutamol", 40) // So they don't choke to death while you interrogate them
|
||||
sleep(1800)
|
||||
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]", "[i]"))
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
var/obj/item/radio/radio
|
||||
var/radio_key = /obj/item/encryptionkey/headset_med
|
||||
var/radio_channel = "Medical"
|
||||
var/radio_channel = RADIO_CHANNEL_MEDICAL
|
||||
|
||||
var/running_anim = FALSE
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ Head of Personnel
|
||||
flag = HOP
|
||||
department_head = list("Captain")
|
||||
department_flag = CIVILIAN
|
||||
head_announce = list("Supply", "Service")
|
||||
head_announce = list(RADIO_CHANNEL_SERVICE)
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
|
||||
@@ -6,6 +6,7 @@ Quartermaster
|
||||
flag = QUARTERMASTER
|
||||
department_head = list("Head of Personnel")
|
||||
department_flag = CIVILIAN
|
||||
head_announce = list(RADIO_CHANNEL_SUPPLY)
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
|
||||
@@ -6,7 +6,7 @@ Chief Engineer
|
||||
flag = CHIEF
|
||||
department_head = list("Captain")
|
||||
department_flag = ENGSEC
|
||||
head_announce = list("Engineering")
|
||||
head_announce = list(RADIO_CHANNEL_ENGINEERING)
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
|
||||
@@ -6,7 +6,7 @@ Chief Medical Officer
|
||||
flag = CMO_JF
|
||||
department_head = list("Captain")
|
||||
department_flag = MEDSCI
|
||||
head_announce = list("Medical")
|
||||
head_announce = list(RADIO_CHANNEL_MEDICAL)
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
|
||||
@@ -6,7 +6,7 @@ Research Director
|
||||
flag = RD_JF
|
||||
department_head = list("Captain")
|
||||
department_flag = MEDSCI
|
||||
head_announce = list("Science")
|
||||
head_announce = list(RADIO_CHANNEL_SCIENCE)
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
|
||||
@@ -12,7 +12,7 @@ Head of Security
|
||||
flag = HOS
|
||||
department_head = list("Captain")
|
||||
department_flag = ENGSEC
|
||||
head_announce = list("Security")
|
||||
head_announce = list(RADIO_CHANNEL_SECURITY)
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
return
|
||||
|
||||
var/message_mode = get_message_mode(message)
|
||||
if(client && (message_mode == "admin" || message_mode == "deadmin"))
|
||||
if(client && (message_mode == MODE_ADMIN || message_mode == MODE_DEADMIN))
|
||||
message = copytext(message, 3)
|
||||
if(findtext(message, " ", 1, 2))
|
||||
message = copytext(message, 2)
|
||||
|
||||
if(message_mode == "admin")
|
||||
if(message_mode == MODE_ADMIN)
|
||||
client.cmd_admin_say(message)
|
||||
else if(message_mode == "deadmin")
|
||||
else if(message_mode == MODE_DEADMIN)
|
||||
client.dsay(message)
|
||||
return
|
||||
|
||||
|
||||
@@ -53,14 +53,14 @@
|
||||
if(ears)
|
||||
var/obj/item/radio/headset/dongle = ears
|
||||
if(!istype(dongle))
|
||||
return 0
|
||||
return FALSE
|
||||
if(dongle.translate_binary)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/radio(message, message_mode, list/spans, language)
|
||||
. = ..()
|
||||
if(. != 0)
|
||||
return .
|
||||
if(.)
|
||||
return
|
||||
|
||||
switch(message_mode)
|
||||
if(MODE_HEADSET)
|
||||
|
||||
@@ -2,61 +2,61 @@ GLOBAL_LIST_INIT(department_radio_prefixes, list(":", "."))
|
||||
|
||||
GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
// Location
|
||||
"r" = "right hand",
|
||||
"l" = "left hand",
|
||||
"i" = "intercom",
|
||||
MODE_KEY_R_HAND = MODE_R_HAND,
|
||||
MODE_KEY_L_HAND = MODE_L_HAND,
|
||||
MODE_KEY_INTERCOM = MODE_INTERCOM,
|
||||
|
||||
// Department
|
||||
"h" = "department",
|
||||
"c" = "Command",
|
||||
"n" = "Science",
|
||||
"m" = "Medical",
|
||||
"e" = "Engineering",
|
||||
"s" = "Security",
|
||||
"u" = "Supply",
|
||||
"v" = "Service",
|
||||
MODE_KEY_DEPARTMENT = MODE_DEPARTMENT,
|
||||
RADIO_KEY_COMMAND = RADIO_CHANNEL_COMMAND,
|
||||
RADIO_KEY_SCIENCE = RADIO_CHANNEL_SCIENCE,
|
||||
RADIO_KEY_MEDICAL = RADIO_CHANNEL_MEDICAL,
|
||||
RADIO_KEY_ENGINEERING = RADIO_CHANNEL_ENGINEERING,
|
||||
RADIO_KEY_SECURITY = RADIO_CHANNEL_SECURITY,
|
||||
RADIO_KEY_SUPPLY = RADIO_CHANNEL_SUPPLY,
|
||||
RADIO_KEY_SERVICE = RADIO_CHANNEL_SERVICE,
|
||||
|
||||
// Faction
|
||||
"t" = "Syndicate",
|
||||
"y" = "CentCom",
|
||||
RADIO_KEY_SYNDICATE = RADIO_CHANNEL_SYNDICATE,
|
||||
RADIO_KEY_CENTCOM = RADIO_CHANNEL_CENTCOM,
|
||||
|
||||
// Admin
|
||||
"p" = "admin",
|
||||
"d" = "deadmin",
|
||||
MODE_KEY_ADMIN = MODE_ADMIN,
|
||||
MODE_KEY_DEADMIN = MODE_DEADMIN,
|
||||
|
||||
// Misc
|
||||
"o" = "AI Private", // AI Upload channel
|
||||
"x" = "cords", // vocal cords, used by Voice of God
|
||||
RADIO_KEY_AI_PRIVATE = RADIO_CHANNEL_AI_PRIVATE, // AI Upload channel
|
||||
MODE_KEY_VOCALCORDS = MODE_VOCALCORDS, // vocal cords, used by Voice of God
|
||||
|
||||
|
||||
//kinda localization -- rastaf0
|
||||
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
|
||||
// Location
|
||||
"ê" = "right hand",
|
||||
"ä" = "left hand",
|
||||
"ø" = "intercom",
|
||||
"ê" = MODE_R_HAND,
|
||||
"ä" = MODE_L_HAND,
|
||||
"ø" = MODE_INTERCOM,
|
||||
|
||||
// Department
|
||||
"ð" = "department",
|
||||
"ñ" = "Command",
|
||||
"ò" = "Science",
|
||||
"ü" = "Medical",
|
||||
"ó" = "Engineering",
|
||||
"û" = "Security",
|
||||
"ã" = "Supply",
|
||||
"ì" = "Service",
|
||||
"ð" = MODE_DEPARTMENT,
|
||||
"ñ" = RADIO_CHANNEL_COMMAND,
|
||||
"ò" = RADIO_CHANNEL_SCIENCE,
|
||||
"ü" = RADIO_CHANNEL_MEDICAL,
|
||||
"ó" = RADIO_CHANNEL_ENGINEERING,
|
||||
"û" = RADIO_CHANNEL_SECURITY,
|
||||
"ã" = RADIO_CHANNEL_SUPPLY,
|
||||
"ì" = RADIO_CHANNEL_SERVICE,
|
||||
|
||||
// Faction
|
||||
"å" = "Syndicate",
|
||||
"í" = "CentCom",
|
||||
"å" = RADIO_CHANNEL_SYNDICATE,
|
||||
"í" = RADIO_CHANNEL_CENTCOM,
|
||||
|
||||
// Admin
|
||||
"ç" = "admin",
|
||||
"â" = "deadmin",
|
||||
"ç" = MODE_ADMIN,
|
||||
"â" = MODE_ADMIN,
|
||||
|
||||
// Misc
|
||||
"ù" = "AI Private",
|
||||
"÷" = "cords"
|
||||
"ù" = RADIO_CHANNEL_AI_PRIVATE,
|
||||
"÷" = MODE_VOCALCORDS
|
||||
))
|
||||
|
||||
/mob/living/proc/Ellipsis(original_msg, chance = 50, keep_words)
|
||||
@@ -105,12 +105,12 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
if(findtext(message, " ", 1, 2))
|
||||
message = copytext(message, 2)
|
||||
|
||||
if(message_mode == "admin")
|
||||
if(message_mode == MODE_ADMIN)
|
||||
if(client)
|
||||
client.cmd_admin_say(message)
|
||||
return
|
||||
|
||||
if(message_mode == "deadmin")
|
||||
if(message_mode == MODE_DEADMIN)
|
||||
if(client)
|
||||
client.dsay(message)
|
||||
return
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
var/mob/living/silicon/ai/calling_ai //Links a bot to the AI calling it.
|
||||
var/obj/item/radio/Radio //The bot's radio, for speaking to people.
|
||||
var/radio_key = null //which channels can the bot listen to
|
||||
var/radio_channel = "Common" //The bot's default radio channel
|
||||
var/radio_channel = RADIO_CHANNEL_COMMON //The bot's default radio channel
|
||||
var/auto_patrol = 0// set to make bot automatically patrol
|
||||
var/turf/patrol_target // this is turf to navigate to (location of beacon)
|
||||
var/turf/summon_target // The turf of a user summoning a bot.
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
health = 25
|
||||
maxHealth = 25
|
||||
radio_key = /obj/item/encryptionkey/headset_service
|
||||
radio_channel = "Service" //Service
|
||||
radio_channel = RADIO_CHANNEL_SERVICE //Service
|
||||
bot_type = CLEAN_BOT
|
||||
model = "Cleanbot"
|
||||
bot_core_type = /obj/machinery/bot_core/cleanbot
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
|
||||
radio_key = /obj/item/encryptionkey/headset_sec
|
||||
radio_channel = "Security"
|
||||
radio_channel = RADIO_CHANNEL_SECURITY
|
||||
bot_type = SEC_BOT
|
||||
model = "ED-209"
|
||||
bot_core = /obj/machinery/bot_core/secbot
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
spacewalk = TRUE
|
||||
|
||||
radio_key = /obj/item/encryptionkey/headset_eng
|
||||
radio_channel = "Engineering"
|
||||
radio_channel = RADIO_CHANNEL_ENGINEERING
|
||||
bot_type = FIRE_BOT
|
||||
model = "Firebot"
|
||||
bot_core = /obj/machinery/bot_core/firebot
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
spacewalk = TRUE
|
||||
|
||||
radio_key = /obj/item/encryptionkey/headset_eng
|
||||
radio_channel = "Engineering"
|
||||
radio_channel = RADIO_CHANNEL_ENGINEERING
|
||||
bot_type = FLOOR_BOT
|
||||
model = "Floorbot"
|
||||
bot_core = /obj/machinery/bot_core/floorbot
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
pass_flags = PASSMOB
|
||||
|
||||
radio_key = /obj/item/encryptionkey/headset_service //doesn't have security key
|
||||
radio_channel = "Service" //Doesn't even use the radio anyway.
|
||||
bot_type = HONK_BOT
|
||||
model = "Honkbot"
|
||||
bot_core_type = /obj/machinery/bot_core/honkbot
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
status_flags = (CANPUSH | CANSTUN)
|
||||
|
||||
radio_key = /obj/item/encryptionkey/headset_med
|
||||
radio_channel = "Medical"
|
||||
radio_channel = RADIO_CHANNEL_MEDICAL
|
||||
|
||||
bot_type = MED_BOT
|
||||
model = "Medibot"
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
|
||||
radio_key = /obj/item/encryptionkey/headset_cargo
|
||||
radio_channel = "Supply"
|
||||
radio_channel = RADIO_CHANNEL_SUPPLY
|
||||
|
||||
bot_type = MULE_BOT
|
||||
model = "MULE"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
pass_flags = PASSMOB
|
||||
|
||||
radio_key = /obj/item/encryptionkey/secbot //AI Priv + Security
|
||||
radio_channel = "Security" //Security channel
|
||||
radio_channel = RADIO_CHANNEL_SECURITY //Security channel
|
||||
bot_type = SEC_BOT
|
||||
model = "Securitron"
|
||||
bot_core_type = /obj/machinery/bot_core/secbot
|
||||
@@ -61,7 +61,7 @@
|
||||
/mob/living/simple_animal/bot/secbot/pingsky
|
||||
name = "Officer Pingsky"
|
||||
desc = "It's Officer Pingsky! Delegated to satellite guard duty for harbouring anti-human sentiment."
|
||||
radio_channel = "AI Private"
|
||||
radio_channel = RADIO_CHANNEL_AI_PRIVATE
|
||||
|
||||
/mob/living/simple_animal/bot/secbot/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -241,23 +241,23 @@
|
||||
clearlist(available_channels)
|
||||
for(var/ch in headset_to_add.channels)
|
||||
switch(ch)
|
||||
if("Engineering")
|
||||
available_channels.Add(":e")
|
||||
if("Command")
|
||||
available_channels.Add(":c")
|
||||
if("Security")
|
||||
available_channels.Add(":s")
|
||||
if("Science")
|
||||
available_channels.Add(":n")
|
||||
if("Medical")
|
||||
available_channels.Add(":m")
|
||||
if("Supply")
|
||||
available_channels.Add(":u")
|
||||
if("Service")
|
||||
available_channels.Add(":v")
|
||||
if(RADIO_CHANNEL_ENGINEERING)
|
||||
available_channels.Add(RADIO_TOKEN_ENGINEERING)
|
||||
if(RADIO_CHANNEL_COMMAND)
|
||||
available_channels.Add(RADIO_TOKEN_COMMAND)
|
||||
if(RADIO_CHANNEL_SECURITY)
|
||||
available_channels.Add(RADIO_TOKEN_SECURITY)
|
||||
if(RADIO_CHANNEL_SCIENCE)
|
||||
available_channels.Add(RADIO_TOKEN_SCIENCE)
|
||||
if(RADIO_CHANNEL_MEDICAL)
|
||||
available_channels.Add(RADIO_TOKEN_MEDICAL)
|
||||
if(RADIO_CHANNEL_SUPPLY)
|
||||
available_channels.Add(RADIO_TOKEN_SUPPLY)
|
||||
if(RADIO_CHANNEL_SERVICE)
|
||||
available_channels.Add(RADIO_TOKEN_SERVICE)
|
||||
|
||||
if(headset_to_add.translate_binary)
|
||||
available_channels.Add(":b")
|
||||
available_channels.Add(MODE_TOKEN_BINARY)
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#define COOLDOWN_MEME 300
|
||||
#define COOLDOWN_NONE 100
|
||||
|
||||
/obj/item/organ/vocal_cords //organs that are activated through speech with the :x channel
|
||||
/obj/item/organ/vocal_cords //organs that are activated through speech with the :x/MODE_KEY_VOCALCORDS channel
|
||||
name = "vocal cords"
|
||||
icon_state = "appendix"
|
||||
zone = BODY_ZONE_PRECISE_MOUTH
|
||||
|
||||
Reference in New Issue
Block a user