[MIRROR] Better Tourette's (#11583)

Co-authored-by: MeepleMuncher <76881946+MeepleMuncher@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-09-07 20:39:49 -07:00
committed by GitHub
parent 0fee82d7f9
commit 2e63a86d17
7 changed files with 92 additions and 15 deletions

View File

@@ -161,7 +161,7 @@ var/SMALLSIZEBLOCK = 0
// Needs to match the highest number above. // Needs to match the highest number above.
#define DNA_UI_LENGTH 65 #define DNA_UI_LENGTH 65
#define DNA_SE_LENGTH 90 // Traitgenes (Expanded from 49 to 84, there have been a considerable expansion of genes. #define DNA_SE_LENGTH 91 // Traitgenes (Expanded from 49 to 84, there have been a considerable expansion of genes. //CHOMPEdit: Upped to 91. NOTE: Ensure it's increased when there is a conflict here! Thanks!
// This leaves room for future expansion. This can be arbitrarily raised without worry if genes start to get crowded. // This leaves room for future expansion. This can be arbitrarily raised without worry if genes start to get crowded.
// Should have more than 10 empty genes after setup. - Willbird) // Should have more than 10 empty genes after setup. - Willbird)

View File

@@ -0,0 +1,36 @@
/datum/component/coprolalia_disability
var/mob/living/owner
/datum/component/coprolalia_disability/Initialize()
if (!ishuman(parent))
return COMPONENT_INCOMPATIBLE
owner = parent
RegisterSignal(owner, COMSIG_HANDLE_DISABILITIES, PROC_REF(process_component))
/datum/component/coprolalia_disability/proc/process_component()
SIGNAL_HANDLER
if(QDELETED(parent))
return
if(isbelly(owner.loc))
return
if(owner.stat != CONSCIOUS)
return
if(owner.transforming)
return
if(owner.client && (owner.client.prefs.muted & MUTE_IC))
return
if((prob(1) && prob(2) && owner.paralysis <= 1))
owner.Stun(10)
owner.make_jittery(100)
switch(rand(1, 3))
if(1)
owner.emote("twitch")
if(2 to 3)
owner.direct_say("[prob(50) ? ";" : ""][pick("SHIT", "PISS", "FUCK", "CUNT", "COCKSUCKER", "MOTHERFUCKER", "TITS")]")
/datum/component/coprolalia_disability/Destroy(force = FALSE)
UnregisterSignal(owner, COMSIG_HANDLE_DISABILITIES)
owner = null
. = ..()

View File

@@ -1,17 +1,50 @@
/datum/component/tourettes_disability /datum/component/tourettes_disability
var/mob/living/owner var/mob/living/owner
var/gutdeathpressure = 0 var/list/motor_tics = list()
/datum/component/tourettes_disability/Initialize() /datum/component/tourettes_disability/Initialize()
if (!ishuman(parent)) if (!ishuman(parent))
return COMPONENT_INCOMPATIBLE return COMPONENT_INCOMPATIBLE
owner = parent owner = parent
var/list/possible_tics = list(
"nod",
"shake",
"shiver",
"twitch",
"salute",
"blink",
"blink_r",
"wink",
"shrug",
"eyebrow",
"afold",
"hshrug",
"ftap",
"sniff",
"cough",
"snap",
"whistle",
"qwhistle",
"wwhistle",
"swhistle",
"awoo",
"prbt",
"snort",
"merp",
"nya",
"crack",
"rshoulder"
)
for(var/i = 0, i < rand(4, 6), i++)
motor_tics += pick(possible_tics)
RegisterSignal(owner, COMSIG_HANDLE_DISABILITIES, PROC_REF(process_component)) RegisterSignal(owner, COMSIG_HANDLE_DISABILITIES, PROC_REF(process_component))
/datum/component/tourettes_disability/proc/process_component() /datum/component/tourettes_disability/proc/process_component()
SIGNAL_HANDLER SIGNAL_HANDLER
var/mob/living/carbon/human/H = owner
if(QDELETED(parent)) if(QDELETED(parent))
return return
if(isbelly(owner.loc)) if(isbelly(owner.loc))
@@ -22,15 +55,9 @@
return return
if(owner.client && (owner.client.prefs.muted & MUTE_IC)) if(owner.client && (owner.client.prefs.muted & MUTE_IC))
return return
if((prob(1) && prob(2) && owner.paralysis <= 1)) if(owner.paralysis <= 1 && (H.pulse == PULSE_NORM ? (prob(1)) : (prob(50))))
owner.Stun(10) owner.make_jittery(30 + rand(10, 30))
owner.make_jittery(100) owner.emote(pick(motor_tics))
switch(rand(1, 3))
if(1)
owner.emote("twitch")
if(2 to 3)
owner.direct_say("[prob(50) ? ";" : ""][pick("SHIT", "PISS", "FUCK", "CUNT", "COCKSUCKER", "MOTHERFUCKER", "TITS")]")
/datum/component/tourettes_disability/Destroy(force = FALSE) /datum/component/tourettes_disability/Destroy(force = FALSE)
UnregisterSignal(owner, COMSIG_HANDLE_DISABILITIES) UnregisterSignal(owner, COMSIG_HANDLE_DISABILITIES)

