Skip to content

Commit

Permalink
Mu Radio, Mu Messages and Mu Faxes. (MrMelbert#443)
Browse files Browse the repository at this point in the history
* Mu Radio, Mu Messages and Mu Faxes

* Adds in Mu command reports

* Reviews, adds in the Mu channel to the radio channels constants.
  • Loading branch information
CRITAWAKETS authored Apr 28, 2024
1 parent dbbd665 commit 81c3faa
Show file tree
Hide file tree
Showing 34 changed files with 213 additions and 18 deletions.
1 change: 1 addition & 0 deletions code/__DEFINES/admin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
#define ADMIN_KICK(user) "(<a href='?_src_=holder;[HrefToken(forceGlobal = TRUE)];boot2=[REF(user)]'>KICK</a>)"
#define ADMIN_CENTCOM_REPLY(user) "(<a href='?_src_=holder;[HrefToken(forceGlobal = TRUE)];CentComReply=[REF(user)]'>RPLY</a>)"
#define ADMIN_SYNDICATE_REPLY(user) "(<a href='?_src_=holder;[HrefToken(forceGlobal = TRUE)];SyndicateReply=[REF(user)]'>RPLY</a>)"
#define ADMIN_MU_REPLY(user) "(<a href='?_src_=holder;[HrefToken(forceGlobal = TRUE)];MuReply=[REF(user)]'>RPLY</a>)" //NON-MODULE CHANGE
#define ADMIN_SC(user) "(<a href='?_src_=holder;[HrefToken(forceGlobal = TRUE)];adminspawncookie=[REF(user)]'>SC</a>)"
#define ADMIN_SMITE(user) "(<a href='?_src_=holder;[HrefToken(forceGlobal = TRUE)];adminsmite=[REF(user)]'>SMITE</a>)"
#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]"
Expand Down
8 changes: 8 additions & 0 deletions code/__DEFINES/radio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,14 @@
#define FREQ_ENGINEERING 1357 // Engineering comms frequency, orange
#define FREQ_SECURITY 1359 // Security comms frequency, red

//NON-MODULE CHANGE START : Mu radio, f is used because F, K, Q and W are the only available radio keys.
#define RADIO_CHANNEL_MU "Mu"
#define RADIO_KEY_MU "f"
#define RADIO_TOKEN_MU ":f"

#define FREQ_MU 1401
//NON-MODULE CHANGE END

#define FREQ_HOLOGRID_SOLUTION 1433
#define FREQ_STATUS_DISPLAYS 1435

Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/span.dm
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@
#define span_minorannounce(str) ("<span class='minorannounce'>" + str + "</span>")
#define span_minoralert(str) ("<span class='minoralert'>" + str + "</span>")
#define span_monkey(str) ("<span class='monkey'>" + str + "</span>")
#define span_muradio(str) ("<span class='muradio'>" + str + "</span>") //NON-MODULE CHANGE
#define span_name(str) ("<span class='name'>" + str + "</span>")
#define span_narsie(str) ("<span class='narsie'>" + str + "</span>")
#define span_narsiesmall(str) ("<span class='narsiesmall'>" + str + "</span>")
Expand Down
4 changes: 4 additions & 0 deletions code/controllers/subsystem/blackbox.dm
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,10 @@ SUBSYSTEM_DEF(blackbox)
record_feedback("tally", "radio_usage", 1, "supply")
if(FREQ_CENTCOM)
record_feedback("tally", "radio_usage", 1, "centcom")
//NON-MODULE CHANGE START
if(FREQ_MU)
record_feedback("tally", "radio_usage", 1, "mu")
//NON-MODULE CHANGE END
if(FREQ_AI_PRIVATE)
record_feedback("tally", "radio_usage", 1, "ai private")
if(FREQ_CTF_RED)
Expand Down
2 changes: 2 additions & 0 deletions code/game/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ GLOBAL_LIST_INIT(radiochannels, list(
RADIO_CHANNEL_ENGINEERING = FREQ_ENGINEERING,
RADIO_CHANNEL_SECURITY = FREQ_SECURITY,
RADIO_CHANNEL_CENTCOM = FREQ_CENTCOM,
RADIO_CHANNEL_MU = FREQ_MU, //NON-MODULE CHANGE
RADIO_CHANNEL_SYNDICATE = FREQ_SYNDICATE,
RADIO_CHANNEL_UPLINK = FREQ_UPLINK,
RADIO_CHANNEL_SUPPLY = FREQ_SUPPLY,
Expand All @@ -118,6 +119,7 @@ GLOBAL_LIST_INIT(reverseradiochannels, list(
"[FREQ_ENGINEERING]" = RADIO_CHANNEL_ENGINEERING,
"[FREQ_SECURITY]" = RADIO_CHANNEL_SECURITY,
"[FREQ_CENTCOM]" = RADIO_CHANNEL_CENTCOM,
"[FREQ_MU]" = RADIO_CHANNEL_MU, // NON-MODULE CHANGE
"[FREQ_SYNDICATE]" = RADIO_CHANNEL_SYNDICATE,
"[FREQ_UPLINK]" = RADIO_CHANNEL_UPLINK,
"[FREQ_SUPPLY]" = RADIO_CHANNEL_SUPPLY,
Expand Down
19 changes: 19 additions & 0 deletions code/game/machinery/computer/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,23 @@
usr.log_talk(message, LOG_SAY, tag = "message to [associates]")
deadchat_broadcast(" has messaged [associates], \"[message]\" at [span_name("[get_area_name(usr, TRUE)]")].", span_name("[usr.real_name]"), usr, message_type = DEADCHAT_ANNOUNCEMENT)
COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN)
//NON-MODULE CHANGE START
if ("messageMu")
if (!authenticated_as_non_silicon_captain(usr))
return
if (!COOLDOWN_FINISHED(src, important_action_cooldown))
return

playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE)
var/message = trim(html_encode(params["message"]), MAX_MESSAGE_LEN)

message_mu(message, usr)
to_chat(usr, span_notice("Message transmitted to Aristocracy of Mu."))

usr.log_talk(message, LOG_SAY, tag = "message to Mu")
deadchat_broadcast(" has messaged Mu, \"[message]\" at [span_name("[get_area_name(usr, TRUE)]")].", span_name("[usr.real_name]"), usr, message_type = DEADCHAT_ANNOUNCEMENT)
COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN)
//NON-MODULE CHANGE END
if ("purchaseShuttle")
var/can_buy_shuttles_or_fail_reason = can_buy_shuttles(usr)
if (can_buy_shuttles_or_fail_reason != TRUE)
Expand Down Expand Up @@ -538,6 +555,7 @@
data["canBuyShuttles"] = can_buy_shuttles(user)
data["canMakeAnnouncement"] = FALSE
data["canMessageAssociates"] = FALSE
data["canMessageMu"] = FALSE //NON-MODULE CHANGE
data["canRecallShuttles"] = !issilicon(user)
data["canRequestNuke"] = FALSE
data["canSendToSectors"] = FALSE
Expand All @@ -556,6 +574,7 @@

if (authenticated_as_non_silicon_captain(user))
data["canMessageAssociates"] = TRUE
data["canMessageMu"] = TRUE //NON-MODULE CHANGE
data["canRequestNuke"] = TRUE

if (can_send_messages_to_other_sectors(user))
Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/telecomms/machine_interactions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
var/list/banned_frequencies = list(
FREQ_SYNDICATE,
FREQ_CENTCOM,
FREQ_MU, //NON-MODULE CHANGE
FREQ_CTF_RED,
FREQ_CTF_YELLOW,
FREQ_CTF_GREEN,
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/devices/radio/headset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
RADIO_CHANNEL_ENGINEERING = RADIO_TOKEN_ENGINEERING,
RADIO_CHANNEL_SECURITY = RADIO_TOKEN_SECURITY,
RADIO_CHANNEL_CENTCOM = RADIO_TOKEN_CENTCOM,
RADIO_CHANNEL_MU = RADIO_TOKEN_MU, //NON-MODULE CHANGE
RADIO_CHANNEL_SYNDICATE = RADIO_TOKEN_SYNDICATE,
RADIO_CHANNEL_SUPPLY = RADIO_TOKEN_SUPPLY,
RADIO_CHANNEL_SERVICE = RADIO_TOKEN_SERVICE,
Expand Down
3 changes: 2 additions & 1 deletion code/game/objects/items/devices/radio/radio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,8 @@
var/datum/signal/subspace/vocal/signal = new(src, freq, speaker, language, radio_message, spans, message_mods)

// Independent radios, on the CentCom frequency, reach all independent radios
if (independent && (freq == FREQ_CENTCOM || freq == FREQ_CTF_RED || freq == FREQ_CTF_BLUE || freq == FREQ_CTF_GREEN || freq == FREQ_CTF_YELLOW))
//NON-MODULE CHANGE : Adds Mu to the list of frequencies
if (independent && (freq == FREQ_CENTCOM || freq == FREQ_MU || freq == FREQ_CTF_RED || freq == FREQ_CTF_BLUE || freq == FREQ_CTF_GREEN || freq == FREQ_CTF_YELLOW))
signal.data["compression"] = 0
signal.transmission_method = TRANSMISSION_SUPERSPACE
signal.levels = list(0)
Expand Down
1 change: 1 addition & 0 deletions code/game/say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ GLOBAL_LIST_INIT(freqtospan, list(
"[FREQ_SYNDICATE]" = "syndradio",
"[FREQ_UPLINK]" = "syndradio", // this probably shouldnt appear ingame
"[FREQ_CENTCOM]" = "centcomradio",
"[FREQ_MU]" = "muradio",
"[FREQ_CTF_RED]" = "redteamradio",
"[FREQ_CTF_BLUE]" = "blueteamradio",
"[FREQ_CTF_GREEN]" = "greenteamradio",
Expand Down
9 changes: 9 additions & 0 deletions code/modules/admin/topic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1003,6 +1003,15 @@
var/mob/M = locate(href_list["SyndicateReply"])
usr.client.admin_headset_message(M, RADIO_CHANNEL_SYNDICATE)

//NON-MODULE CHANGE START
else if(href_list["MuReply"])
if(!check_rights(R_ADMIN))
return

var/mob/M = locate(href_list["MuReply"])
usr.client.admin_headset_message(M, RADIO_CHANNEL_MU)
//NON-MODULE CHANGE END

else if(href_list["HeadsetMessage"])
if(!check_rights(R_ADMIN))
return
Expand Down
14 changes: 12 additions & 2 deletions code/modules/admin/verbs/adminevents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
return

if (!sender)
sender = input("Who is the message from?", "Sender") as null|anything in list(RADIO_CHANNEL_CENTCOM,RADIO_CHANNEL_SYNDICATE)
sender = input("Who is the message from?", "Sender") as null|anything in list(RADIO_CHANNEL_CENTCOM,RADIO_CHANNEL_SYNDICATE,RADIO_CHANNEL_MU) //NON-MODULE CHANGE: Adds in the Mu Channel
if(!sender)
return

Expand All @@ -69,7 +69,17 @@
log_directed_talk(mob, target, input, LOG_ADMIN, "reply")
message_admins("[key_name_admin(src)] replied to [key_name_admin(target)]'s [sender] message with: \"[input]\"")
target.balloon_alert(target, "you hear a voice")
to_chat(target, span_hear("You hear something crackle in your [human_recipient ? "ears" : "radio receiver"] for a moment before a voice speaks. \"Please stand by for a message from [sender == "Syndicate" ? "your benefactor" : "Central Command"]. Message as follows[sender == "Syndicate" ? ", agent." : ":"] <b>[input].</b> Message ends.\""), confidential = TRUE)
// NON-MODULE CHANGE START: have to turn this into a switch
var/stylized_sender_name = ""
switch(sender)
if("CentCom")
stylized_sender_name = "Central Command"
if("Syndicate")
stylized_sender_name = "your benefactor"
if("Mu")
stylized_sender_name = "the Aristocracy of Mu"
to_chat(target, span_hear("You hear something crackle in your [human_recipient ? "ears" : "radio receiver"] for a moment before a voice speaks. \"Please stand by for a message from [stylized_sender_name]. Message as follows[sender == "Syndicate" ? ", agent." : ":"] <b>[input].</b> Message ends.\""), confidential = TRUE)
// NON-MODULE CHANGE END

BLACKBOX_LOG_ADMIN_VERB("Headset Message")

Expand Down
6 changes: 4 additions & 2 deletions code/modules/admin/verbs/commandreport.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
/// Preset central command names to chose from for centcom reports.
#define CENTCOM_PRESET "Central Command"
#define SYNDICATE_PRESET "The Syndicate"
#define MU_PRESET "Aristocracy of Mu" //NON-MODULE CHANGE
#define WIZARD_PRESET "The Wizard Federation"
#define CUSTOM_PRESET "Custom Command Name"

Expand Down Expand Up @@ -55,7 +56,7 @@
/// The subheader to include when sending the announcement. Keep blank to not include a subheader
var/subheader = ""
/// A static list of preset names that can be chosen.
var/list/preset_names = list(CENTCOM_PRESET, SYNDICATE_PRESET, WIZARD_PRESET, CUSTOM_PRESET)
var/list/preset_names = list(CENTCOM_PRESET, SYNDICATE_PRESET, MU_PRESET, WIZARD_PRESET, CUSTOM_PRESET) //NON-MODULE CHANGE

/datum/command_report_menu/New(mob/user)
ui_user = user
Expand Down Expand Up @@ -154,7 +155,7 @@
if(chosen_color == "default")
if(command_name == SYNDICATE_PRESET)
chosen_color = "red"
else if(command_name == WIZARD_PRESET)
else if(command_name == WIZARD_PRESET || command_name == MU_PRESET) //NON-MODULE CHANGE
chosen_color = "purple"
priority_announce(command_report_content, subheader == ""? null : subheader, report_sound, has_important_message = TRUE, color_override = chosen_color)

Expand All @@ -171,5 +172,6 @@

#undef CENTCOM_PRESET
#undef SYNDICATE_PRESET
#undef MU_PRESET //NON-MODULE CHANGE
#undef WIZARD_PRESET
#undef CUSTOM_PRESET
14 changes: 14 additions & 0 deletions code/modules/admin/verbs/pray.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,20 @@
for(var/obj/machinery/computer/communications/console in GLOB.shuttle_caller_list)
console.override_cooldown()

//NON-MODULE CHANGE START
/// Used by communications consoles to message the Mu Aristocracy
/proc/message_mu(text, mob/sender)
var/msg = copytext_char(sanitize(text), 1, MAX_MESSAGE_LEN)
GLOB.requests.message_mu(sender.client, msg)
msg = span_adminnotice("<b><font color=plum>MU:</font>[ADMIN_FULLMONTY(sender)] [ADMIN_MU_REPLY(sender)]:</b> [msg]")
for(var/client/staff as anything in GLOB.admins)
if(staff?.prefs.read_preference(/datum/preference/toggle/comms_notification))
SEND_SOUND(staff, sound('sound/misc/server-ready.ogg'))
to_chat(GLOB.admins, msg, confidential = TRUE)
for(var/obj/machinery/computer/communications/console in GLOB.shuttle_caller_list)
console.override_cooldown()
//NON-MODULE CHANGE END

/// Used by communications consoles to request the nuclear launch codes
/proc/nuke_request(text, mob/sender)
var/msg = copytext_char(sanitize(text), 1, MAX_MESSAGE_LEN)
Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/living/living_say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
RADIO_KEY_SYNDICATE = RADIO_CHANNEL_SYNDICATE,
RADIO_KEY_UPLINK = RADIO_CHANNEL_UPLINK,
RADIO_KEY_CENTCOM = RADIO_CHANNEL_CENTCOM,
RADIO_KEY_MU = RADIO_CHANNEL_MU, //NON-MODULE CHANGE

// Admin
MODE_KEY_ADMIN = MODE_ADMIN,
Expand Down
28 changes: 27 additions & 1 deletion code/modules/requests/request_manager.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
#define REQUEST_CENTCOM "request_centcom"
/// Requests for the Syndicate
#define REQUEST_SYNDICATE "request_syndicate"
/// Requests for Mu
#define REQUEST_MU "request_mu" //NON-MODULE CHANGE
/// Requests for the nuke code
#define REQUEST_NUKE "request_nuke"
/// Requests somebody from fax
Expand Down Expand Up @@ -89,6 +91,18 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new)
/datum/request_manager/proc/message_syndicate(client/C, message)
request_for_client(C, REQUEST_SYNDICATE, message)

//NON-MODULE CHANGE START
/**
* Creates a request for a Syndicate message
*
* Arguments:
* * C - The client who is sending the request
* * message - The message
*/
/datum/request_manager/proc/message_mu(client/C, message)
request_for_client(C, REQUEST_MU, message)
//NON-MODULE CHANGE END

/**
* Creates a request for the nuclear self destruct codes
*
Expand Down Expand Up @@ -216,7 +230,18 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new)
to_chat(usr, "Cannot reply to a prayer", confidential = TRUE)
return TRUE
var/mob/M = request.owner?.mob
usr.client.admin_headset_message(M, request.req_type == REQUEST_SYNDICATE ? RADIO_CHANNEL_SYNDICATE : RADIO_CHANNEL_CENTCOM)
//NON-MODULE CHANGE START
var/channel_to_reply_with = RADIO_CHANNEL_CENTCOM
switch(request.req_type)
if(REQUEST_CENTCOM)
channel_to_reply_with = RADIO_CHANNEL_CENTCOM
if(REQUEST_SYNDICATE)
channel_to_reply_with = RADIO_CHANNEL_SYNDICATE
if(REQUEST_MU)
channel_to_reply_with = RADIO_CHANNEL_MU

usr.client.admin_headset_message(M, channel_to_reply_with)
//NON-MODULE CHANGE END
return TRUE
if ("setcode")
if (request.req_type != REQUEST_NUKE)
Expand Down Expand Up @@ -267,6 +292,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new)
#undef REQUEST_PRAYER
#undef REQUEST_CENTCOM
#undef REQUEST_SYNDICATE
#undef REQUEST_MU
#undef REQUEST_NUKE
#undef REQUEST_FAX
#undef REQUEST_INTERNET_SOUND
3 changes: 2 additions & 1 deletion interface/stylesheet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// If you modify this file you ALSO need to modify tgui/packages/tgui-panel/styles/tgchat/chat-light.scss and chat-dark.scss
// BUT you have to use PX font sizes with are on a x8 scale of these font sizes
// Sample font-size: DM: 8 CSS: 64px

// NON-MODULE CHANGE: Mu radio added in
/client/script = {"<style>
body {font-family: Verdana, sans-serif;}

Expand Down Expand Up @@ -50,6 +50,7 @@ em {font-style: normal; font-weight: bold;}
.servradio {color: #6eaa2c;}
.syndradio {color: #6d3f40;}
.centcomradio {color: #686868;}
.muradio {color: #9d77a3;}
.aiprivradio {color: #ff00ff;}
.redteamradio {color: #ff0000;}
.blueteamradio {color: #0000ff;}
Expand Down
3 changes: 2 additions & 1 deletion maplestation_modules/code/__DEFINES/paperwork_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@
/// String defines for admin fax machines.
#define SYNDICATE_FAX_MACHINE "the Syndicate"
#define CENTCOM_FAX_MACHINE "Central Command"
#define MU_FAX_MACHINE "Aristocracy of Mu"

/// Global list of all admin fax machine destinations
GLOBAL_LIST_INIT(admin_fax_destinations, list(SYNDICATE_FAX_MACHINE, CENTCOM_FAX_MACHINE))
GLOBAL_LIST_INIT(admin_fax_destinations, list(SYNDICATE_FAX_MACHINE, CENTCOM_FAX_MACHINE, MU_FAX_MACHINE))

/// Text macro for replying to a message with a paper fax.
#define ADMIN_FAX_REPLY(machine) "(<a href='?_src_=holder;[HrefToken(TRUE)];FaxReply=[REF(machine)]'>FAX</a>)"
3 changes: 2 additions & 1 deletion maplestation_modules/code/game/machinery/fax_machine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ GLOBAL_LIST_EMPTY(fax_machines)
/// Fax machine. Sends messages, receives messages, sends paperwork, receives paperwork.
/obj/machinery/fax
name = "fax machine"
desc = "A machine made to send copies of papers to other departments or Central Command. Bureaucratic."
desc = "A machine made to send copies of papers to other departments, Central Command, or the Aristocracy of Mu. Bureaucratic."
icon = 'icons/obj/machines/fax.dmi'
base_icon_state = "fax"
icon_state = "fax"
Expand Down Expand Up @@ -195,6 +195,7 @@ GLOBAL_LIST_EMPTY(fax_machines)
var/admin_destination = (obj_flags & EMAGGED) ? SYNDICATE_FAX_MACHINE : CENTCOM_FAX_MACHINE
var/list/possible_destinations = list()
possible_destinations += admin_destination
possible_destinations += MU_FAX_MACHINE
for(var/obj/machinery/fax/machine as anything in GLOB.fax_machines)
if(machine == src)
continue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,11 @@
channels = list(RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_cube
greyscale_colors = "#9d77a3#fdc052"

/obj/item/encryptionkey/headset_mu
name = "\improper Mu radio encryption key"
icon_state = "cypherkey_centcom"
independent = TRUE
channels = list(RADIO_CHANNEL_MU = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_centcom
greyscale_colors = "#9d77a3#fdc052"
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,27 @@
/obj/item/radio/headset/heads/noble_ambassador
name = "\proper the noble ambassador's headset"
desc = "The headset of the ambassador from Mu, responsible for upholding their laws and ensuring the crew's wellbeing."
worn_icon = 'maplestation_modules/icons/mob/clothing/ears.dmi'
worn_icon_state = "noble_headset"
icon = 'maplestation_modules/icons/obj/radio.dmi'
icon_state = "noble_headset"
keyslot = /obj/item/encryptionkey/heads/noble_ambassador

/obj/item/radio/headset/mu
name = "\proper Mu headset"
desc = "The headset used by those from Mu."
worn_icon = 'maplestation_modules/icons/mob/clothing/ears.dmi'
worn_icon_state = "noble_headset"
icon = 'maplestation_modules/icons/obj/radio.dmi'
icon_state = "noble_headset"
keyslot = /obj/item/encryptionkey/headset_mu

/obj/item/radio/headset/mu/alt
name = "\proper Mu bowman headset"
desc = "A bowman headset used by internal agents from Mu. Has built-in ear protection."
worn_icon_state = "noble_headset_alt"
icon_state = "noble_headset_alt"

/obj/item/radio/headset/mu/alt/Initialize(mapload)
. = ..()
AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
Binary file added maplestation_modules/icons/mob/clothing/ears.dmi
Binary file not shown.
Binary file modified maplestation_modules/icons/obj/radio.dmi
Binary file not shown.
3 changes: 2 additions & 1 deletion tgui/packages/tgui-panel/chat/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,9 @@ export const MESSAGE_TYPES = [
type: MESSAGE_TYPE_RADIO,
name: 'Radio',
description: 'All departments of radio messages',
// NON-MODULE CHANGE : Mu Radio added in
selector:
'.alert, .minorannounce, .syndradio, .centcomradio, .aiprivradio, .comradio, .secradio, .gangradio, .engradio, .medradio, .sciradio, .suppradio, .servradio, .radio, .deptradio, .binarysay, .newscaster, .resonate, .abductor, .alien, .changeling',
'.alert, .minorannounce, .syndradio, .centcomradio, .muradio, .aiprivradio, .comradio, .secradio, .gangradio, .engradio, .medradio, .sciradio, .suppradio, .servradio, .radio, .deptradio, .binarysay, .newscaster, .resonate, .abductor, .alien, .changeling',
},
{
type: MESSAGE_TYPE_INFO,
Expand Down
Loading

0 comments on commit 81c3faa

Please sign in to comment.