[MIRROR] Tweaks obsession to allow better interaction [MDB IGNORE] (#9210)

* Tweaks obsession to allow better interaction (#62499)

* Tweaks obsession to allow better interaction

* More clear hint of why you're acting weird

* Tweaks obsession to allow better interaction

Co-authored-by: Rohesie <rohesie@gmail.com>
This commit is contained in:
SkyratBot
2021-11-02 23:12:14 +00:00
committed by GitHub
parent 238b43aa80
commit 184f3081fe

View File

@@ -73,37 +73,36 @@
/datum/brain_trauma/special/obsessed/handle_speech(datum/source, list/speech_args) /datum/brain_trauma/special/obsessed/handle_speech(datum/source, list/speech_args)
if(!viewing) if(!viewing)
return return
var/datum/component/mood/mood = owner.GetComponent(/datum/component/mood) if(prob(25)) // 25% chances to be nervous and stutter.
if(mood && mood.sanity >= SANITY_GREAT && social_interaction()) if(prob(50)) // 12.5% chance (previous check taken into account) of doing something suspicious.
speech_args[SPEECH_MESSAGE] = "" addtimer(CALLBACK(src, .proc/on_failed_social_interaction), rand(1, 3) SECONDS)
else if(owner.stuttering == 0)
to_chat(owner, span_warning("Being near [obsession] makes you nervous and you begin to stutter..."))
owner.stuttering = max(3, owner.stuttering)
/datum/brain_trauma/special/obsessed/proc/on_hug(mob/living/hugger, mob/living/hugged) /datum/brain_trauma/special/obsessed/proc/on_hug(mob/living/hugger, mob/living/hugged)
SIGNAL_HANDLER SIGNAL_HANDLER
if(hugged == obsession) if(hugged == obsession)
obsession_hug_count++ obsession_hug_count++
/datum/brain_trauma/special/obsessed/proc/social_interaction() /datum/brain_trauma/special/obsessed/proc/on_failed_social_interaction()
var/fail = FALSE //whether you can finish a sentence while doing it if(QDELETED(owner) || owner.stat >= UNCONSCIOUS)
owner.stuttering = max(3, owner.stuttering) return
owner.blur_eyes(10) switch(rand(1, 100))
switch(rand(1,4)) if(1 to 40)
if(1) INVOKE_ASYNC(owner, /mob.proc/emote, pick("blink", "blink_r"))
owner.blur_eyes(10)
to_chat(owner, span_userdanger("You sweat profusely and have a hard time focusing..."))
if(41 to 80)
INVOKE_ASYNC(owner, /mob.proc/emote, "pale")
shake_camera(owner, 15, 1) shake_camera(owner, 15, 1)
owner.vomit() owner.adjustStaminaLoss(70)
fail = TRUE to_chat(owner, span_userdanger("You feel your heart lurching in your chest..."))
if(2) if(81 to 100)
INVOKE_ASYNC(owner, /mob.proc/emote, "cough") INVOKE_ASYNC(owner, /mob.proc/emote, "cough")
owner.dizziness += 10 owner.dizziness += 10
fail = TRUE owner.adjust_disgust(5)
if(3) to_chat(owner, span_userdanger("You gag and swallow a bit of bile..."))
to_chat(owner, span_userdanger("You feel your heart lurching in your chest..."))
owner.Stun(20)
shake_camera(owner, 15, 1)
if(4)
to_chat(owner, span_warning("You faint."))
owner.Unconscious(80)
fail = TRUE
return fail
// if the creep examines first, then the obsession examines them, have a 50% chance to possibly blow their cover. wearing a mask avoids this risk // if the creep examines first, then the obsession examines them, have a 50% chance to possibly blow their cover. wearing a mask avoids this risk
/datum/brain_trauma/special/obsessed/proc/stare(datum/source, mob/living/examining_mob, triggering_examiner) /datum/brain_trauma/special/obsessed/proc/stare(datum/source, mob/living/examining_mob, triggering_examiner)