View File

@@ -247,7 +247,7 @@
disabling = TRUE disabling = TRUE
//VOREStation Note: TRAITGENETICS - tourettes Disabled on VS //CHOMPStation Edit - Enable //VOREStation Note: TRAITGENETICS - tourettes Disabled on VS //CHOMPStation Edit - Enable
/obj/item/dnainjector/set_trait/tourettes // tour /obj/item/dnainjector/set_trait/tourettes // tour
trait_path = /datum/trait/negative/disability_tourettes trait_path = /datum/trait/neutral/disability_tourettes
/obj/item/dnainjector/set_trait/tourettes/disable /obj/item/dnainjector/set_trait/tourettes/disable
disabling = TRUE disabling = TRUE
//VOREStation Note: TRAITGENETICS - tourettes Disabled on VS //CHOMPStation Edit - Enable //VOREStation Note: TRAITGENETICS - tourettes Disabled on VS //CHOMPStation Edit - Enable

View File

@@ -53,8 +53,8 @@
activation_message="You feel lightheaded." activation_message="You feel lightheaded."
primitive_expression_messages=list("trips.") primitive_expression_messages=list("trips.")
/datum/trait/negative/disability_tourettes /datum/trait/negative/disability_coprolalia
name = "Tourettes Syndrome" name = "Coprolalia"
desc = "You have periodic motor seizures, and cannot stop yourself from yelling profanity." desc = "You have periodic motor seizures, and cannot stop yourself from yelling profanity."
cost = -2 cost = -2
custom_only = FALSE custom_only = FALSE
@@ -64,7 +64,7 @@
activation_message="You twitch." activation_message="You twitch."
primitive_expression_messages=list("twitches and chitters.") primitive_expression_messages=list("twitches and chitters.")
added_component_path = /datum/component/tourettes_disability added_component_path = /datum/component/coprolalia_disability
/* Replaced by /datum/trait/negative/blindness /* Replaced by /datum/trait/negative/blindness
/datum/trait/negative/disability_blind /datum/trait/negative/disability_blind

View File

@@ -26,3 +26,16 @@
activation_message="You feel nervous." activation_message="You feel nervous."
primitive_expression_messages=list("nervously chitters.") primitive_expression_messages=list("nervously chitters.")
added_component_path = /datum/component/nervousness_disability added_component_path = /datum/component/nervousness_disability
/datum/trait/neutral/disability_tourettes
name = "Tourettes Syndrome"
desc = "You suffer from occasional motor and vocal tics, which are exacerbated during times of stress."
cost = 0 // Originally was -2
custom_only = FALSE
is_genetrait = TRUE //CHOMPEdit - Enable tourettes
hidden = FALSE //CHOMPEdit - Enable tourettes
activation_message="You twitch."
primitive_expression_messages=list("twitches and chitters.")
added_component_path = /datum/component/tourettes_disability

View File

@@ -638,6 +638,7 @@
#include "code\datums\components\crafting\recipes\primitive.dm" #include "code\datums\components\crafting\recipes\primitive.dm"
#include "code\datums\components\crafting\recipes\survival.dm" #include "code\datums\components\crafting\recipes\survival.dm"
#include "code\datums\components\crafting\recipes\weapons.dm" #include "code\datums\components\crafting\recipes\weapons.dm"
#include "code\datums\components\disabilities\coprolalia.dm"
#include "code\datums\components\disabilities\coughing.dm" #include "code\datums\components\disabilities\coughing.dm"
#include "code\datums\components\disabilities\epilepsy.dm" #include "code\datums\components\disabilities\epilepsy.dm"
#include "code\datums\components\disabilities\gibbing.dm" #include "code\datums\components\disabilities\gibbing.dm"