New brain trauma: expressive aphasia (#43608)

* new mutation: simple speech

* finalize simple speech and fix word list apostrophes

* Is now a brain trauma instead

* fix merge conflict

* grammer fix

* cleanup cause I'm an idiot

* made the suffix list a bit easier to read

* fix traits.dm
This commit is contained in:
Strommer Kilian
2019-05-02 19:48:38 +12:00
committed by oranges
parent 6696399d77
commit 9529063aa3
5 changed files with 1079 additions and 1 deletions
+1 -1
View File
@@ -165,4 +165,4 @@
#define NINJA_SUIT_TRAIT "ninja-suit"
#define ANTI_DROP_IMPLANT_TRAIT "anti-drop-implant"
#define HIVEMIND_ONE_MIND_TRAIT "one_mind"
#define VR_ZONE_TRAIT "vr_zone_trait"
#define VR_ZONE_TRAIT "vr_zone_trait"
+41
View File
@@ -182,3 +182,44 @@
addtimer(CALLBACK(owner, /mob/.proc/emote, "cough"), 12)
owner.emote("cough")
..()
/datum/brain_trauma/mild/expressive_aphasia
name = "Expressive Aphasia"
desc = "Patient is affected by partial loss of speech leading to a reduced vocabulary."
scan_desc = "inability to form complex sentences"
gain_text = "<span class='warning'>You lose your grasp on complex words.</span>"
lose_text = "<span class='notice'>You feel your vocabulary returning to normal again.</span>"
var/static/list/common_words = world.file2list("strings/1000_most_common.txt")
/datum/brain_trauma/mild/expressive_aphasia/on_say(message)
if(message)
var/list/message_split = splittext(message, " ")
var/list/new_message = list()
for(var/word in message_split)
var/suffix = copytext(word,-1)
// Check if we have a suffix and break it out of the word
if(suffix in list("." , "," , ";" , "!" , ":" , "?"))
word = copytext(word,1,-1)
else
suffix = ""
word = html_decode(word)
if(lowertext(word) in common_words)
new_message += word + suffix
else
if(prob(30) && message_split.len > 2)
new_message += pick("uh","erm")
break
else
var/list/charlist = string2charlist(word) // Stupid shit code
shuffle_inplace(charlist)
charlist.len = round(charlist.len * 0.5,1)
new_message += html_encode(jointext(charlist,"")) + suffix
message = jointext(new_message, " ")
return trim(message)
+1
View File
@@ -221,3 +221,4 @@
..()
owner.grant_language(/datum/language/common)
owner.remove_language(/datum/language/beachbum)
+1
View File
@@ -324,6 +324,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
return null
/mob/living/proc/treat_message(message)
if(has_trait(TRAIT_UNINTELLIGIBLE_SPEECH))
message = unintelligize(message)
File diff suppressed because it is too large Load Diff