//Mild traumas are the most common; they are generally minor annoyances.
//They can be suppressed with minaphobin, but not chemically cured, although brain surgery still works.
//Most of the old brain damage effects have been transferred to the dumbness trauma.
/datum/brain_trauma/mild
/datum/brain_trauma/mild/hallucinations
name = "Hallucinations"
desc = "Patient suffers constant hallucinations."
scan_desc = "schizophrenia"
gain_text = "You feel your grip on reality slipping..."
lose_text = "You feel more grounded."
cure_type = CURE_SOLITUDE
/datum/brain_trauma/mild/hallucinations/on_life()
owner.hallucination = min(owner.hallucination + 10, 50)
..()
/datum/brain_trauma/mild/hallucinations/on_lose()
owner.hallucination = 0
..()
/datum/brain_trauma/mild/stuttering
name = "Stuttering"
desc = "Patient can't speak properly."
scan_desc = "reduced mouth coordination"
gain_text = "Speaking clearly is getting harder."
lose_text = "You feel in control of your speech."
cure_type = CURE_CRYSTAL
/datum/brain_trauma/mild/stuttering/on_life()
owner.stuttering = min(owner.stuttering + 5, 25)
..()
/datum/brain_trauma/mild/stuttering/on_lose()
owner.stuttering = 0
..()
/datum/brain_trauma/mild/dumbness
name = "Dumbness"
desc = "Patient has reduced brain activity, making them less intelligent."
scan_desc = "reduced brain activity"
gain_text = "You feel dumber."
lose_text = "You feel smart again."
cure_type = CURE_CRYSTAL
/datum/brain_trauma/mild/dumbness/on_gain()
owner.disabilities |= DUMB
..()
/datum/brain_trauma/mild/dumbness/on_life()
owner.tarded = min(owner.slurring + 5, 25)
if(prob(3))
owner.emote("drool")
..()
/datum/brain_trauma/mild/dumbness/on_lose()
owner.disabilities &= ~DUMB
owner.tarded = 0
..()
/datum/brain_trauma/mild/speech_impediment
name = "Speech Impediment"
desc = "Patient is unable to form coherent sentences."
scan_desc = "communication disorder"
gain_text = "You feel lost for words!"
lose_text = "You regain your bearing!"
cure_type = CURE_CRYSTAL
/datum/brain_trauma/mild/speech_impediment/on_gain()
owner.disabilities |= UNINTELLIGIBLE
..()
/datum/brain_trauma/mild/speech_impediment/on_lose()
owner.disabilities &= ~UNINTELLIGIBLE
..()
/datum/brain_trauma/mild/tourettes
name = "Tourettes Syndrome"
desc = "Patient is compelled to vulgarity."
scan_desc = "vulgarity problem"
gain_text = "Your mind fills with foul language!"
lose_text = "Your mind returns to decency."
cure_type = CURE_CRYSTAL
can_gain = FALSE
/datum/brain_trauma/mild/tourettes/on_gain()
owner.disabilities |= TOURETTES
..()
/datum/brain_trauma/mild/tourettes/on_lose()
owner.disabilities &= ~TOURETTES
..()
/datum/brain_trauma/mild/gertie
name = "Gerstmann Syndrome"
desc = "Patient displays severe left right disorientation."
scan_desc = "left-right disorientation"
gain_text = "You wonder to yourself, does three rights really make a left?!"
lose_text = "You remember that you can just turn left directly!"
cure_type = CURE_HYPNOSIS
/datum/brain_trauma/mild/gertie/on_gain()
owner.disabilities |= GERTIE
..()
/datum/brain_trauma/mild/gertie/on_lose()
owner.disabilities &= ~GERTIE
..()
/datum/brain_trauma/mild/concussion
name = "Concussion"
desc = "Patient's brain is concussed."
scan_desc = "a concussion"
gain_text = "Your head hurts!"
lose_text = "The pressure inside your head starts fading."
cure_type = CURE_SURGERY
/datum/brain_trauma/mild/concussion/on_life()
if(prob(25))
switch(rand(1,9))
if(1)
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
to_chat(owner, "Your stomach writhes with pain.")
H.vomit()
if(2,3)
to_chat(owner, "You feel light-headed.")
owner.dizziness = max(owner.slurring, 10)
if(4,5)
to_chat(owner, "it becomes hard to see for some reason.")
owner.confused = max(owner.slurring, 10)
owner.apply_effect(10,EYE_BLUR)
if(6 to 9)
to_chat(owner, "Your tongue feels thick in your mouth.")
owner.slurring = max(owner.slurring, 30)
..()
/datum/brain_trauma/mild/concussion/on_lose()
owner.dizziness = 0
owner.slurring = 0
owner.confused = 0
..()
/datum/brain_trauma/mild/muscle_weakness
name = "Muscle Weakness"
desc = "Patient experiences occasional bouts of muscle weakness."
scan_desc = "weak motor nerve signal"
gain_text = "Your muscles feel oddly faint."
lose_text = "You feel in control of your muscles again."
cure_type = CURE_CRYSTAL
/datum/brain_trauma/mild/muscle_weakness/on_life()
var/fall_chance = 5
if(owner.m_intent == "run")
fall_chance += 15
if(prob(fall_chance) && !owner.lying && !owner.buckled)
to_chat(owner, "Your leg gives out!")
owner.Weaken(5)
else if(owner.get_active_hand())
var/drop_chance = 15
var/obj/item/I = owner.get_active_hand()
drop_chance += I.w_class
if(prob(drop_chance) && owner.drop_from_inventory(I))
to_chat(owner, "You drop [I]!")
else if(prob(3))
to_chat(owner, "You feel a sudden weakness in your muscles!")
owner.adjustHalLoss(25)
..()
/datum/brain_trauma/mild/muscle_spasms
name = "Muscle Spasms"
desc = "Patient has occasional muscle spasms, causing them to move unintentionally."
scan_desc = "nervous fits"
gain_text = "Your muscles feel oddly faint."
lose_text = "You feel in control of your muscles again."
cure_type = CURE_CRYSTAL
/datum/brain_trauma/mild/muscle_spasms/on_life()
if(prob(25))
switch(rand(1,5))
if(1)
if(owner.canmove)
to_chat(owner, "Your leg spasms!")
step(owner, pick(cardinal))
if(2)
if(owner.incapacitated())
return
var/obj/item/I = owner.get_active_hand()
if(I)
to_chat(owner, "Your fingers spasm!")
I.attack_self(owner)
if(3)
var/prev_intent = owner.a_intent
owner.set_intent(I_HURT)
var/list/mob/living/targets = list()
var/range = 1
if(istype(owner.get_active_hand(), /obj/item/gun)) //get targets to shoot at
range = 7
for(var/turf/T in oview(owner, range))
targets += T
else
for(var/mob/M in oview(owner, range))
if(isliving(M))
targets += M
if(LAZYLEN(targets))
to_chat(owner, "Your arm spasms!")
owner.ClickOn(pick(targets))
owner.set_intent(prev_intent)
if(4)
var/prev_intent = owner.a_intent
owner.set_intent(I_HURT)
to_chat(owner, "Your arm spasms!")
owner.ClickOn(owner)
owner.set_intent(prev_intent)
if(5)
if(owner.incapacitated())
return
var/obj/item/I =owner.get_active_hand()
var/list/turf/targets = list()
for(var/turf/T in oview(owner, 3))
targets += T
if(LAZYLEN(targets) && I)
to_chat(owner, "Your arm spasms!")
owner.throw_item(pick(targets))
..()
/datum/brain_trauma/mild/nearsightedness
name = "Cerebral Near-Blindness"
desc = "Patient's brain is loosely connected to its eyes."
scan_desc = "minor damage to the brain's occipital lobe"
gain_text = "You can barely see!"
lose_text = "Your vision returns."
cure_type = CURE_SURGERY
/datum/brain_trauma/mild/nearsightedness/on_gain()
owner.disabilities |= NEARSIGHTED
..()
//no fiddling with genetics to get out of this one
/datum/brain_trauma/mild/nearsightedness/on_life()
if(!(owner.disabilities & NEARSIGHTED))
on_gain()
..()
/datum/brain_trauma/mild/nearsightedness/on_lose()
if(owner.disabilities & NEARSIGHTED)
owner.disabilities &= ~NEARSIGHTED
..()
/datum/brain_trauma/mild/colorblind
name = "Partial Colorblindedness"
desc = "Patient's brain is loosely connected to ocular cones."
scan_desc = "minor damage to the brain's occipital lobe"
gain_text = "Your perception of color distorts!"
lose_text = "Your vision returns."
cure_type = CURE_SURGERY
var/colorblindedness
/datum/brain_trauma/mild/colorblind/on_gain()
colorblindedness = pick("deuteranopia", "protanopia", "tritanopia")
switch(colorblindedness)
if("deuteranopia")
owner.add_client_color(/datum/client_color/deuteranopia)
if("protanopia")
owner.add_client_color(/datum/client_color/protanopia)
if("tritanopia")
owner.add_client_color(/datum/client_color/tritanopia)
..()
/datum/brain_trauma/mild/colorblind/on_life()
if(owner.client && !owner.client.color)
on_gain()
/datum/brain_trauma/mild/colorblind/on_lose()
switch(colorblindedness)
if("deuteranopia")
owner.remove_client_color(/datum/client_color/deuteranopia)
if("protanopia")
owner.remove_client_color(/datum/client_color/protanopia)
if("tritanopia")
owner.remove_client_color(/datum/client_color/tritanopia)
..()