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.