diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index 5cd3bb7bf77..0287ed1fef8 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -79,6 +79,9 @@ Think through your actions and make the roleplay immersive! Please remember all \ rules aside from those without explicit exceptions apply to antagonists." + /// Sound to play when a player becomes an antagonist + var/welcome_sound = null + // Map template that antag needs to load before spawning. Nulled after it's loaded. var/datum/map_template/base_to_load diff --git a/code/game/antagonist/antagonist_create.dm b/code/game/antagonist/antagonist_create.dm index 6a0dd2a5d8b..72f1e23dc14 100644 --- a/code/game/antagonist/antagonist_create.dm +++ b/code/game/antagonist/antagonist_create.dm @@ -58,6 +58,8 @@ // Basic intro text. to_chat(player.current, "You are a [role_text]!") + if(welcome_sound) + sound_to(player.current, welcome_sound) if(leader_welcome_text && player == leader) to_chat(player.current, "[get_leader_welcome_text(player.current)]") else @@ -75,7 +77,7 @@ /datum/antagonist/proc/set_antag_name(var/mob/living/player) // Choose a name, if any. - var/newname = sanitize(input(player, "You are a [role_text]. Would you like to change your name to something else?", "Name change") as null|text, MAX_NAME_LEN) + var/newname = sanitizeName(input(player, "You are a [role_text]. Would you like to change your name to something else?", "Name change") as null|text, MAX_NAME_LEN, TRUE) if (newname) player.real_name = newname player.SetName(player.real_name) diff --git a/code/game/antagonist/outsider/commando.dm b/code/game/antagonist/outsider/commando.dm index 0c74257c258..77dcefd237a 100644 --- a/code/game/antagonist/outsider/commando.dm +++ b/code/game/antagonist/outsider/commando.dm @@ -8,6 +8,7 @@ GLOBAL_DATUM_INIT(commandos, /datum/antagonist/deathsquad/mercenary, new) welcome_text = "You are in the employ of a criminal syndicate hostile to corporate interests." id_type = /obj/item/card/id/centcom/ERT flags = ANTAG_RANDOM_EXCEPTED + welcome_sound = 'sound/misc/antag_alerts/operative_alert.ogg' hard_cap = 4 hard_cap_round = 8 diff --git a/code/game/antagonist/outsider/deathsquad.dm b/code/game/antagonist/outsider/deathsquad.dm index 84855d908b1..5fbaec443c7 100644 --- a/code/game/antagonist/outsider/deathsquad.dm +++ b/code/game/antagonist/outsider/deathsquad.dm @@ -9,6 +9,7 @@ GLOBAL_DATUM_INIT(deathsquad, /datum/antagonist/deathsquad, new) flags = ANTAG_OVERRIDE_JOB | ANTAG_OVERRIDE_MOB | ANTAG_HAS_LEADER | ANTAG_RANDOM_EXCEPTED default_access = list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage) antaghud_indicator = "huddeathsquad" + welcome_sound = 'sound/misc/antag_alerts/operative_alert.ogg' hard_cap = 4 hard_cap_round = 8 diff --git a/code/game/antagonist/outsider/mercenary.dm b/code/game/antagonist/outsider/mercenary.dm index 24a201bded0..a15ebeae9ec 100644 --- a/code/game/antagonist/outsider/mercenary.dm +++ b/code/game/antagonist/outsider/mercenary.dm @@ -10,6 +10,7 @@ GLOBAL_DATUM_INIT(mercs, /datum/antagonist/mercenary, new) welcome_text = "To speak on the strike team's private channel use :t." flags = ANTAG_VOTABLE | ANTAG_OVERRIDE_JOB | ANTAG_OVERRIDE_MOB | ANTAG_CLEAR_EQUIPMENT | ANTAG_CHOOSE_NAME | ANTAG_SET_APPEARANCE | ANTAG_HAS_LEADER antaghud_indicator = "hudoperative" + welcome_sound = 'sound/misc/antag_alerts/operative_alert.ogg' hard_cap = 4 hard_cap_round = 8 diff --git a/code/game/antagonist/outsider/wizard.dm b/code/game/antagonist/outsider/wizard.dm index 1808d33a65a..9ca6bdf2821 100644 --- a/code/game/antagonist/outsider/wizard.dm +++ b/code/game/antagonist/outsider/wizard.dm @@ -8,6 +8,7 @@ GLOBAL_DATUM_INIT(wizards, /datum/antagonist/wizard, new) welcome_text = "You will find a list of available spells in your spell book. Choose your magic arsenal carefully.
In your pockets you will find a teleport scroll. Use it as needed." flags = ANTAG_OVERRIDE_JOB | ANTAG_OVERRIDE_MOB | ANTAG_CLEAR_EQUIPMENT | ANTAG_CHOOSE_NAME | ANTAG_VOTABLE | ANTAG_SET_APPEARANCE antaghud_indicator = "hudwizard" + welcome_sound = 'sound/misc/antag_alerts/wizard_alert.ogg' hard_cap = 1 hard_cap_round = 3 @@ -125,4 +126,4 @@ Made a proc so this is not repeated 14 (or more) times.*/ if(!is_wiz_garb(src.head) && (!species.hud || (slot_head in src.species.hud.equip_slots))) to_chat(src, "I don't feel strong enough without my hat.") return 0 - return 1 \ No newline at end of file + return 1 diff --git a/code/game/antagonist/station/changeling.dm b/code/game/antagonist/station/changeling.dm index c4ea4ac8c54..2dd2b3edd25 100644 --- a/code/game/antagonist/station/changeling.dm +++ b/code/game/antagonist/station/changeling.dm @@ -8,6 +8,7 @@ GLOBAL_DATUM_INIT(changelings, /datum/antagonist/changeling, new) blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/submap) protected_jobs = list(/datum/job/officer, /datum/job/warden, /datum/job/detective, /datum/job/captain, /datum/job/hos) welcome_text = "Use say \"%LANGUAGE_PREFIX%g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them." + welcome_sound = 'sound/misc/antag_alerts/changeling_alert.ogg' flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE antaghud_indicator = "hudchangeling" diff --git a/code/game/antagonist/station/cultist.dm b/code/game/antagonist/station/cultist.dm index b7584021011..0b62887d4f6 100644 --- a/code/game/antagonist/station/cultist.dm +++ b/code/game/antagonist/station/cultist.dm @@ -30,6 +30,7 @@ GLOBAL_DATUM_INIT(cult, /datum/antagonist/cultist, new) feedback_tag = "cult_objective" antag_indicator = "hudcultist" welcome_text = "You have a tome in your possession; one that will help you start the cult. Use it well and remember - there are others." + welcome_sound = 'sound/misc/antag_alerts/cult_alert.ogg' victory_text = "The cult wins! It has succeeded in serving its dark masters!" loss_text = "The staff managed to stop the cult!" victory_feedback_tag = "win - cult win" diff --git a/code/game/antagonist/station/revolutionary.dm b/code/game/antagonist/station/revolutionary.dm index 23e6c954928..006bdb45e89 100644 --- a/code/game/antagonist/station/revolutionary.dm +++ b/code/game/antagonist/station/revolutionary.dm @@ -14,6 +14,7 @@ GLOBAL_DATUM_INIT(revs, /datum/antagonist/revolutionary, new) flags = ANTAG_SUSPICIOUS | ANTAG_VOTABLE antaghud_indicator = "hud_rev" skill_setter = /datum/antag_skill_setter/station + welcome_sound = 'sound/misc/antag_alerts/revolutionary_alert.ogg' hard_cap = 2 hard_cap_round = 4 diff --git a/code/game/antagonist/station/rogue_ai.dm b/code/game/antagonist/station/rogue_ai.dm index c0214a1e603..ef0cbb988fd 100644 --- a/code/game/antagonist/station/rogue_ai.dm +++ b/code/game/antagonist/station/rogue_ai.dm @@ -7,6 +7,7 @@ GLOBAL_DATUM_INIT(malf, /datum/antagonist/rogue_ai, new) mob_path = /mob/living/silicon/ai landmark_id = "AI" welcome_text = "You are malfunctioning! You do not have to follow any laws." + welcome_sound = 'sound/misc/antag_alerts/malf_alert.ogg' victory_text = "The AI has taken control of all systems." loss_text = "The AI has been shut down!" flags = ANTAG_VOTABLE | ANTAG_OVERRIDE_MOB | ANTAG_OVERRIDE_JOB | ANTAG_CHOOSE_NAME diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm index a4e1dfc50fb..202092eb702 100644 --- a/code/game/antagonist/station/traitor.dm +++ b/code/game/antagonist/station/traitor.dm @@ -15,6 +15,7 @@ GLOBAL_DATUM_INIT(traitors, /datum/antagonist/traitor, new) protected_jobs = list(/datum/job/officer, /datum/job/warden, /datum/job/detective, /datum/job/captain, /datum/job/lawyer, /datum/job/hos) flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE skill_setter = /datum/antag_skill_setter/station + welcome_sound = 'sound/misc/antag_alerts/traitor_alert.ogg' /datum/antagonist/traitor/get_extra_panel_options(var/datum/mind/player) return "\[set crystals\]\[spawn uplink\]" diff --git a/sound/misc/antag_alerts/changeling_alert.ogg b/sound/misc/antag_alerts/changeling_alert.ogg new file mode 100644 index 00000000000..1132ccca29c Binary files /dev/null and b/sound/misc/antag_alerts/changeling_alert.ogg differ diff --git a/sound/misc/antag_alerts/cult_alert.ogg b/sound/misc/antag_alerts/cult_alert.ogg new file mode 100644 index 00000000000..9fa22df51d3 Binary files /dev/null and b/sound/misc/antag_alerts/cult_alert.ogg differ diff --git a/sound/misc/antag_alerts/malf_alert.ogg b/sound/misc/antag_alerts/malf_alert.ogg new file mode 100644 index 00000000000..dc55188bec6 Binary files /dev/null and b/sound/misc/antag_alerts/malf_alert.ogg differ diff --git a/sound/misc/antag_alerts/operative_alert.ogg b/sound/misc/antag_alerts/operative_alert.ogg new file mode 100644 index 00000000000..7c2774f0a0b Binary files /dev/null and b/sound/misc/antag_alerts/operative_alert.ogg differ diff --git a/sound/misc/antag_alerts/revolutionary_alert.ogg b/sound/misc/antag_alerts/revolutionary_alert.ogg new file mode 100644 index 00000000000..be8e4a74985 Binary files /dev/null and b/sound/misc/antag_alerts/revolutionary_alert.ogg differ diff --git a/sound/misc/antag_alerts/traitor_alert.ogg b/sound/misc/antag_alerts/traitor_alert.ogg new file mode 100644 index 00000000000..ca0efa0ea0f Binary files /dev/null and b/sound/misc/antag_alerts/traitor_alert.ogg differ diff --git a/sound/misc/antag_alerts/wizard_alert.ogg b/sound/misc/antag_alerts/wizard_alert.ogg new file mode 100644 index 00000000000..3ee88a7ebcb Binary files /dev/null and b/sound/misc/antag_alerts/wizard_alert.ogg differ