Skip to content

Commit 40c0aee

Browse files
authored
Braindamage speech proc change. (#36490)
* tweaks and adds to the braindamaged speech proc * . * uhh * . * brain damage cooldown var * gibbers emote * braindamaged speech check * rearranges some shit
1 parent 58deee1 commit 40c0aee

File tree

4 files changed

+96
-9
lines changed

4 files changed

+96
-9
lines changed

code/modules/mob/living/emote.dm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,3 +398,10 @@ var/list/animals_with_wings = list(
398398

399399
to_chat(user, message)
400400
return TRUE
401+
402+
/datum/emote/living/gibber
403+
key = "gibber"
404+
key_third_person = "gibbers"
405+
message = "gibbers incoherently!"
406+
message_mime = "rapidly moves their hands around incoherently."
407+
emote_type = EMOTE_AUDIBLE

code/modules/mob/living/living_defines.dm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,5 @@
7979
var/blood_color2 //color of this creature's blood for gibbing purposes (humanoids have their own species-defined values)
8080
var/flesh_color2 //color of this creature's flesh for meat purposes (humanoids have their own species-defined values)
8181
var/tangibility = 1 //can this mob be interacted with things hitting it and etc?
82+
83+
var/braindamagespeechcooldown = FALSE //used to avoid braindamage proc spamming when checking the like 80 replacements

code/modules/mob/living/say.dm

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,14 @@ var/list/headset_modes = list(
520520
I.affect_speech(speech, src)
521521

522522
if(getBrainLoss() >= 60)
523-
speech.message = derpspeech(speech.message, stuttering)
523+
if(braindamagespeechcooldown)
524+
speech.message = null
525+
emote("gibber")
526+
else
527+
braindamagespeechcooldown = TRUE
528+
speech.message = derpspeech(speech.message, stuttering)
529+
spawn(1 SECONDS)
530+
braindamagespeechcooldown = FALSE
524531

525532
if(stuttering || (undergoing_hypothermia() == MODERATE_HYPOTHERMIA && prob(25)) )
526533
speech.message = stutter(speech.message)

code/modules/mob/mob_helpers.dm

Lines changed: 79 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -332,19 +332,90 @@
332332
return returntext
333333

334334
/proc/derpspeech(message, stuttering)
335-
message = replacetext(message, " am ", " ")
336-
message = replacetext(message, " is ", " ")
337-
message = replacetext(message, " are ", " ")
338-
message = replacetext(message, "you", "u")
339-
message = replacetext(message, "help", "halp")
335+
//specific words we want replaced every time, mainly references to the actual brain damage lines, so they stay consistent with brain damage regular speech
336+
message = replacetext(message, "stop", "sotp")
337+
message = replacetext(message, "retarded", "rarted")
338+
message = replacetext(message, "george", "[pick("joerge", "george", "gorge", "gdoruge")]")
339+
message = replacetext(message, "melon", "[pick("mellens", "melons", "mwrlins")]")
340+
message = replacetext(message, "oxygen", "oxigen")
341+
message = replacetext(message, "evolve", "evoluate")
342+
message = replacetext(message, "unrealistic", "unralistic")
343+
message = replacetext(message, "round", "rouns")
344+
message = replacetext(message, "roles", "rolls")
345+
message = replacetext(message, "worst", "wurst")
346+
message = replacetext(message, "worse", "wurse")
347+
message = replacetext(message, "vegan", "vegana")
348+
message = replacetext(message, "boob", "bobs")
340349
message = replacetext(message, "grief", "griff")
341350
message = replacetext(message, "space", "spess")
342351
message = replacetext(message, "carp", "crap")
343352
message = replacetext(message, "reason", "raisin")
344-
if(prob(50))
353+
message = replacetext(message, "engineer", "engiener")
354+
message = replacetext(message, "pinpointer", "pin pointner")
355+
message = replacetext(message, "singularity", "scrungulartiy")
356+
message = replacetext(message, "based", "BASTE")
357+
message = replacetext(message, "hos", "hitler")
358+
message = replacetext(message, "like", "liek")
359+
message = replacetext(message, "damage", "damag")
360+
message = replacetext(message, "millenial", "milenian")
361+
message = replacetext(message, "telekinesis", "telikesis")
362+
message = replacetext(message, "hulk", "halk")
363+
message = replacetext(message, "epilepsy", "eppilapse")
364+
message = replacetext(message, "shotgun", "shotgum it duntt mis")
365+
message = replacetext(message, "suspicious", "sus")
366+
message = replacetext(message, "among us", "amogus")
367+
368+
//assorted replacements to make text feel "dumb"
369+
message = replacetext(message, "he", "eh") //he, she, the -> eh, seh, teh, etc
370+
message = replacetext(message, "ies", "is")
371+
message = replacetext(message, "you", "u")
372+
message = replacetext(message, "iou", "ou") //delicous
373+
message = replacetext(message, "xc", "x") //exited
374+
message = replacetext(message, "air", "er") //cher, her
375+
message = replacetext(message, "uni", "uin")
376+
message = replacetext(message, "dg", "g") //knowlege,
377+
message = replacetext(message, "tch", "ch") //bich
378+
message = replacetext(message, "are", "ar")
379+
message = replacetext(message, "pl", "pul")
380+
message = replacetext(message, "oul", "ul")
381+
message = replacetext(message, "ght", "gt")
382+
message = replacetext(message, "gna", "ga")
383+
384+
if(prob(50)) //stuff we only want replaced this way SOME of the time, the alternative goes under ELSE
385+
message = replacetext(message, "eau", "eu") //beutiful
386+
message = replacetext(message, "ie", "ei")
387+
message = replacetext(message, "tab", "tib") //tible, comfortible
388+
message = replacetext(message, "'re", "re")
389+
message = replacetext(message, "help", "halp")
390+
message = replacetext(message, "wood", "woody")
391+
message = replacetext(message, "ain", "ian")
392+
message = replacetext(message, "your", "youre")
393+
if(prob(25)) //13%
394+
message = replacetext(message, " am ", " ")
395+
message = replacetext(message, " is ", " ")
396+
message = replacetext(message, " are ", " ")
397+
else //these prob checks are per sentence, so saying friend 100 times in one sentence will have all 100 look the same instead of mix and match
398+
message = replacetext(message, "eau", "u")
399+
message = replacetext(message, "friend", "fren")
400+
message = replacetext(message, "tab", "teb") //teble, comforteble
401+
message = replacetext(message, "you're", "your")
402+
message = replacetext(message, "help", "helb")
403+
message = replacetext(message, "y ", "i ")
404+
message = replacetext(message, "y,", "i")
405+
message = replacetext(message, "captain", "COMDOM")
406+
if(prob(70))
407+
var/regex/duplicate = new("(\\w)(?=\\1)", "g")
408+
message = replacetext(message, duplicate, "") //duplicate letters into one letter, for all words
409+
if(prob(20)) //occasionally replaces one word with umm.
410+
var/list/words = splittext(message, " ")
411+
words[rand(0, words.len)] = pick("um,", "umm,", "uh,", "uhh,")
412+
message = jointext(words, " ")
413+
414+
if(prob(35))
345415
message = uppertext(message)
346-
message += "[stutter(pick("!", "!!", "!!!"))]"
347-
if(!stuttering && prob(15))
416+
if(prob(50))
417+
message += "[stutter(pick("!", "!!", "!!!"))]"
418+
if(!stuttering && prob(10))
348419
message = stutter(message)
349420
return message
350421

0 commit comments

Comments
 (0)