mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 00:27:31 +01:00
45b23412f8
## 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. /🆑
77 lines
2.7 KiB
Plaintext
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)
|