diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 0603664c3f3..69ec66f91ea 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -232,7 +232,7 @@
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.getBrainLoss() >= 60)
- visible_message("[H] stares cluelessly at [src] and drools.")
+ visible_message("[H] stares cluelessly at [src].")
return TRUE
else if(prob(H.getBrainLoss()))
to_chat(user, "You momentarily forget how to use [src].")
diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm
index 12c3d77b9c7..afa842014de 100644
--- a/code/modules/mob/living/carbon/examine.dm
+++ b/code/modules/mob/living/carbon/examine.dm
@@ -286,7 +286,7 @@
if(stat == UNCONSCIOUS || just_sleeping)
msg += "[p_they(TRUE)] [p_are()]n't responding to anything around [p_them()] and seems to be asleep.\n"
else if(getBrainLoss() >= 60)
- msg += "[p_they(TRUE)] [p_have()] a stupid expression on [p_their()] face.\n"
+ msg += "[p_they(TRUE)] [p_are()] staring forward with a blank expression.\n"
if(get_int_organ(/obj/item/organ/internal/brain))
msg += examine_show_ssd()
diff --git a/code/modules/mob/living/carbon/human/human_life.dm b/code/modules/mob/living/carbon/human/human_life.dm
index b3f5227145a..5cec1660572 100644
--- a/code/modules/mob/living/carbon/human/human_life.dm
+++ b/code/modules/mob/living/carbon/human/human_life.dm
@@ -99,56 +99,6 @@
else if(!vision || vision.is_broken()) // Vision organs cut out or broken? Permablind.
EyeBlind(4 SECONDS)
- if(getBrainLoss() >= 60 && stat != DEAD)
- if(prob(3))
- var/list/crazysay = list("IM A [pick("PONY","LIZARD","taJaran","kitty","Vulpakin","drASK","BIRDIE","voxxie","race car","combat meCH","SPESSSHIP")] [pick("NEEEEEEIIIIIIIIIGH","sKREEEEEE","MEOW","NYA~","rawr","Barkbark","Hissssss","vROOOOOM","pewpew","choo Choo")]!",
- "without oxigen blob don't evoluate?",
- "CAPTAINS A COMDOM",
- "[pick("", "that damn traitor")] [pick("joerge", "george", "gorge", "gdoruge")] [pick("mellens", "melons", "mwrlins")] is grifing me HAL;P!!!",
- "can u give me [pick("telikesis","halk","eppilapse")]?",
- "THe saiyans screwed",
- "Bi is THE BEST OF BOTH WORLDS",
- "I WANNA PET TEH monkeyS",
- "stop grifing me!!!!",
- "SOTP IT!",
- "HALPZ SITCULITY",
- "VOXES caN't LOVE",
- "my dad own this station",
- "the CHef put [pick("PROTEIN", "toiret waTer", "RiPPleing TendIes", "Einzymes","HORRY WALTER","nuTriments","ReActive MutAngen","TeSLium","sKrektonium")] in my [pick("wiSh soup","Bullito","rAingurber","sOilent GREEn","KoI Susishes","yaya")]!",
- "the monkey have TASER ARMS!",
- "qM blew my points on [pick("cOMbat Shtogun","inSuLated gloves","LOTS MASSHEEN!")]",
- "EI'NATH!",
- "WAKE UP SHEEPLES!",
- "et wus my [pick("wittle brother!!","fiancee","friend staying over","entiRe orphanage","love interest","wife","husband","liTTle kids","sentient cAT","accidentally")]!",
- "FUS RO DAH",
- "fuckin tangerines!!!",
- "stAT ME",
- "my FACE",
- "rOLl it eaSy!",
- "waaaaaagh!!!",
- "red wonz go fasta",
- "FOR TEH EMPRAH",
- "HAZ A SECURE DAY!!!!",
- "dem dwarfs man, dem dwarfs",
- "SPESS MAHREENS",
- "hwee did eet fhor khayosss",
- "lifelike texture",
- "luv can bloooom",
- "PACKETS!!!",
- "[pick("WHERE MY","aYE need","giv me my","bath me inn.")] [pick("dermaline","alKkyZine","dylOvene","inAprovaline","biCaridine","Hyperzine","kELotane","lePorazine","bAcch Salts","tricord","clOnexazone","hydroChloric Acid","chlORine Hydrate","paRoxetine")]!",
- "mALPRACTICEBAY",
- "I HavE A pe H dee iN ENTerpriSE resOUrCE pLaNNIN",
- "h-h-HalP MaINT",
- "dey come, dey COME! DEY COME!!!",
- "THE END IS NIGH!",
- "I FOT AND DIED FOR MUH [pick("RITES","FREEDOM","payCHECK","cARGO points","teCH Level","doG","mAPLe syrup","fluffy fWiends","gATEway LoOt")]",
- "KILL DEM [pick("mainTnacE cHickinNS","kiRA CulwnNES","FLOOR CLUWNEs","MIME ASSASSIN","BOMBING TAJARAN","cC offiser","morPhlings","slinglings")]!",
- "I CAN FORCE YOU TO SAY WHATEREVE!!?!?!")
- if(prob(66))
- say(pick(crazysay))
- else
- emote("drool")
-
/mob/living/carbon/human/handle_mutations_and_radiation()
for(var/mutation_type in active_mutations)
var/datum/mutation/mutation = GLOB.dna_mutations[mutation_type]
diff --git a/code/modules/mob/living/carbon/human/human_mob.dm b/code/modules/mob/living/carbon/human/human_mob.dm
index c6be87db37d..e53aec671c9 100644
--- a/code/modules/mob/living/carbon/human/human_mob.dm
+++ b/code/modules/mob/living/carbon/human/human_mob.dm
@@ -2074,7 +2074,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
makeCluwne()
/mob/living/carbon/human/is_literate()
- return getBrainLoss() < 100
+ return getBrainLoss() < 90
/mob/living/carbon/human/fakefire(fire_icon = "Generic_mob_burning")
diff --git a/code/modules/mob/living/carbon/human/human_say.dm b/code/modules/mob/living/carbon/human/human_say.dm
index 551689b1ec6..50562a09e37 100644
--- a/code/modules/mob/living/carbon/human/human_say.dm
+++ b/code/modules/mob/living/carbon/human/human_say.dm
@@ -158,7 +158,7 @@ GLOBAL_LIST_INIT(soapy_words, list(
if(prob(braindam / 4))
S.message = stutter(S.message)
verb = "gibbers"
- if(prob(braindam))
+ else if(prob(braindam / 2))
S.message = uppertext(S.message)
verb = "yells loudly"
diff --git a/code/modules/power/apc/apc.dm b/code/modules/power/apc/apc.dm
index 54288d68125..f27668e5af4 100644
--- a/code/modules/power/apc/apc.dm
+++ b/code/modules/power/apc/apc.dm
@@ -520,7 +520,7 @@
if(istype(H))
if(H.getBrainLoss() >= 60)
for(var/mob/M in viewers(src, null))
- to_chat(M, "[H] stares cluelessly at [src] and drools.")
+ to_chat(M, "[H] stares cluelessly at [src].")
return FALSE
else if(prob(H.getBrainLoss()))
to_chat(user, "You momentarily forget how to use [src].")
diff --git a/code/modules/surgery/organs/brain.dm b/code/modules/surgery/organs/brain.dm
index 36fd7ed612e..3e55578c4a4 100644
--- a/code/modules/surgery/organs/brain.dm
+++ b/code/modules/surgery/organs/brain.dm
@@ -125,6 +125,65 @@
if(owner && vital)
owner.setBrainLoss(120)
+/obj/item/organ/internal/brain/on_life()
+ if(decoy_brain || damage < 10)
+ return
+ switch(damage)
+ if(10 to 30)
+ handle_minor_brain_damage()
+ if(31 to 60)
+ handle_moderate_brain_damage()
+ if(61 to 80)
+ handle_severe_brain_damage()
+ if(81 to 100)
+ handle_critical_brain_damage()
+
+/obj/item/organ/internal/brain/proc/handle_minor_brain_damage()
+ if(prob(5))
+ owner.Dizzy(5 SECONDS)
+ to_chat(owner, "Your head feels foggy.")
+ else if(prob(4))
+ owner.vomit()
+ to_chat(owner, "")
+
+/obj/item/organ/internal/brain/proc/handle_moderate_brain_damage()
+ if(prob(4))
+ owner.Confused(20 SECONDS)
+ to_chat(owner, "It's suddenly difficult to walk straight.")
+ else if(prob(5))
+ owner.EyeBlurry(15 SECONDS)
+ to_chat(owner, "Your vision unfocuses.")
+ else if(prob(3))
+ owner.Drowsy(20 SECONDS)
+ to_chat(owner, "You're getting tired.")
+
+/obj/item/organ/internal/brain/proc/handle_severe_brain_damage()
+ if(prob(5))
+ owner.Hallucinate(60 SECONDS)
+ to_chat(owner, "You start losing your grip on reality.")
+ else if(prob(10))
+ owner.Slur(60 SECONDS)
+ owner.Stuttering(60 SECONDS)
+ to_chat(owner, "You can't form your words properly.")
+ else if(prob(2))
+ owner.Stun(5 SECONDS)
+ to_chat(owner, "You stare forward in a stupor.")
+ else if(prob(5))
+ owner.KnockDown(1 SECONDS)
+ to_chat(owner, "You lose your footing, and stumble.")
+
+/obj/item/organ/internal/brain/proc/handle_critical_brain_damage()
+ if(prob(4))
+ owner.Silence(45 SECONDS)
+ to_chat(owner, "You open your mouth to speak, but no sound comes out.")
+ else if(prob(5))
+ owner.EyeBlind(30 SECONDS)
+ to_chat(owner, "Your vision gives out.")
+ else if(prob(5))
+ owner.Weaken(10 SECONDS)
+ owner.Jitter(150 SECONDS)
+ to_chat(owner, "You start to have a seizure.")
+
/obj/item/organ/internal/brain/prepare_eat()
return // Too important to eat.