Files
MrMelbert 45b23412f8 [MDB Ignore] Medical larp: Adds the SDSM-35 (an in game brain trauma reference) (#94761)
## About The Pull Request

Medbay, the CMO, the Psychologist, (possibly) the Library, and some
maint rooms across all maps now have multiple copies of the SDSM-35

This exists as an in game ability to reference what brain traumas do. No
special bells or whistles, not even a search bar - it's a book after
all.

<img width="819" height="589" alt="image"
src="https://github.com/user-attachments/assets/ace867b9-a0f0-4302-99f9-46ed4d6fe377"
/>

<img width="802" height="546" alt="image"
src="https://github.com/user-attachments/assets/c96941d3-8da8-48f7-859b-93953fe01473"
/>

## Why It's Good For The Game

De-wikification: Rather than needing to pull up the wiki to figure out
what the brain trauma is doing, you can refer to the in game book and
cross reference the patient's behavior.

Medial larp: It's a reference to the DSM-5. If that wasn't obvious. 

## Changelog

🆑 Melbert
add: You can now find the SDMS-35 in Medbay, the CMO's office, the
Psychologist's office, and possibly the Library. Quite simply, it's a
reference book for all the brain trauma's you may experience.
/🆑
2026-01-08 19:47:04 -07:00

77 lines
2.7 KiB
Plaintext

//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 neurine, surgery, lobotomy or magic; depending on the resilience
// of the trauma.
/datum/brain_trauma
/// Tracks abstract types of brain traumas, useful for determining traumas that should not exist
abstract_type = /datum/brain_trauma
var/name = "Brain Trauma"
var/desc = "A trauma caused by brain damage, which causes issues to the patient."
/// Description when detected by a health scanner
var/scan_desc = "generic brain trauma"
/// A string listing potential symptoms caused by this trauma
var/symptoms = ""
/// The poor bastard
var/mob/living/carbon/owner
/// The poor bastard's brain
var/obj/item/organ/brain/brain
/// Message sent in chat when trauma is gained
var/gain_text = span_notice("You feel traumatized.")
/// Message sent in chat when trauma is lost
var/lose_text = span_notice("You no longer feel traumatized.")
/// If the trauma can be gained, checked in can_gain_trauma
var/can_gain = TRUE
/// If this trauma can be gained randomly
var/random_gain = TRUE
/// How hard is this to cure?
var/resilience = TRAUMA_RESILIENCE_BASIC
/// If FALSE, hide the trauma in medical guides
var/known_trauma = TRUE
/datum/brain_trauma/Destroy()
// Handles our references with our brain
brain?.remove_trauma_from_traumas(src)
if(owner)
log_game("[key_name_and_tag(owner)] has lost the following brain trauma: [type]")
on_lose()
owner = null
return ..()
//Called on life ticks
/datum/brain_trauma/proc/on_life(seconds_per_tick)
return
//Called on death
/datum/brain_trauma/proc/on_death()
return
//Called when given to a mob
/datum/brain_trauma/proc/on_gain()
SHOULD_CALL_PARENT(TRUE)
if(gain_text)
to_chat(owner, gain_text)
RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech))
RegisterSignal(owner, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing))
return TRUE
//Called when removed from a mob
/datum/brain_trauma/proc/on_lose(silent)
SHOULD_CALL_PARENT(TRUE)
if(!silent && lose_text)
to_chat(owner, lose_text)
UnregisterSignal(owner, COMSIG_MOB_SAY)
UnregisterSignal(owner, COMSIG_MOVABLE_HEAR)
//Called when hearing a spoken message
/datum/brain_trauma/proc/handle_hearing(datum/source, list/hearing_args)
SIGNAL_HANDLER
UnregisterSignal(owner, COMSIG_MOVABLE_HEAR)
//Called when speaking
/datum/brain_trauma/proc/handle_speech(datum/source, list/speech_args)
SIGNAL_HANDLER
UnregisterSignal(owner, COMSIG_MOB_SAY)