From 297d7e7d9bf1e959128972e82cede0da8ec8ea53 Mon Sep 17 00:00:00 2001 From: EOBGames <58124831+EOBGames@users.noreply.github.com> Date: Fri, 31 Jan 2020 19:10:55 +0000 Subject: [PATCH] TG's Got the Pop Factor: The Singing Update (#49063) * Sing a lovely song * minor changes, ~ to %, and removal of specific logging * 512 support don't trust byond * oops --- code/__DEFINES/say.dm | 3 +++ code/game/atoms_movable.dm | 1 + .../goonchat/browserassets/css/browserOutput.css | 1 + .../browserassets/css/browserOutput_white.css | 1 + code/modules/language/aphasia.dm | 1 + code/modules/language/beachbum.dm | 1 + code/modules/language/buzzwords.dm | 1 + code/modules/language/calcic.dm | 1 + code/modules/language/common.dm | 1 + code/modules/language/draconic.dm | 1 + code/modules/language/drone.dm | 1 + code/modules/language/language.dm | 1 + code/modules/language/machine.dm | 1 + code/modules/language/moffic.dm | 1 + code/modules/language/monkey.dm | 1 + code/modules/language/mushroom.dm | 1 + code/modules/language/narsian.dm | 1 + code/modules/language/piratespeak.dm | 1 + code/modules/language/shadowtongue.dm | 1 + code/modules/language/slime.dm | 1 + code/modules/language/swarmer.dm | 1 + code/modules/language/sylvan.dm | 1 + code/modules/language/terrum.dm | 1 + code/modules/language/voltaic.dm | 1 + code/modules/language/xenocommon.dm | 1 + code/modules/mob/living/say.dm | 13 ++++++++++++- code/modules/mob/say.dm | 3 +++ interface/stylesheet.dm | 1 + strings/names/verbs.txt | 1 + 29 files changed, 44 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 417fe9316a5..0994e37686c 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -46,6 +46,8 @@ #define MODE_MONKEY "monkeyhive" +#define MODE_SING "%" + //Spans. Robot speech, italics, etc. Applied in compose_message(). #define SPAN_ROBOT "robot" #define SPAN_YELL "yell" @@ -55,6 +57,7 @@ #define SPAN_REALLYBIG "reallybig" #define SPAN_COMMAND "command_headset" #define SPAN_CLOWN "clown" +#define SPAN_SINGING "singing" //bitflag #defines for return value of the radio() proc. #define ITALICS 1 diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index c54b73e383c..deb849a33c2 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -16,6 +16,7 @@ var/verb_ask = "asks" var/verb_exclaim = "exclaims" var/verb_whisper = "whispers" + var/verb_sing = "sings" var/verb_yell = "yells" var/speech_span var/inertia_dir = 0 diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css index ed429018acc..49b8d7d6621 100644 --- a/code/modules/goonchat/browserassets/css/browserOutput.css +++ b/code/modules/goonchat/browserassets/css/browserOutput.css @@ -366,6 +366,7 @@ em {font-style: normal; font-weight: bold;} .greentext {color: #059223; font-size: 185%;} .redtext {color: #c51e1e; font-size: 185%;} .clown {color: #ff70c1; font-size: 160%; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} +.singing {font-family: "Trebuchet MS", cursive, sans-serif; font-style: italic;} .his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} .hypnophrase {color: #202020; font-weight: bold; animation: hypnocolor 1500ms infinite; animation-direction: alternate;} @keyframes hypnocolor { diff --git a/code/modules/goonchat/browserassets/css/browserOutput_white.css b/code/modules/goonchat/browserassets/css/browserOutput_white.css index a1f8fc1dbaf..4675926985e 100644 --- a/code/modules/goonchat/browserassets/css/browserOutput_white.css +++ b/code/modules/goonchat/browserassets/css/browserOutput_white.css @@ -364,6 +364,7 @@ h1.alert, h2.alert {color: #000000;} .greentext {color: #00FF00; font-size: 185%;} .redtext {color: #FF0000; font-size: 185%;} .clown {color: #FF69Bf; font-size: 160%; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} +.singing {font-family: "Trebuchet MS", cursive, sans-serif; font-style: italic;} .his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} .hypnophrase {color: #0d0d0d; font-weight: bold; animation: hypnocolor 1500ms infinite; animation-direction: alternate;} @keyframes hypnocolor { diff --git a/code/modules/language/aphasia.dm b/code/modules/language/aphasia.dm index 91f14f91118..e32b0ef46ca 100644 --- a/code/modules/language/aphasia.dm +++ b/code/modules/language/aphasia.dm @@ -5,6 +5,7 @@ ask_verb = "mumbles" whisper_verb = "mutters" exclaim_verb = "screams incoherently" + sing_verb = "gibbers" flags = LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD key = "i" syllables = list("m","n","gh","h","l","s","r","a","e","i","o","u") diff --git a/code/modules/language/beachbum.dm b/code/modules/language/beachbum.dm index 528e9a8da2f..73d134303c7 100644 --- a/code/modules/language/beachbum.dm +++ b/code/modules/language/beachbum.dm @@ -4,6 +4,7 @@ speech_verb = "mumbles" ask_verb = "grills" exclaim_verb = "hollers" + sing_verb = "parties" key = "u" space_chance = 85 default_priority = 90 diff --git a/code/modules/language/buzzwords.dm b/code/modules/language/buzzwords.dm index 72b5a87aa30..46165367ed8 100644 --- a/code/modules/language/buzzwords.dm +++ b/code/modules/language/buzzwords.dm @@ -4,6 +4,7 @@ speech_verb = "buzzes" ask_verb = "buzzes" exclaim_verb = "loudly buzzes" + sing_verb = "hums" key = "z" space_chance = 0 syllables = list( diff --git a/code/modules/language/calcic.dm b/code/modules/language/calcic.dm index 5ba660055d7..9b4ac1e16a8 100644 --- a/code/modules/language/calcic.dm +++ b/code/modules/language/calcic.dm @@ -5,6 +5,7 @@ ask_verb = "queries" exclaim_verb = "screeches" whisper_verb = "clicks" + sing_verb = "chimes" key = "b" space_chance = 10 syllables = list( diff --git a/code/modules/language/common.dm b/code/modules/language/common.dm index c00ab328ec1..045c28695af 100644 --- a/code/modules/language/common.dm +++ b/code/modules/language/common.dm @@ -4,6 +4,7 @@ desc = "The common galactic tongue." speech_verb = "says" whisper_verb = "whispers" + sing_verb = "sings" key = "0" flags = TONGUELESS_SPEECH | LANGUAGE_HIDE_ICON_IF_UNDERSTOOD default_priority = 100 diff --git a/code/modules/language/draconic.dm b/code/modules/language/draconic.dm index aaa998c2c0d..538fa06e741 100644 --- a/code/modules/language/draconic.dm +++ b/code/modules/language/draconic.dm @@ -4,6 +4,7 @@ speech_verb = "hisses" ask_verb = "hisses" exclaim_verb = "roars" + sing_verb = "sings" key = "o" flags = TONGUELESS_SPEECH space_chance = 40 diff --git a/code/modules/language/drone.dm b/code/modules/language/drone.dm index 390e0027cf8..23449c245e0 100644 --- a/code/modules/language/drone.dm +++ b/code/modules/language/drone.dm @@ -4,6 +4,7 @@ speech_verb = "chitters" ask_verb = "chitters inquisitively" exclaim_verb = "chitters loudly" + sing_verb = "chimes" spans = list(SPAN_ROBOT) key = "d" flags = NO_STUTTER diff --git a/code/modules/language/language.dm b/code/modules/language/language.dm index bf8087ad73c..edcdb583463 100644 --- a/code/modules/language/language.dm +++ b/code/modules/language/language.dm @@ -11,6 +11,7 @@ var/ask_verb = "asks" // Used when sentence ends in a ? var/exclaim_verb = "exclaims" // Used when sentence ends in a ! var/whisper_verb = "whispers" // Optional. When not specified speech_verb + quietly/softly is used instead. + var/sing_verb = "sings" // Used for singing. var/list/signlang_verb = list("signs", "gestures") // list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags var/key // Character used to speak in language // If key is null, then the language isn't real or learnable. diff --git a/code/modules/language/machine.dm b/code/modules/language/machine.dm index 4d88bcb4160..b5e0ead3f39 100644 --- a/code/modules/language/machine.dm +++ b/code/modules/language/machine.dm @@ -4,6 +4,7 @@ speech_verb = "whistles" ask_verb = "chirps" exclaim_verb = "whistles loudly" + sing_verb = "whistles melodically" spans = list(SPAN_ROBOT) key = "6" flags = NO_STUTTER diff --git a/code/modules/language/moffic.dm b/code/modules/language/moffic.dm index af0eeeb4c6f..2a5bc7b342d 100644 --- a/code/modules/language/moffic.dm +++ b/code/modules/language/moffic.dm @@ -4,6 +4,7 @@ speech_verb = "flutters" ask_verb = "flits" exclaim_verb = "flaps" + sing_verb = "hums" key = "m" space_chance = 10 syllables = list( diff --git a/code/modules/language/monkey.dm b/code/modules/language/monkey.dm index 3f19008754b..8c14a9d0970 100644 --- a/code/modules/language/monkey.dm +++ b/code/modules/language/monkey.dm @@ -4,6 +4,7 @@ speech_verb = "chimpers" ask_verb = "chimpers" exclaim_verb = "screeches" + sing_verb = "chimpers tunefully" key = "1" space_chance = 100 syllables = list("oop", "aak", "chee", "eek") diff --git a/code/modules/language/mushroom.dm b/code/modules/language/mushroom.dm index b896d11449c..97287ea54a2 100644 --- a/code/modules/language/mushroom.dm +++ b/code/modules/language/mushroom.dm @@ -5,6 +5,7 @@ ask_verb = "puffs inquisitively" exclaim_verb = "poofs loudly" whisper_verb = "puffs quietly" + sing_verb = "puffs musically" key = "y" sentence_chance = 0 default_priority = 80 diff --git a/code/modules/language/narsian.dm b/code/modules/language/narsian.dm index 42d0a065310..deff89266d8 100644 --- a/code/modules/language/narsian.dm +++ b/code/modules/language/narsian.dm @@ -4,6 +4,7 @@ speech_verb = "intones" ask_verb = "inquires" exclaim_verb = "invokes" + sing_verb = "intones" key = "n" sentence_chance = 8 space_chance = 95 //very high due to the potential length of each syllable diff --git a/code/modules/language/piratespeak.dm b/code/modules/language/piratespeak.dm index 10d307395ca..7896c0b7584 100644 --- a/code/modules/language/piratespeak.dm +++ b/code/modules/language/piratespeak.dm @@ -4,6 +4,7 @@ speech_verb = "says" ask_verb = "asks" exclaim_verb = "exclaims" + sing_verb = "shanties" key = "p" space_chance = 100 default_priority = 90 diff --git a/code/modules/language/shadowtongue.dm b/code/modules/language/shadowtongue.dm index a858754622a..9d6350bf99a 100644 --- a/code/modules/language/shadowtongue.dm +++ b/code/modules/language/shadowtongue.dm @@ -6,6 +6,7 @@ speech_verb = "growls" ask_verb = "growls" exclaim_verb = "roars" + sing_verb = "chants" key = "x" space_chance = 50 syllables = list( diff --git a/code/modules/language/slime.dm b/code/modules/language/slime.dm index 7171c07b391..dba028a8877 100644 --- a/code/modules/language/slime.dm +++ b/code/modules/language/slime.dm @@ -4,6 +4,7 @@ speech_verb = "warbles" ask_verb = "warbles" exclaim_verb = "warbles" + sing_verb = "warbles" key = "k" syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!") default_priority = 70 diff --git a/code/modules/language/swarmer.dm b/code/modules/language/swarmer.dm index e3b78267060..c0ede4bb24c 100644 --- a/code/modules/language/swarmer.dm +++ b/code/modules/language/swarmer.dm @@ -4,6 +4,7 @@ speech_verb = "tones" ask_verb = "tones inquisitively" exclaim_verb = "tones loudly" + sing_verb = "tones" spans = list(SPAN_ROBOT) key = "s" flags = NO_STUTTER diff --git a/code/modules/language/sylvan.dm b/code/modules/language/sylvan.dm index 098e304b002..3fc7d891faa 100644 --- a/code/modules/language/sylvan.dm +++ b/code/modules/language/sylvan.dm @@ -5,6 +5,7 @@ speech_verb = "expresses" ask_verb = "inquires" exclaim_verb = "declares" + sing_verb = "serenades" key = "h" space_chance = 20 syllables = list( diff --git a/code/modules/language/terrum.dm b/code/modules/language/terrum.dm index d26c7f0a3e4..a9d23383740 100644 --- a/code/modules/language/terrum.dm +++ b/code/modules/language/terrum.dm @@ -4,6 +4,7 @@ speech_verb = "rumbles" ask_verb = "questions" exclaim_verb = "tremors" + sing_verb = "yodels" key = "g" space_chance = 40 syllables = list( diff --git a/code/modules/language/voltaic.dm b/code/modules/language/voltaic.dm index fa0f0080428..f7e8563ee76 100644 --- a/code/modules/language/voltaic.dm +++ b/code/modules/language/voltaic.dm @@ -5,6 +5,7 @@ speech_verb = "crackles" ask_verb = "pops" exclaim_verb = "thunders" + sing_verb = "synthesizes" key = "v" space_chance = 20 syllables = list( diff --git a/code/modules/language/xenocommon.dm b/code/modules/language/xenocommon.dm index 6684ab31f85..998fdea326e 100644 --- a/code/modules/language/xenocommon.dm +++ b/code/modules/language/xenocommon.dm @@ -4,6 +4,7 @@ speech_verb = "hisses" ask_verb = "hisses" exclaim_verb = "hisses" + sing_verb = "hisses musically" key = "4" syllables = list("sss","sSs","SSS") default_priority = 50 diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index cd169a000a8..69e366d6223 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -86,7 +86,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( var/static/list/unconscious_allowed_modes = list(MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) var/talk_key = get_key(message) - var/static/list/one_character_prefix = list(MODE_HEADSET = TRUE, MODE_ROBOT = TRUE, MODE_WHISPER = TRUE) + var/static/list/one_character_prefix = list(MODE_HEADSET = TRUE, MODE_ROBOT = TRUE, MODE_WHISPER = TRUE, MODE_SING = TRUE) var/ic_blocked = FALSE if(client && !forced && CHAT_FILTER_CHECK(message)) @@ -196,6 +196,15 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(language) var/datum/language/L = GLOB.language_datum_instances[language] spans |= L.spans + + if(message_mode == MODE_SING) + #if DM_VERSION < 513 + var/randomnote = "~" + #else + var/randomnote = pick("\u2669", "\u266A", "\u266B") + #endif + spans |= SPAN_SINGING + message = "[randomnote] [message] [randomnote]" var/radio_return = radio(message, message_mode, spans, language) if(radio_return & ITALICS) @@ -395,6 +404,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list( . = "stammers" else if(derpspeech) . = "gibbers" + else if(message_mode == MODE_SING) + . = verb_sing else . = ..() diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 330d1f83a20..8b53f554eea 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -101,6 +101,7 @@ * * Result can be * * MODE_WHISPER (Quiet speech) + * * MODE_SING (Singing) * * MODE_HEADSET (Common radio channel) * * A department radio (lots of values here) */ @@ -108,6 +109,8 @@ var/key = message[1] if(key == "#") return MODE_WHISPER + else if(key == "%") + return MODE_SING else if(key == ";") return MODE_HEADSET else if((length(message) > (length(key) + 1)) && (key in GLOB.department_radio_prefixes)) diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index bbbdbbbfea0..ef4f35b56be 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -120,6 +120,7 @@ h1.alert, h2.alert {color: #000000;} .greentext {color: #00FF00; font-size: 3;} .redtext {color: #FF0000; font-size: 3;} .clown {color: #FF69Bf; font-size: 3; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} +.singing {font-family: "Trebuchet MS", cursive, sans-serif; font-style: italic;} .his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} .hypnophrase {color: #3bb5d3; font-weight: bold; animation: hypnocolor 1500ms infinite; animation-direction: alternate;} @keyframes hypnocolor { diff --git a/strings/names/verbs.txt b/strings/names/verbs.txt index 17bc127fd57..21f628b4159 100644 --- a/strings/names/verbs.txt +++ b/strings/names/verbs.txt @@ -486,6 +486,7 @@ sigh sign signal sin +sing sip ski skip