//Brain Traumas are the new actual brain damage. Brain damage itself acts as a way to acquire traumas: every time brain damage is dealt, there's a chance of receiving a trauma.
//This chance gets higher the higher the mob's brainloss is. Removing traumas is a separate thing from removing brain damage: you can get restored to full brain operativity,
//but keep the quirks, until repaired by Cataleptinol (for mild/special ones) or brain surgery (for severe ones).
/datum/brain_trauma
var/name = "Brain Trauma"
var/desc = "A trauma caused by brain damage, which causes issues to the patient."
var/scan_desc = "a generic brain trauma" //description when detected by a health scanner
var/mob/living/carbon/owner //the poor bastard
var/obj/item/organ/internal/brain/brain //the poor bastard's brain
var/gain_text = "You feel traumatized."
var/lose_text = "You no longer feel traumatized."
var/can_gain = TRUE //can this be gained through random traumas?
var/permanent = FALSE //can this be cured?
var/suppressed = 0 //currently being suppressed
var/cure_type //type of therapy that cures the trauma
//current cures:
//CURE_HYPNOSIS - cures traumas that alter behavior
//CURE_SOLITUDE - cures traumas that produce hallucination
//CURE_CRYSTAL - cures traumas that have physical effects
//CURE_SURGERY - cures traumas not covered above
/datum/brain_trauma/New(obj/item/organ/internal/brain/B, _permanent)
brain = B
owner = B.owner
permanent = _permanent
if(owner)
on_gain()
/datum/brain_trauma/Destroy()
brain.traumas -= src
if(owner)
on_lose()
brain = null
owner = null
return ..()
//Called on life ticks
/datum/brain_trauma/proc/on_life()
if(owner.getBrainLoss() < brain.traumas.len)
owner.setBrainLoss(brain.traumas.len)
return
//Called when given to a mob
/datum/brain_trauma/proc/on_gain()
to_chat(owner, gain_text)
//Called when removed from a mob
/datum/brain_trauma/proc/on_lose(silent)
if(!silent)
to_chat(owner, lose_text)
owner.adjustBrainLoss(-1)
//Called when hearing a spoken message
/datum/brain_trauma/proc/on_hear(message, speaker, message_language, raw_message, radio_freq)
return message
//Called when speaking
/datum/brain_trauma/proc/on_say(message)
return message