mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
Adds macros to help with common set_- and adjust_timed_status_effect uses (#69951)
* Adds helpers for status effect application
This commit is contained in:
@@ -39,6 +39,66 @@
|
||||
|
||||
#define STASIS_SHAPECHANGE_EFFECT "stasis_shapechange"
|
||||
|
||||
// Status effect application helpers.
|
||||
// These are macros for easier use of adjust_timed_status_effect and set_timed_status_effect.
|
||||
//
|
||||
// adjust_x:
|
||||
// - Adds duration to a status effect
|
||||
// - Removes duration if a negative duration is passed.
|
||||
// - Ex: adjust_stutter(10 SECONDS) adds ten seconds of stuttering.
|
||||
// - Ex: adjust_jitter(-5 SECONDS) removes five seconds of jittering, or just removes jittering if less than five seconds exist.
|
||||
//
|
||||
// adjust_x_up_to:
|
||||
// - Will only add (or remove) duration of a status effect up to the second parameter
|
||||
// - If the duration will result in going beyond the second parameter, it will stop exactly at that parameter
|
||||
// - The second parameter cannot be negative.
|
||||
// - Ex: adjust_stutter_up_to(20 SECONDS, 10 SECONDS) adds ten seconds of stuttering.
|
||||
//
|
||||
// set_x:
|
||||
// - Set the duration of a status effect to the exact number.
|
||||
// - Setting duration to zero seconds is effectively the same as just using remove_status_effect, or qdelling the effect.
|
||||
// - Ex: set_stutter(10 SECONDS) sets the stuttering to ten seconds, regardless of whether they had more or less existing stutter.
|
||||
//
|
||||
// set_x_if_lower:
|
||||
// - Will only set the duration of that effect IF any existing duration is lower than what was passed.
|
||||
// - Ex: set_stutter_if_lower(10 SECONDS) will set stuttering to ten seconds if no stuttering or less than ten seconds of stuttering exists
|
||||
// - Ex: set_jitter_if_lower(20 SECONDS) will do nothing if more than twenty seconds of jittering already exists
|
||||
|
||||
#define adjust_stutter(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter)
|
||||
#define adjust_stutter_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter, up_to)
|
||||
#define set_stutter(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter)
|
||||
#define set_stutter_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter, TRUE)
|
||||
|
||||
#define adjust_derpspeech(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech)
|
||||
#define adjust_derpspeech_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech, up_to)
|
||||
#define set_derpspeech(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech)
|
||||
#define set_derpspeech_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech, TRUE)
|
||||
|
||||
#define adjust_slurring(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk)
|
||||
#define adjust_slurring_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk, up_to)
|
||||
#define set_slurring(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk)
|
||||
#define set_slurring_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk, TRUE)
|
||||
|
||||
#define adjust_dizzy(duration) adjust_timed_status_effect(duration, /datum/status_effect/dizziness)
|
||||
#define adjust_dizzy_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/dizziness, up_to)
|
||||
#define set_dizzy(duration) set_timed_status_effect(duration, /datum/status_effect/dizziness)
|
||||
#define set_dizzy_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/dizziness, TRUE)
|
||||
|
||||
#define adjust_jitter(duration) adjust_timed_status_effect(duration, /datum/status_effect/jitter)
|
||||
#define adjust_jitter_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/jitter, up_to)
|
||||
#define set_jitter(duration) set_timed_status_effect(duration, /datum/status_effect/jitter)
|
||||
#define set_jitter_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/jitter, TRUE)
|
||||
|
||||
#define adjust_confusion(duration) adjust_timed_status_effect(duration, /datum/status_effect/confusion)
|
||||
#define adjust_confusion_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/confusion, up_to)
|
||||
#define set_confusion(duration) set_timed_status_effect(duration, /datum/status_effect/confusion)
|
||||
#define set_confusion_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/confusion, TRUE)
|
||||
|
||||
#define adjust_drugginess(duration) adjust_timed_status_effect(duration, /datum/status_effect/drugginess)
|
||||
#define adjust_drugginess_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/drugginess, up_to)
|
||||
#define set_drugginess(duration) set_timed_status_effect(duration, /datum/status_effect/drugginess)
|
||||
#define set_drugginess_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/drugginess, TRUE)
|
||||
|
||||
#define adjust_hallucinations(duration) adjust_timed_status_effect(duration, /datum/status_effect/hallucination)
|
||||
#define adjust_hallucinations_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/hallucination, up_to)
|
||||
#define set_hallucinations(duration) set_timed_status_effect(duration, /datum/status_effect/hallucination)
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
for(var/mob/living/carbon/victim in severely_honked)
|
||||
victim.Unconscious(40)
|
||||
victim.Stun(100)
|
||||
victim.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/speech/stutter)
|
||||
victim.set_timed_status_effect(1000 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
victim.adjust_stutter(30 SECONDS)
|
||||
victim.set_jitter_if_lower(1000 SECONDS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.getorganslot(ORGAN_SLOT_EARS)
|
||||
ears?.adjustEarDamage(10, 15)
|
||||
to_chat(victim, "<font color='red' size='8'>HONK</font>")
|
||||
@@ -34,14 +34,14 @@
|
||||
for(var/mob/living/carbon/victim in properly_honked)
|
||||
victim.Paralyze(20)
|
||||
victim.Stun(50)
|
||||
victim.set_timed_status_effect(500 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
victim.set_jitter_if_lower(500 SECONDS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.getorganslot(ORGAN_SLOT_EARS)
|
||||
ears?.adjustEarDamage(7, 10)
|
||||
to_chat(victim, "<font color='red' size='5'>HONK</font>")
|
||||
|
||||
for(var/mob/living/carbon/victim in lightly_honked)
|
||||
victim.Knockdown(20)
|
||||
victim.set_timed_status_effect(200 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
victim.set_jitter_if_lower(200 SECONDS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.getorganslot(ORGAN_SLOT_EARS)
|
||||
ears?.adjustEarDamage(4, 5)
|
||||
to_chat(victim, "<font color='red' size='2'>HONK</font>")
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
addtimer(CALLBACK(src, .proc/on_failed_social_interaction), rand(1, 3) SECONDS)
|
||||
else if(!owner.has_status_effect(/datum/status_effect/speech/stutter))
|
||||
to_chat(owner, span_warning("Being near [obsession] makes you nervous and you begin to stutter..."))
|
||||
owner.set_timed_status_effect(6 SECONDS, /datum/status_effect/speech/stutter, only_if_higher = TRUE)
|
||||
owner.set_stutter_if_lower(6 SECONDS)
|
||||
|
||||
/// Singal proc for [COMSIG_CARBON_HELPED], when our obsessed helps (hugs) our obsession, increases hug count
|
||||
/datum/brain_trauma/special/obsessed/proc/on_hug(datum/source, mob/living/hugged)
|
||||
@@ -104,7 +104,7 @@
|
||||
to_chat(owner, span_userdanger("You feel your heart lurching in your chest..."))
|
||||
if(81 to 100)
|
||||
INVOKE_ASYNC(owner, /mob.proc/emote, "cough")
|
||||
owner.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness)
|
||||
owner.adjust_dizzy(20 SECONDS)
|
||||
owner.adjust_disgust(5)
|
||||
to_chat(owner, span_userdanger("You gag and swallow a bit of bile..."))
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
lose_text = "<span class='notice'>You feel in control of your speech.</span>"
|
||||
|
||||
/datum/brain_trauma/mild/stuttering/on_life(delta_time, times_fired)
|
||||
owner.adjust_timed_status_effect(5 SECONDS * delta_time, /datum/status_effect/speech/stutter, max_duration = 50 SECONDS)
|
||||
owner.adjust_stutter_up_to(5 SECONDS * delta_time, 50 SECONDS)
|
||||
|
||||
/datum/brain_trauma/mild/stuttering/on_lose()
|
||||
owner.remove_status_effect(/datum/status_effect/speech/stutter)
|
||||
@@ -50,7 +50,7 @@
|
||||
return ..()
|
||||
|
||||
/datum/brain_trauma/mild/dumbness/on_life(delta_time, times_fired)
|
||||
owner.adjust_timed_status_effect(5 SECONDS * delta_time, /datum/status_effect/speech/stutter/derpspeech, max_duration = 50 SECONDS)
|
||||
owner.adjust_derpspeech_up_to(5 SECONDS * delta_time, 50 SECONDS)
|
||||
if(DT_PROB(1.5, delta_time))
|
||||
owner.emote("drool")
|
||||
else if(owner.stat == CONSCIOUS && DT_PROB(1.5, delta_time))
|
||||
@@ -90,12 +90,12 @@
|
||||
if(1)
|
||||
owner.vomit()
|
||||
if(2,3)
|
||||
owner.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness)
|
||||
owner.adjust_dizzy(20 SECONDS)
|
||||
if(4,5)
|
||||
owner.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
owner.adjust_confusion(10 SECONDS)
|
||||
owner.blur_eyes(10)
|
||||
if(6 to 9)
|
||||
owner.adjust_timed_status_effect(1 MINUTES, /datum/status_effect/speech/slurring/drunk)
|
||||
owner.adjust_slurring(1 MINUTES)
|
||||
if(10)
|
||||
to_chat(owner, span_notice("You forget for a moment what you were doing."))
|
||||
owner.Stun(20)
|
||||
|
||||
@@ -111,22 +111,22 @@
|
||||
if(1)
|
||||
to_chat(owner, span_warning("You are paralyzed with fear!"))
|
||||
owner.Stun(70)
|
||||
owner.set_timed_status_effect(16 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(16 SECONDS)
|
||||
if(2)
|
||||
owner.emote("scream")
|
||||
owner.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(10 SECONDS)
|
||||
owner.say("AAAAH!!", forced = "phobia")
|
||||
if(reason)
|
||||
owner.pointed(reason)
|
||||
if(3)
|
||||
to_chat(owner, span_warning("You shut your eyes in terror!"))
|
||||
owner.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(10 SECONDS)
|
||||
owner.adjust_blindness(10)
|
||||
if(4)
|
||||
owner.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness)
|
||||
owner.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
owner.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/speech/stutter)
|
||||
owner.adjust_dizzy(20 SECONDS)
|
||||
owner.adjust_confusion(10 SECONDS)
|
||||
owner.set_jitter_if_lower(20 SECONDS)
|
||||
owner.adjust_stutter(20 SECONDS)
|
||||
|
||||
// Defined phobia types for badminry, not included in the RNG trauma pool to avoid diluting.
|
||||
|
||||
|
||||
@@ -193,9 +193,9 @@
|
||||
else
|
||||
to_chat(owner, span_warning("You can't stop shaking..."))
|
||||
|
||||
owner.adjust_timed_status_effect(40 SECONDS, /datum/status_effect/dizziness)
|
||||
owner.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/confusion)
|
||||
owner.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.adjust_dizzy(40 SECONDS)
|
||||
owner.adjust_confusion(20 SECONDS)
|
||||
owner.set_jitter_if_lower(40 SECONDS)
|
||||
|
||||
if(3, 4)
|
||||
if(high_stress)
|
||||
|
||||
@@ -436,7 +436,7 @@
|
||||
user.visible_message(span_danger("[user] slams head-first into [hit], suffering major cranial trauma!"), span_userdanger("You slam head-first into [hit], and the world explodes around you!"))
|
||||
user.adjustStaminaLoss(30, updating_health=FALSE)
|
||||
user.adjustBruteLoss(30)
|
||||
user.adjust_timed_status_effect(15 SECONDS, /datum/status_effect/confusion)
|
||||
user.adjust_confusion(15 SECONDS)
|
||||
if(prob(80))
|
||||
user.gain_trauma(/datum/brain_trauma/mild/concussion)
|
||||
user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8)
|
||||
@@ -448,7 +448,7 @@
|
||||
user.visible_message(span_danger("[user] slams hard into [hit], knocking [user.p_them()] senseless!"), span_userdanger("You slam hard into [hit], knocking yourself senseless!"))
|
||||
user.adjustStaminaLoss(30, updating_health=FALSE)
|
||||
user.adjustBruteLoss(10)
|
||||
user.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
user.adjust_confusion(10 SECONDS)
|
||||
user.Knockdown(30)
|
||||
shake_camera(user, 3, 4)
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
if(highest_strength != TURF_WET_LUBE)
|
||||
return
|
||||
|
||||
slipped.set_timed_status_effect(8 SECONDS, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
slipped.set_confusion_if_lower(8 SECONDS)
|
||||
|
||||
/datum/component/wet_floor/proc/update_flags()
|
||||
var/intensity
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
affected_mob.Unconscious(40)
|
||||
|
||||
if(DT_PROB(10, delta_time))
|
||||
affected_mob.adjust_timed_status_effect(14 SECONDS, /datum/status_effect/speech/slurring/drunk)
|
||||
affected_mob.adjust_slurring(14 SECONDS)
|
||||
|
||||
if(DT_PROB(7, delta_time))
|
||||
affected_mob.set_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
affected_mob.set_dizzy_if_lower(20 SECONDS)
|
||||
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
to_chat(affected_mob, span_warning(pick("You feel pain shoot down your legs!", "You feel like you are going to pass out at any moment.", "You feel really dizzy.")))
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
to_chat(infected_mob, span_warning("[pick("Your head hurts.", "Your mind blanks for a moment.")]"))
|
||||
else
|
||||
to_chat(infected_mob, span_userdanger("You can't think straight!"))
|
||||
infected_mob.adjust_timed_status_effect(16 SECONDS * power, /datum/status_effect/confusion)
|
||||
infected_mob.adjust_confusion(16 SECONDS * power)
|
||||
if(brain_damage)
|
||||
infected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3 * power, 80)
|
||||
infected_mob.updatehealth()
|
||||
|
||||
@@ -44,6 +44,6 @@
|
||||
to_chat(M, span_warning("[pick("You feel dizzy.", "Your head spins.")]"))
|
||||
else
|
||||
to_chat(M, span_userdanger("A wave of dizziness washes over you!"))
|
||||
M.adjust_timed_status_effect(1 MINUTES, /datum/status_effect/dizziness, max_duration = 140 SECONDS)
|
||||
M.adjust_dizzy_up_to(1 MINUTES, 140 SECONDS)
|
||||
if(power >= 2)
|
||||
M.set_timed_status_effect(80 SECONDS, /datum/status_effect/drugginess)
|
||||
M.set_drugginess(80 SECONDS)
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
|
||||
|
||||
if(A.stage >= 3)
|
||||
M.adjust_timed_status_effect(-4 SECONDS, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-4 SECONDS)
|
||||
M.adjust_drowsyness(-2)
|
||||
M.adjust_timed_status_effect(-1 SECONDS, /datum/status_effect/speech/slurring/drunk)
|
||||
M.adjust_timed_status_effect(-2 SECONDS, /datum/status_effect/confusion)
|
||||
M.adjust_slurring(-1 SECONDS)
|
||||
M.adjust_confusion(-2 SECONDS)
|
||||
if(purge_alcohol)
|
||||
M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3)
|
||||
M.adjust_drunk_effect(-5)
|
||||
|
||||
@@ -28,15 +28,15 @@
|
||||
to_chat(affected_mob, span_notice("You feel panicky."))
|
||||
if(DT_PROB(1, delta_time))
|
||||
to_chat(affected_mob, span_danger("You're overtaken with panic!"))
|
||||
affected_mob.adjust_timed_status_effect(rand(2 SECONDS, 3 SECONDS), /datum/status_effect/confusion)
|
||||
affected_mob.adjust_confusion(rand(2 SECONDS, 3 SECONDS))
|
||||
if(4)
|
||||
if(DT_PROB(5, delta_time))
|
||||
to_chat(affected_mob, span_danger("You feel butterflies in your stomach."))
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
affected_mob.visible_message(span_danger("[affected_mob] stumbles around in a panic."), \
|
||||
span_userdanger("You have a panic attack!"))
|
||||
affected_mob.adjust_timed_status_effect(rand(6 SECONDS, 8 SECONDS), /datum/status_effect/confusion)
|
||||
affected_mob.adjust_timed_status_effect(rand(12 SECONDS, 16 SECONDS), /datum/status_effect/jitter)
|
||||
affected_mob.adjust_confusion(rand(6 SECONDS, 8 SECONDS))
|
||||
affected_mob.adjust_jitter(rand(12 SECONDS, 16 SECONDS))
|
||||
if(DT_PROB(1, delta_time))
|
||||
affected_mob.visible_message(span_danger("[affected_mob] coughs up butterflies!"), \
|
||||
span_userdanger("You cough up butterflies!"))
|
||||
|
||||
@@ -55,4 +55,4 @@
|
||||
if(prob(1))
|
||||
affected_mob.emote("snore")
|
||||
if(DT_PROB(7.5, delta_time))
|
||||
affected_mob.adjust_timed_status_effect(6 SECONDS, /datum/status_effect/speech/stutter)
|
||||
affected_mob.adjust_stutter(6 SECONDS)
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1, 170)
|
||||
affected_mob.adjustCloneLoss(2, FALSE)
|
||||
if(DT_PROB(7.5, delta_time))
|
||||
affected_mob.adjust_timed_status_effect(6 SECONDS, /datum/status_effect/speech/stutter)
|
||||
affected_mob.adjust_stutter(6 SECONDS)
|
||||
if(5)
|
||||
if(DT_PROB(1, delta_time))
|
||||
affected_mob.emote("itch")
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
to_chat(affected_mob, span_warning("You feel [pick("discomfort", "pressure", "a burning sensation", "pain")] in your chest."))
|
||||
if(DT_PROB(1, delta_time))
|
||||
to_chat(affected_mob, span_warning("You feel dizzy."))
|
||||
affected_mob.adjust_timed_status_effect(6 SECONDS, /datum/status_effect/confusion)
|
||||
affected_mob.adjust_confusion(6 SECONDS)
|
||||
if(DT_PROB(1.5, delta_time))
|
||||
to_chat(affected_mob, span_warning("You feel [pick("full", "nauseated", "sweaty", "weak", "tired", "short on breath", "uneasy")]."))
|
||||
if(3 to 4)
|
||||
@@ -53,7 +53,7 @@
|
||||
affected_mob.losebreath += 4
|
||||
if(DT_PROB(1.5, delta_time))
|
||||
to_chat(affected_mob, span_danger("You feel very weak and dizzy..."))
|
||||
affected_mob.adjust_timed_status_effect(8 SECONDS, /datum/status_effect/confusion)
|
||||
affected_mob.adjust_confusion(8 SECONDS)
|
||||
affected_mob.adjustStaminaLoss(40, FALSE)
|
||||
affected_mob.emote("cough")
|
||||
if(5)
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
if(3)
|
||||
if(DT_PROB(2, delta_time))
|
||||
to_chat(affected_mob, span_danger("You feel a stabbing pain in your head."))
|
||||
affected_mob.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
affected_mob.adjust_confusion(10 SECONDS)
|
||||
if(4)
|
||||
if(DT_PROB(1.5, delta_time))
|
||||
affected_mob.say(pick("Eeek, ook ook!", "Eee-eeek!", "Eeee!", "Ungh, ungh."), forced = "jungle fever")
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
if(4)
|
||||
if(DT_PROB(1, delta_time))
|
||||
to_chat(affected_mob, span_userdanger("You see four of everything!"))
|
||||
affected_mob.set_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
affected_mob.set_dizzy_if_lower(10 SECONDS)
|
||||
if(DT_PROB(1, delta_time))
|
||||
to_chat(affected_mob, span_danger("You feel a sharp pain from your lower chest!"))
|
||||
affected_mob.adjustOxyLoss(5, FALSE)
|
||||
@@ -49,7 +49,7 @@
|
||||
affected_mob.AdjustSleeping(100)
|
||||
if(DT_PROB(1, delta_time))
|
||||
to_chat(affected_mob, span_userdanger("You feel your mind relax and your thoughts drift!"))
|
||||
affected_mob.adjust_timed_status_effect(8 SECONDS, /datum/status_effect/confusion, max_duration = 100 SECONDS)
|
||||
affected_mob.adjust_confusion_up_to(8 SECONDS, 100 SECONDS)
|
||||
if(DT_PROB(5, delta_time))
|
||||
affected_mob.vomit(20)
|
||||
if(DT_PROB(1.5, delta_time))
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
var/mob/living/carbon/human/U = user
|
||||
if(!istype(U.dna.species, /datum/species/skeleton))
|
||||
U.adjustStaminaLoss(35) //Extra Damage
|
||||
U.set_timed_status_effect(70 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
U.set_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
U.set_jitter_if_lower(70 SECONDS)
|
||||
U.set_stutter(40 SECONDS)
|
||||
if(U.getStaminaLoss() > 95)
|
||||
to_chat(U, "<font color ='red', size ='4'><B>Your ears weren't meant for this spectral sound.</B></font>")
|
||||
INVOKE_ASYNC(src, .proc/spectral_change, U)
|
||||
@@ -35,16 +35,16 @@
|
||||
if(istype(H.dna.species, /datum/species/zombie))
|
||||
H.adjustStaminaLoss(25)
|
||||
H.Paralyze(15) //zombies can't resist the doot
|
||||
C.set_timed_status_effect(70 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
C.set_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
C.set_jitter_if_lower(70 SECONDS)
|
||||
C.set_stutter(40 SECONDS)
|
||||
if((!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly)))
|
||||
C.adjustStaminaLoss(25) //boneless humanoids don't lose the will to live
|
||||
to_chat(C, "<font color='red' size='4'><B>DOOT</B></font>")
|
||||
INVOKE_ASYNC(src, .proc/spectral_change, H)
|
||||
|
||||
else //the sound will spook monkeys.
|
||||
C.set_timed_status_effect(30 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
C.set_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
C.set_jitter_if_lower(30 SECONDS)
|
||||
C.set_stutter(40 SECONDS)
|
||||
|
||||
/datum/element/spooky/proc/spectral_change(mob/living/carbon/human/H, mob/user)
|
||||
if((H.getStaminaLoss() > 95) && (!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly)))
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, TRUE, -1)
|
||||
if(I && D.temporarilyRemoveItemFromInventory(I))
|
||||
A.put_in_hands(I)
|
||||
D.set_timed_status_effect(4 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
D.set_jitter_if_lower(4 SECONDS)
|
||||
D.apply_damage(5, A.get_attack_type())
|
||||
else
|
||||
D.visible_message(span_danger("[A] fails to disarm [D]!"), \
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
return
|
||||
owner.visible_message(span_danger("[owner] starts having a seizure!"), span_userdanger("You have a seizure!"))
|
||||
owner.Unconscious(200 * GET_MUTATION_POWER(src))
|
||||
owner.set_timed_status_effect(2000 SECONDS * GET_MUTATION_POWER(src), /datum/status_effect/jitter) //yes this number looks crazy but the jitter animations are amplified based on the duration.
|
||||
owner.set_jitter(2000 SECONDS * GET_MUTATION_POWER(src)) //yes this number looks crazy but the jitter animations are amplified based on the duration.
|
||||
owner.add_mood_event("epilepsy", /datum/mood_event/epilepsy)
|
||||
addtimer(CALLBACK(src, .proc/jitter_less), 90)
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
if(QDELETED(owner))
|
||||
return
|
||||
|
||||
owner.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter)
|
||||
owner.set_jitter(20 SECONDS)
|
||||
|
||||
/datum/mutation/human/epilepsy/on_acquiring(mob/living/carbon/human/acquirer)
|
||||
if(..())
|
||||
@@ -489,7 +489,7 @@
|
||||
H.Stun(20)
|
||||
H.blur_eyes(20)
|
||||
eyes?.applyOrganDamage(5)
|
||||
H.adjust_timed_status_effect(3 SECONDS, /datum/status_effect/confusion)
|
||||
H.adjust_confusion(3 SECONDS)
|
||||
for(var/mob/living/silicon/S in view(2,owner))
|
||||
to_chat(S, span_userdanger("Your sensors are disabled by a shower of blood!"))
|
||||
S.Paralyze(60)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
/datum/mutation/human/nervousness/on_life(delta_time, times_fired)
|
||||
if(DT_PROB(5, delta_time))
|
||||
owner.set_timed_status_effect(20 SECONDS, /datum/status_effect/speech/stutter, only_if_higher = TRUE)
|
||||
owner.set_stutter_if_lower(20 SECONDS)
|
||||
|
||||
/datum/mutation/human/wacky
|
||||
name = "Wacky"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
if(carbon_victim.electrocute_act(15, caster, 1, SHOCK_NOGLOVES | SHOCK_NOSTUN))//doesnt stun. never let this stun
|
||||
carbon_victim.dropItemToGround(carbon_victim.get_active_held_item())
|
||||
carbon_victim.dropItemToGround(carbon_victim.get_inactive_held_item())
|
||||
carbon_victim.adjust_timed_status_effect(15 SECONDS, /datum/status_effect/confusion)
|
||||
carbon_victim.adjust_confusion(15 SECONDS)
|
||||
carbon_victim.visible_message(
|
||||
span_danger("[caster] electrocutes [victim]!"),
|
||||
span_userdanger("[caster] electrocutes you!"),
|
||||
|
||||
@@ -571,7 +571,7 @@
|
||||
break
|
||||
if(prob(max(5,(nearby_people*12.5*moodmod)))) //Minimum 1/20 chance of stutter
|
||||
// Add a short stutter, THEN treat our word
|
||||
quirker.adjust_timed_status_effect(0.5 SECONDS, /datum/status_effect/speech/stutter)
|
||||
quirker.adjust_stutter(0.5 SECONDS)
|
||||
new_message += quirker.treat_message(word, capitalize_message = FALSE)
|
||||
|
||||
else
|
||||
@@ -617,10 +617,10 @@
|
||||
|
||||
switch(rand(1,3))
|
||||
if(1)
|
||||
quirk_holder.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
quirk_holder.set_jitter_if_lower(20 SECONDS)
|
||||
msg += "causing you to start fidgeting!"
|
||||
if(2)
|
||||
quirk_holder.set_timed_status_effect(6 SECONDS, /datum/status_effect/speech/stutter, only_if_higher = TRUE)
|
||||
quirk_holder.set_stutter_if_lower(6 SECONDS)
|
||||
msg += "causing you to start stuttering!"
|
||||
if(3)
|
||||
quirk_holder.Stun(2 SECONDS)
|
||||
|
||||
@@ -318,9 +318,9 @@
|
||||
|
||||
/datum/status_effect/good_music/tick()
|
||||
if(owner.can_hear())
|
||||
owner.adjust_timed_status_effect(-4 SECONDS, /datum/status_effect/dizziness)
|
||||
owner.adjust_timed_status_effect(-4 SECONDS, /datum/status_effect/jitter)
|
||||
owner.adjust_timed_status_effect(-1 SECONDS, /datum/status_effect/confusion)
|
||||
owner.adjust_dizzy(-4 SECONDS)
|
||||
owner.adjust_jitter(-4 SECONDS)
|
||||
owner.adjust_confusion(-1 SECONDS)
|
||||
owner.add_mood_event("goodmusic", /datum/mood_event/goodmusic)
|
||||
|
||||
/atom/movable/screen/alert/status_effect/regenerative_core
|
||||
|
||||
@@ -551,7 +551,7 @@
|
||||
/datum/status_effect/trance/tick()
|
||||
if(stun)
|
||||
owner.Stun(6 SECONDS, TRUE)
|
||||
owner.set_timed_status_effect(40 SECONDS, /datum/status_effect/dizziness)
|
||||
owner.set_dizzy(40 SECONDS)
|
||||
|
||||
/datum/status_effect/trance/on_apply()
|
||||
if(!iscarbon(owner))
|
||||
@@ -671,7 +671,7 @@
|
||||
span_notice("[H]'s hand convulses, and they drop their [I.name]!"),
|
||||
span_userdanger("Your hand convulses violently, and you drop what you were holding!"),
|
||||
)
|
||||
H.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/jitter)
|
||||
H.adjust_jitter(10 SECONDS)
|
||||
|
||||
/atom/movable/screen/alert/status_effect/convulsing
|
||||
name = "Shaky Hands"
|
||||
|
||||
@@ -157,27 +157,27 @@
|
||||
|
||||
// There's always a 30% chance to gain some drunken slurring
|
||||
if(prob(30))
|
||||
owner.adjust_timed_status_effect(4 SECONDS, /datum/status_effect/speech/slurring/drunk)
|
||||
owner.adjust_slurring(4 SECONDS)
|
||||
|
||||
// And drunk people will always lose jitteriness
|
||||
owner.adjust_timed_status_effect(-6 SECONDS, /datum/status_effect/jitter)
|
||||
owner.adjust_jitter(-6 SECONDS)
|
||||
|
||||
// Over 11, we will constantly gain slurring up to 10 seconds of slurring.
|
||||
if(drunk_value >= 11)
|
||||
owner.adjust_timed_status_effect(2.4 SECONDS, /datum/status_effect/speech/slurring/drunk, max_duration = 10 SECONDS)
|
||||
owner.adjust_slurring_up_to(2.4 SECONDS, 10 SECONDS)
|
||||
|
||||
// Over 41, we have a 30% chance to gain confusion, and we will always have 20 seconds of dizziness.
|
||||
if(drunk_value >= 41)
|
||||
if(prob(30))
|
||||
owner.adjust_timed_status_effect(2 SECONDS, /datum/status_effect/confusion)
|
||||
owner.adjust_confusion(2 SECONDS)
|
||||
|
||||
owner.set_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
owner.set_dizzy_if_lower(20 SECONDS)
|
||||
|
||||
// Over 51, we have a 3% chance to gain a lot of confusion and vomit, and we will always have 50 seconds of dizziness
|
||||
if(drunk_value >= 51)
|
||||
owner.set_timed_status_effect(50 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
owner.set_dizzy_if_lower(50 SECONDS)
|
||||
if(prob(3))
|
||||
owner.adjust_timed_status_effect(15 SECONDS, /datum/status_effect/confusion)
|
||||
owner.adjust_confusion(15 SECONDS)
|
||||
if(iscarbon(owner))
|
||||
var/mob/living/carbon/carbon_owner = owner
|
||||
carbon_owner.vomit() // Vomiting clears toxloss - consider this a blessing
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
return FALSE
|
||||
var/amplitude = rand(1 SECONDS, 3 SECONDS)
|
||||
duration = amplitude
|
||||
owner.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(100 SECONDS)
|
||||
owner.Paralyze(duration)
|
||||
owner.visible_message(span_warning("[owner] drops to the ground as [owner.p_they()] start seizing up."), \
|
||||
span_warning("[pick("You can't collect your thoughts...", "You suddenly feel extremely dizzy...", "You cant think straight...","You can't move your face properly anymore...")]"))
|
||||
|
||||
@@ -342,14 +342,14 @@
|
||||
|
||||
//phase 1
|
||||
if(1 to EIGENSTASIUM_PHASE_1_END)
|
||||
owner.set_timed_status_effect(4 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(4 SECONDS)
|
||||
owner.adjust_nutrition(-4)
|
||||
|
||||
//phase 2
|
||||
if(EIGENSTASIUM_PHASE_1_END to EIGENSTASIUM_PHASE_2_END)
|
||||
if(current_cycle == 51)
|
||||
to_chat(owner, span_userdanger("You start to convlse violently as you feel your consciousness merges across realities, your possessions flying wildy off your body!"))
|
||||
owner.set_timed_status_effect(400 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(400 SECONDS)
|
||||
owner.Knockdown(10)
|
||||
|
||||
var/list/items = list()
|
||||
@@ -377,7 +377,7 @@
|
||||
//Clone function - spawns a clone then deletes it - simulates multiple copies of the player teleporting in
|
||||
switch(phase_3_cycle) //Loops 0 -> 1 -> 2 -> 1 -> 2 -> 1 ...ect.
|
||||
if(0)
|
||||
owner.set_timed_status_effect(200 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(200 SECONDS)
|
||||
to_chat(owner, span_userdanger("Your eigenstate starts to rip apart, drawing in alternative reality versions of yourself!"))
|
||||
if(1)
|
||||
var/typepath = owner.type
|
||||
@@ -406,7 +406,7 @@
|
||||
do_teleport(owner, get_turf(owner), 2, no_effects=TRUE) //teleports clone so it's hard to find the real one!
|
||||
do_sparks(5, FALSE, owner)
|
||||
owner.Sleeping(100)
|
||||
owner.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(100 SECONDS)
|
||||
to_chat(owner, span_userdanger("You feel your eigenstate settle, as \"you\" become an alternative version of yourself!"))
|
||||
owner.emote("me",1,"flashes into reality suddenly, gasping as they gaze around in a bewildered and highly confused fashion!",TRUE)
|
||||
owner.log_message("has become an alternative universe version of themselves via EIGENSTASIUM.", LOG_GAME)
|
||||
|
||||
@@ -154,18 +154,18 @@
|
||||
var/time_diff = world.time - start_time
|
||||
switch(time_diff)
|
||||
if(0 to 100)
|
||||
victim.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
victim.set_timed_status_effect(200 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
victim.adjust_confusion(10 SECONDS)
|
||||
victim.set_dizzy_if_lower(200 SECONDS)
|
||||
victim.blur_eyes(5)
|
||||
if(101 to 200)
|
||||
victim.adjust_timed_status_effect(15 SECONDS, /datum/status_effect/confusion)
|
||||
victim.set_timed_status_effect(400 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
victim.adjust_confusion(15 SECONDS)
|
||||
victim.set_dizzy_if_lower(400 SECONDS)
|
||||
victim.blur_eyes(10)
|
||||
if(prob(25))
|
||||
victim.apply_status_effect(/datum/status_effect/trance, rand(50,150), FALSE)
|
||||
if(201 to INFINITY)
|
||||
victim.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/confusion)
|
||||
victim.set_timed_status_effect(600 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
victim.adjust_confusion(20 SECONDS)
|
||||
victim.set_dizzy_if_lower(600 SECONDS)
|
||||
victim.blur_eyes(15)
|
||||
if(prob(65))
|
||||
victim.apply_status_effect(/datum/status_effect/trance, rand(50,150), FALSE)
|
||||
|
||||
@@ -489,7 +489,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
var/mob/living/carbon/spawned_carbon = hangover_mob
|
||||
spawned_carbon.set_resting(TRUE, silent = TRUE)
|
||||
if(prob(50))
|
||||
spawned_carbon.adjust_timed_status_effect(rand(30 SECONDS, 40 SECONDS), /datum/status_effect/drugginess)
|
||||
spawned_carbon.adjust_drugginess(rand(30 SECONDS, 40 SECONDS))
|
||||
else
|
||||
spawned_carbon.adjust_drunk_effect(rand(15, 25))
|
||||
spawned_carbon.adjust_disgust(rand(5, 55)) //How hungover are you?
|
||||
|
||||
@@ -701,7 +701,7 @@
|
||||
user.playsound_local(get_turf(src), slowbeat, 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE)
|
||||
if(isliving(user))
|
||||
var/mob/living/living_user = user
|
||||
living_user.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/jitter)
|
||||
living_user.adjust_jitter(10 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/drop_card, user), 10 SECONDS)
|
||||
. += span_notice("<i>There's more information below, you can look again to take a closer look...</i>")
|
||||
|
||||
|
||||
@@ -517,7 +517,7 @@
|
||||
span_userdanger("[user] touches [M] with [src]!"))
|
||||
M.adjustStaminaLoss(60)
|
||||
M.Knockdown(75)
|
||||
M.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(100 SECONDS)
|
||||
M.apply_status_effect(/datum/status_effect/convulsing)
|
||||
playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1)
|
||||
if(HAS_TRAIT(M,MOB_ORGANIC))
|
||||
@@ -563,7 +563,7 @@
|
||||
H.apply_damage(50, BURN, BODY_ZONE_CHEST)
|
||||
log_combat(user, H, "overloaded the heart of", defib)
|
||||
H.Paralyze(100)
|
||||
H.set_timed_status_effect(200 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
H.set_jitter_if_lower(200 SECONDS)
|
||||
do_success()
|
||||
return
|
||||
do_cancel()
|
||||
@@ -638,7 +638,7 @@
|
||||
H.grab_ghost()
|
||||
H.revive(full_heal = FALSE, admin_revive = FALSE)
|
||||
H.emote("gasp")
|
||||
H.set_timed_status_effect(200 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
H.set_jitter_if_lower(200 SECONDS)
|
||||
SEND_SIGNAL(H, COMSIG_LIVING_MINOR_SHOCK)
|
||||
user.add_mood_event("saved_life", /datum/mood_event/saved_life)
|
||||
log_combat(user, H, "revived", defib)
|
||||
|
||||
@@ -67,5 +67,5 @@
|
||||
else
|
||||
to_chat(target, span_hypnophrase("The light is so pretty..."))
|
||||
target.adjust_drowsyness(min(target.drowsyness + 10, 20))
|
||||
target.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion, max_duration = 20 SECONDS)
|
||||
target.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness, max_duration = 40 SECONDS)
|
||||
target.adjust_confusion_up_to(10 SECONDS, 20 SECONDS)
|
||||
target.adjust_dizzy_up_to(20 SECONDS, 40 SECONDS)
|
||||
|
||||
@@ -234,7 +234,7 @@
|
||||
SEND_SOUND(slapped, sound('sound/weapons/flash_ring.ogg'))
|
||||
shake_camera(slapped, 2, 2)
|
||||
slapped.Paralyze(2.5 SECONDS)
|
||||
slapped.adjust_timed_status_effect(7 SECONDS, /datum/status_effect/confusion)
|
||||
slapped.adjust_confusion(7 SECONDS)
|
||||
slapped.adjustStaminaLoss(40)
|
||||
else if(user.zone_selected == BODY_ZONE_HEAD || user.zone_selected == BODY_ZONE_PRECISE_MOUTH)
|
||||
if(user == slapped)
|
||||
@@ -495,12 +495,12 @@
|
||||
if(1)
|
||||
other_msg = "stumbles slightly, turning a bright red!"
|
||||
self_msg = "You lose control of your limbs for a moment as your blood rushes to your face, turning it bright red!"
|
||||
living_target.adjust_timed_status_effect(rand(5 SECONDS, 10 SECONDS), /datum/status_effect/confusion)
|
||||
living_target.adjust_confusion(rand(5 SECONDS, 10 SECONDS))
|
||||
if(2)
|
||||
other_msg = "stammers softly for a moment before choking on something!"
|
||||
self_msg = "You feel your tongue disappear down your throat as you fight to remember how to make words!"
|
||||
addtimer(CALLBACK(living_target, /atom/movable.proc/say, pick("Uhhh...", "O-oh, uhm...", "I- uhhhhh??", "You too!!", "What?")), rand(0.5 SECONDS, 1.5 SECONDS))
|
||||
living_target.adjust_timed_status_effect(rand(10 SECONDS, 30 SECONDS), /datum/status_effect/speech/stutter)
|
||||
living_target.adjust_stutter(rand(10 SECONDS, 30 SECONDS))
|
||||
if(3)
|
||||
other_msg = "locks up with a stunned look on [living_target.p_their()] face, staring at [firer ? firer : "the ceiling"]!"
|
||||
self_msg = "Your brain completely fails to process what just happened, leaving you rooted in place staring at [firer ? "[firer]" : "the ceiling"] for what feels like an eternity!"
|
||||
|
||||
@@ -371,8 +371,8 @@
|
||||
return span_danger("The baton is still charging!")
|
||||
|
||||
/obj/item/melee/baton/telescopic/contractor_baton/additional_effects_non_cyborg(mob/living/target, mob/living/user)
|
||||
target.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
target.adjust_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
target.set_jitter_if_lower(40 SECONDS)
|
||||
target.adjust_stutter(40 SECONDS)
|
||||
|
||||
/obj/item/melee/baton/security
|
||||
name = "stun baton"
|
||||
@@ -563,9 +563,9 @@
|
||||
* After a period of time, we then check to see what stun duration we give.
|
||||
*/
|
||||
/obj/item/melee/baton/security/additional_effects_non_cyborg(mob/living/target, mob/living/user)
|
||||
target.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
target.set_timed_status_effect(10 SECONDS, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
target.set_timed_status_effect(16 SECONDS, /datum/status_effect/speech/stutter, only_if_higher = TRUE)
|
||||
target.set_jitter_if_lower(40 SECONDS)
|
||||
target.set_confusion_if_lower(10 SECONDS)
|
||||
target.set_stutter_if_lower(16 SECONDS)
|
||||
|
||||
SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK)
|
||||
addtimer(CALLBACK(src, .proc/apply_stun_effect_end, target), 2 SECONDS)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
user.do_attack_animation(attacked_mob)
|
||||
attacked_mob.Paralyze(100)
|
||||
attacked_mob.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/speech/stutter)
|
||||
attacked_mob.adjust_stutter(10 SECONDS)
|
||||
|
||||
attacked_mob.visible_message(span_danger("[user] prods [attacked_mob] with [src]!"), \
|
||||
span_userdanger("[user] prods you with [src]!"))
|
||||
@@ -326,7 +326,7 @@
|
||||
for(var/mob/living/carbon/carbon in get_hearers_in_view(9, user))
|
||||
if(carbon.get_ear_protection())
|
||||
continue
|
||||
carbon.adjust_timed_status_effect(6 SECONDS, /datum/status_effect/confusion)
|
||||
carbon.adjust_confusion(6 SECONDS)
|
||||
|
||||
audible_message("<font color='red' size='7'>HUMAN HARM</font>")
|
||||
playsound(get_turf(src), 'sound/ai/harmalarm.ogg', 70, 3)
|
||||
@@ -341,14 +341,14 @@
|
||||
var/bang_effect = carbon.soundbang_act(2, 0, 0, 5)
|
||||
switch(bang_effect)
|
||||
if(1)
|
||||
carbon.adjust_timed_status_effect(5 SECONDS, /datum/status_effect/confusion)
|
||||
carbon.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/speech/stutter)
|
||||
carbon.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/jitter)
|
||||
carbon.adjust_confusion(5 SECONDS)
|
||||
carbon.adjust_stutter(20 SECONDS)
|
||||
carbon.adjust_jitter(20 SECONDS)
|
||||
if(2)
|
||||
carbon.Paralyze(40)
|
||||
carbon.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
carbon.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/speech/stutter)
|
||||
carbon.adjust_timed_status_effect(50 SECONDS, /datum/status_effect/jitter)
|
||||
carbon.adjust_confusion(10 SECONDS)
|
||||
carbon.adjust_stutter(30 SECONDS)
|
||||
carbon.adjust_jitter(50 SECONDS)
|
||||
playsound(get_turf(src), 'sound/machines/warning-buzzer.ogg', 130, 3)
|
||||
COOLDOWN_START(src, alarm_cooldown, HARM_ALARM_NO_SAFETY_COOLDOWN)
|
||||
user.log_message("used an emagged Cyborg Harm Alarm", LOG_ATTACK)
|
||||
|
||||
@@ -199,7 +199,7 @@ at the cost of risking a vicious bite.**/
|
||||
visible_message(span_warning("You start feeling nauseous..."))
|
||||
for(var/mob/living/viewing_mob in viewers(7, src))
|
||||
viewing_mob.blur_eyes(10)
|
||||
viewing_mob.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
viewing_mob.adjust_confusion(10 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/pants_stagethree), ALTAR_TIME)
|
||||
|
||||
/// Continues the creation, making every mob nearby dizzy
|
||||
@@ -208,7 +208,7 @@ at the cost of risking a vicious bite.**/
|
||||
update_icon()
|
||||
visible_message(span_warning("You start feeling horrible..."))
|
||||
for(var/mob/living/viewing_mob in viewers(7, src))
|
||||
viewing_mob.set_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
viewing_mob.set_dizzy_if_lower(20 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/pants_create), ALTAR_TIME)
|
||||
|
||||
/// Finishes the creation, creating the item itself, setting the cooldowns and flashing every mob nearby.
|
||||
|
||||
@@ -379,7 +379,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14))
|
||||
if(baton.cell?.charge && baton.active)
|
||||
flick("baton_active", src)
|
||||
user.Paralyze(baton.knockdown_time)
|
||||
user.set_timed_status_effect(baton.knockdown_time, /datum/status_effect/speech/stutter)
|
||||
user.set_stutter(baton.knockdown_time)
|
||||
baton.cell.use(baton.cell_hit_cost)
|
||||
user.visible_message(span_warning("[user] shocks [user.p_them()]self while attempting to wash the active [baton.name]!"), \
|
||||
span_userdanger("You unwisely attempt to wash [baton] while it's still on."))
|
||||
@@ -628,7 +628,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink/kitchen, (-16))
|
||||
if(baton.cell?.charge && baton.active)
|
||||
flick("baton_active", src)
|
||||
user.Paralyze(baton.knockdown_time)
|
||||
user.set_timed_status_effect(baton.knockdown_time, /datum/status_effect/speech/stutter)
|
||||
user.set_stutter(baton.knockdown_time)
|
||||
baton.cell.use(baton.cell_hit_cost)
|
||||
user.visible_message(span_warning("[user] shocks [user.p_them()]self while attempting to wash the active [baton.name]!"), \
|
||||
span_userdanger("You unwisely attempt to wash [baton] while it's still on."))
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
else
|
||||
target.adjustBruteLoss(min(BSA_MAX_DAMAGE, target.health - 1))
|
||||
target.Paralyze(BSA_PARALYZE_TIME)
|
||||
target.set_timed_status_effect(BSA_STUTTER_TIME, /datum/status_effect/speech/stutter)
|
||||
target.set_stutter(BSA_STUTTER_TIME)
|
||||
|
||||
#undef BSA_CHANCE_TO_BREAK_TILE_TO_PLATING
|
||||
#undef BSA_MAX_DAMAGE
|
||||
|
||||
@@ -513,9 +513,9 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
if(BATON_STUN)
|
||||
target.visible_message(span_danger("[user] stuns [target] with [src]!"),
|
||||
span_userdanger("[user] stuns you with [src]!"))
|
||||
target.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
target.set_timed_status_effect(10 SECONDS, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
target.set_timed_status_effect(16 SECONDS, /datum/status_effect/speech/stutter, only_if_higher = TRUE)
|
||||
target.set_jitter_if_lower(40 SECONDS)
|
||||
target.set_confusion_if_lower(10 SECONDS)
|
||||
target.set_stutter_if_lower(16 SECONDS)
|
||||
SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK)
|
||||
target.Paralyze(knockdown_time * (HAS_TRAIT(target, TRAIT_BATON_RESISTANCE) ? 0.1 : 1))
|
||||
if(BATON_SLEEP)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
target.Stun(50)
|
||||
if(2)
|
||||
to_chat(target, span_warning("You hear an annoying buzz in your head."))
|
||||
target.adjust_timed_status_effect(15 SECONDS, /datum/status_effect/confusion)
|
||||
target.adjust_confusion(15 SECONDS)
|
||||
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 160)
|
||||
if(3)
|
||||
target.adjust_hallucinations(120 SECONDS)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
/datum/reagent/blob/regenerative_materia/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind)
|
||||
. = ..()
|
||||
reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind)
|
||||
exposed_mob.adjust_timed_status_effect(reac_volume * 2 SECONDS, /datum/status_effect/drugginess)
|
||||
exposed_mob.adjust_drugginess(reac_volume * 2 SECONDS)
|
||||
if(exposed_mob.reagents)
|
||||
exposed_mob.reagents.add_reagent(/datum/reagent/blob/regenerative_materia, 0.2*reac_volume)
|
||||
exposed_mob.reagents.add_reagent(/datum/reagent/toxin/spore, 0.2*reac_volume)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
to_chat(blinded_humans, span_userdanger("You are blinded by a shower of blood!"))
|
||||
blinded_humans.Stun(20)
|
||||
blinded_humans.blur_eyes(20)
|
||||
blinded_humans.adjust_timed_status_effect(3 SECONDS, /datum/status_effect/confusion)
|
||||
blinded_humans.adjust_confusion(3 SECONDS)
|
||||
|
||||
for(var/mob/living/silicon/blinded_silicons in range(2,user))
|
||||
to_chat(blinded_silicons, span_userdanger("Your sensors are disabled by a shower of blood!"))
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
var/obj/item/organ/internal/ears/ears = C.getorganslot(ORGAN_SLOT_EARS)
|
||||
if(ears)
|
||||
ears.adjustEarDamage(0, 30)
|
||||
C.adjust_timed_status_effect(25 SECONDS, /datum/status_effect/confusion)
|
||||
C.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
C.adjust_confusion(25 SECONDS)
|
||||
C.set_jitter_if_lower(100 SECONDS)
|
||||
else
|
||||
SEND_SOUND(C, sound('sound/effects/screech.ogg'))
|
||||
|
||||
|
||||
@@ -419,9 +419,9 @@
|
||||
else if(iscarbon(target))
|
||||
var/mob/living/carbon/carbon_target = target
|
||||
carbon_target.silent += 6
|
||||
carbon_target.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/speech/stutter)
|
||||
carbon_target.adjust_stutter(30 SECONDS)
|
||||
carbon_target.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/speech/slurring/cult)
|
||||
carbon_target.set_timed_status_effect(30 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
carbon_target.set_jitter_if_lower(30 SECONDS)
|
||||
uses--
|
||||
..()
|
||||
|
||||
|
||||
@@ -476,7 +476,7 @@ Striking a noncultist, however, will tear their flesh."}
|
||||
to_chat(user, span_cultlarge("\"I wouldn't advise that.\""))
|
||||
to_chat(user, span_warning("An overwhelming sense of nausea overpowers you!"))
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.set_timed_status_effect(1 MINUTES, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
user.set_dizzy_if_lower(1 MINUTES)
|
||||
user.Paralyze(100)
|
||||
|
||||
/obj/item/clothing/suit/hooded/cultrobes/berserker
|
||||
@@ -498,7 +498,7 @@ Striking a noncultist, however, will tear their flesh."}
|
||||
to_chat(user, span_cultlarge("\"I wouldn't advise that.\""))
|
||||
to_chat(user, span_warning("An overwhelming sense of nausea overpowers you!"))
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.set_timed_status_effect(1 MINUTES, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
user.set_dizzy_if_lower(1 MINUTES)
|
||||
user.Paralyze(100)
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night/cultblind
|
||||
@@ -513,7 +513,7 @@ Striking a noncultist, however, will tear their flesh."}
|
||||
if(user.stat != DEAD && !IS_CULTIST(user) && slot == ITEM_SLOT_EYES)
|
||||
to_chat(user, span_cultlarge("\"You want to be blind, do you?\""))
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.set_timed_status_effect(1 MINUTES, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
user.set_dizzy_if_lower(1 MINUTES)
|
||||
user.Paralyze(100)
|
||||
user.adjust_blindness(30)
|
||||
|
||||
|
||||
@@ -64,11 +64,11 @@
|
||||
human_in_range.adjust_hallucinations_up_to(10 SECONDS, 240 SECONDS)
|
||||
|
||||
if(DT_PROB(40, delta_time))
|
||||
human_in_range.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
human_in_range.set_jitter_if_lower(10 SECONDS)
|
||||
|
||||
if(human_in_range.getStaminaLoss() <= 85 && DT_PROB(30, delta_time))
|
||||
human_in_range.emote(pick("giggle", "laugh"))
|
||||
human_in_range.adjustStaminaLoss(10)
|
||||
|
||||
if(DT_PROB(25, delta_time))
|
||||
human_in_range.set_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
human_in_range.set_dizzy_if_lower(10 SECONDS)
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
healing_amount *= -0.5
|
||||
|
||||
if(owner.health > owner.crit_threshold && prob(4))
|
||||
owner.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(20 SECONDS)
|
||||
owner.set_dizzy_if_lower(10 SECONDS)
|
||||
owner.adjust_hallucinations_up_to(6 SECONDS, 48 SECONDS)
|
||||
|
||||
if(prob(2))
|
||||
|
||||
+6
-6
@@ -318,8 +318,8 @@
|
||||
|
||||
sac_target.flash_act()
|
||||
sac_target.blur_eyes(15)
|
||||
sac_target.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
sac_target.set_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
sac_target.set_jitter_if_lower(20 SECONDS)
|
||||
sac_target.set_dizzy_if_lower(20 SECONDS)
|
||||
sac_target.adjust_hallucinations(24 SECONDS)
|
||||
sac_target.emote("scream")
|
||||
|
||||
@@ -371,7 +371,7 @@
|
||||
|
||||
// Wherever we end up, we sure as hell won't be able to explain
|
||||
sac_target.adjust_timed_status_effect(40 SECONDS, /datum/status_effect/speech/slurring/heretic)
|
||||
sac_target.adjust_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
sac_target.adjust_stutter(40 SECONDS)
|
||||
|
||||
// They're already back on the station for some reason, don't bother teleporting
|
||||
if(is_station_level(sac_target.z))
|
||||
@@ -438,10 +438,10 @@
|
||||
|
||||
// Oh god where are we?
|
||||
sac_target.flash_act()
|
||||
sac_target.adjust_timed_status_effect(60 SECONDS, /datum/status_effect/confusion)
|
||||
sac_target.set_timed_status_effect(120 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
sac_target.adjust_confusion(60 SECONDS)
|
||||
sac_target.set_jitter_if_lower(120 SECONDS)
|
||||
sac_target.blur_eyes(50)
|
||||
sac_target.set_timed_status_effect(1 MINUTES, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
sac_target.set_dizzy_if_lower(1 MINUTES)
|
||||
sac_target.AdjustKnockdown(80)
|
||||
sac_target.adjustStaminaLoss(120)
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
playsound(carbon_user, 'sound/effects/wounds/sizzle1.ogg', 70, vary = TRUE)
|
||||
if(prob(50))
|
||||
carbon_user.emote("scream")
|
||||
carbon_user.adjust_timed_status_effect(26 SECONDS, /datum/status_effect/speech/stutter)
|
||||
carbon_user.adjust_stutter(26 SECONDS)
|
||||
|
||||
source?.cast_on_hand_hit(src, user, user)
|
||||
|
||||
|
||||
@@ -134,4 +134,4 @@
|
||||
// And definitely don't fully kil brains
|
||||
human_owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20, 190)
|
||||
if(95 to 100)
|
||||
human_owner.adjust_timed_status_effect(12 SECONDS, /datum/status_effect/confusion, max_duration = 24 SECONDS)
|
||||
human_owner.adjust_confusion_up_to(12 SECONDS, 24 SECONDS)
|
||||
|
||||
@@ -239,10 +239,10 @@
|
||||
var/mob/living/carbon/carbon_victim = victim
|
||||
carbon_victim.adjustStaminaLoss(80)
|
||||
carbon_victim.silent += 10
|
||||
carbon_victim.adjust_timed_status_effect(1 MINUTES, /datum/status_effect/speech/stutter)
|
||||
carbon_victim.adjust_timed_status_effect(5 SECONDS, /datum/status_effect/confusion)
|
||||
carbon_victim.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
carbon_victim.set_timed_status_effect(40 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
carbon_victim.adjust_stutter(1 MINUTES)
|
||||
carbon_victim.adjust_confusion(5 SECONDS)
|
||||
carbon_victim.set_jitter_if_lower(20 SECONDS)
|
||||
carbon_victim.set_dizzy_if_lower(40 SECONDS)
|
||||
carbon_victim.adjust_blindness(2)
|
||||
carbon_victim.add_mood_event("gates_of_mansus", /datum/mood_event/gates_of_mansus)
|
||||
playsound(src, 'sound/magic/blind.ogg', 75, TRUE)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
return FALSE
|
||||
if(DT_PROB(1.5 * stage, delta_time))
|
||||
to_chat(affected_mob, span_revennotice("You suddenly feel [pick("sick and tired", "disoriented", "tired and confused", "nauseated", "faint", "dizzy")]..."))
|
||||
affected_mob.adjust_timed_status_effect(8 SECONDS, /datum/status_effect/confusion)
|
||||
affected_mob.adjust_confusion(8 SECONDS)
|
||||
affected_mob.adjustStaminaLoss(20, FALSE)
|
||||
new /obj/effect/temp_visual/revenant(affected_mob.loc)
|
||||
if(stagedamage < stage)
|
||||
|
||||
@@ -569,7 +569,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module))
|
||||
if(isspaceturf(victim_turf) && !victim_turf.Adjacent(found_intercom)) //Prevents getting honked in space
|
||||
continue
|
||||
if(honk_victim.soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 30, deafen_pwr = 60)) //Ear protection will prevent these effects
|
||||
honk_victim.set_timed_status_effect(120 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
honk_victim.set_jitter_if_lower(120 SECONDS)
|
||||
to_chat(honk_victim, span_clown("HOOOOONK!"))
|
||||
|
||||
/// Robotic Factory: Places a large machine that converts humans that go through it into cyborgs. Unlocking this ability removes shunting.
|
||||
|
||||
@@ -239,8 +239,8 @@
|
||||
return
|
||||
|
||||
sent_mob.flash_act()
|
||||
sent_mob.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
sent_mob.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness)
|
||||
sent_mob.adjust_confusion(10 SECONDS)
|
||||
sent_mob.adjust_dizzy(10 SECONDS)
|
||||
sent_mob.blur_eyes(5 SECONDS)
|
||||
to_chat(sent_mob, span_hypnophrase(span_reallybig("A million voices echo in your head... <i>\"Your mind held many valuable secrets - \
|
||||
we thank you for providing them. Your value is expended, and you will be ransomed back to your station. We always get paid, \
|
||||
@@ -285,11 +285,8 @@
|
||||
|
||||
sent_mob.forceMove(return_pod)
|
||||
sent_mob.flash_act()
|
||||
sent_mob.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
sent_mob.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness)
|
||||
sent_mob.adjust_confusion(10 SECONDS)
|
||||
sent_mob.adjust_dizzy(10 SECONDS)
|
||||
sent_mob.blur_eyes(5 SECONDS)
|
||||
|
||||
new /obj/effect/pod_landingzone(pick(possible_turfs), return_pod)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -276,7 +276,7 @@
|
||||
to_chat(user, span_danger("An overwhelming feeling of dread comes over you as you attempt to place [SS] into the shell. It would be wise to be rid of this quickly."))
|
||||
if(isliving(user))
|
||||
var/mob/living/living_user = user
|
||||
living_user.set_timed_status_effect(1 MINUTES, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
living_user.set_dizzy_if_lower(1 MINUTES)
|
||||
return
|
||||
if(SS.theme == THEME_HOLY && IS_CULTIST(user))
|
||||
SS.hot_potato(user)
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
|
||||
if(targeted)
|
||||
if(flashed.flash_act(1, 1))
|
||||
flashed.set_timed_status_effect(confusion_duration * CONFUSION_STACK_MAX_MULTIPLIER, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
flashed.set_confusion_if_lower(confusion_duration * CONFUSION_STACK_MAX_MULTIPLIER)
|
||||
// Special check for if we're a revhead. Special cases to attempt conversion.
|
||||
if(converter)
|
||||
// Did we try to flash them from behind?
|
||||
@@ -184,7 +184,7 @@
|
||||
to_chat(flashed, span_danger("[src] fails to blind you!"))
|
||||
else
|
||||
if(flashed.flash_act())
|
||||
flashed.set_timed_status_effect(confusion_duration * CONFUSION_STACK_MAX_MULTIPLIER, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
flashed.set_confusion_if_lower(confusion_duration * CONFUSION_STACK_MAX_MULTIPLIER)
|
||||
|
||||
/**
|
||||
* Handles the directionality of the attack
|
||||
@@ -252,7 +252,7 @@
|
||||
user.visible_message(span_warning("[user] fails to blind [flashed_borgo] with the flash!"), span_warning("You fail to blind [flashed_borgo] with the flash!"))
|
||||
return
|
||||
flashed_borgo.Paralyze(rand(80,120))
|
||||
flashed_borgo.set_timed_status_effect(5 SECONDS * CONFUSION_STACK_MAX_MULTIPLIER, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
flashed_borgo.set_confusion_if_lower(5 SECONDS * CONFUSION_STACK_MAX_MULTIPLIER)
|
||||
user.visible_message(span_warning("[user] overloads [flashed_borgo]'s sensors with the flash!"), span_danger("You overload [flashed_borgo]'s sensors with the flash!"))
|
||||
return
|
||||
|
||||
@@ -396,8 +396,8 @@
|
||||
|
||||
if(!hypnosis)
|
||||
to_chat(M, span_hypnophrase("The light makes you feel oddly relaxed..."))
|
||||
M.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion, max_duration = 20 SECONDS)
|
||||
M.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness, max_duration = 40 SECONDS)
|
||||
M.adjust_confusion_up_to(10 SECONDS, 20 SECONDS)
|
||||
M.adjust_dizzy_up_to(20 SECONDS, 40 SECONDS)
|
||||
M.adjust_drowsyness(min(M.drowsyness+10, 20))
|
||||
M.apply_status_effect(/datum/status_effect/pacify, 100)
|
||||
else
|
||||
@@ -410,8 +410,8 @@
|
||||
|
||||
else if(M.flash_act())
|
||||
to_chat(M, span_notice("Such a pretty light..."))
|
||||
M.adjust_timed_status_effect(4 SECONDS, /datum/status_effect/confusion, max_duration = 20 SECONDS)
|
||||
M.adjust_timed_status_effect(8 SECONDS, /datum/status_effect/dizziness, max_duration = 40 SECONDS)
|
||||
M.adjust_confusion_up_to(4 SECONDS, 20 SECONDS)
|
||||
M.adjust_dizzy_up_to(8 SECONDS, 40 SECONDS)
|
||||
M.adjust_drowsyness(min(M.drowsyness+4, 20))
|
||||
M.apply_status_effect(/datum/status_effect/pacify, 40)
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
hallucinator.adjustStaminaLoss(50)
|
||||
hallucinator.Stun(4 SECONDS)
|
||||
hallucinator.do_jitter_animation(300) // Maximum jitter
|
||||
hallucinator.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/jitter)
|
||||
hallucinator.adjust_jitter(20 SECONDS)
|
||||
|
||||
addtimer(CALLBACK(src, .proc/reset_shock_animation), 4 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/shock_drop), 2 SECONDS)
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
|
||||
/obj/projectile/hallucination/taser/apply_effect_to_hallucinator(mob/living/afflicted)
|
||||
afflicted.Paralyze(10 SECONDS)
|
||||
afflicted.adjust_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
afflicted.adjust_stutter(40 SECONDS)
|
||||
if(HAS_TRAIT(afflicted, TRAIT_HULK))
|
||||
afflicted.say(pick(
|
||||
";RAAAAAAAARGH!",
|
||||
@@ -276,7 +276,7 @@
|
||||
hal_impact_effect_wall = null
|
||||
|
||||
/obj/projectile/hallucination/ebow/apply_effect_to_hallucinator(mob/living/afflicted)
|
||||
afflicted.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/speech/slurring)
|
||||
afflicted.adjust_slurring(10 SECONDS)
|
||||
afflicted.Knockdown(1 SECONDS)
|
||||
afflicted.adjustStaminaLoss(75) // 60 stam + 15 tox
|
||||
afflicted.blur_eyes(10)
|
||||
|
||||
@@ -458,7 +458,7 @@
|
||||
return
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if(has_gravity(loc) && HAS_TRAIT(H, TRAIT_CLUMSY) && !H.resting)
|
||||
H.set_timed_status_effect(10 SECONDS, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
H.set_confusion_if_lower(10 SECONDS)
|
||||
H.Stun(20)
|
||||
playsound(src, 'sound/weapons/punch4.ogg', 50, TRUE)
|
||||
H.visible_message(span_warning("[H] steps on [src] causing the handle to hit [H.p_them()] right in the face!"), \
|
||||
|
||||
@@ -775,7 +775,7 @@
|
||||
var/datum/status_effect/agent_pinpointer/scan_pinpointer = living_owner.apply_status_effect(/datum/status_effect/agent_pinpointer/scan)
|
||||
scan_pinpointer.scan_target = living_scanned
|
||||
|
||||
living_scanned.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
living_scanned.set_jitter_if_lower(100 SECONDS)
|
||||
to_chat(living_scanned, span_warning("You've been staggered!"))
|
||||
living_scanned.add_filter("scan", 2, list("type" = "outline", "color" = COLOR_YELLOW, "size" = 1))
|
||||
addtimer(CALLBACK(living_scanned, /atom/.proc/remove_filter, "scan"), 30 SECONDS)
|
||||
@@ -978,7 +978,7 @@
|
||||
target.ranged_cooldown += 5 SECONDS
|
||||
else if(iscarbon(source))
|
||||
var/mob/living/carbon/target = source
|
||||
target.set_timed_status_effect(8 SECONDS, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
target.set_confusion_if_lower(8 SECONDS)
|
||||
return NONE
|
||||
|
||||
/obj/item/cursed_katana/proc/slice(mob/living/target, mob/user)
|
||||
|
||||
@@ -127,7 +127,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
return
|
||||
C.adjust_blurriness(6)
|
||||
C.adjustStaminaLoss(15)//the pain from your eyes burning does stamina damage
|
||||
C.adjust_timed_status_effect(5 SECONDS, /datum/status_effect/confusion)
|
||||
C.adjust_confusion(5 SECONDS)
|
||||
to_chat(C, span_userdanger("\The [src] gets into your eyes! The pain, it burns!"))
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -122,8 +122,8 @@
|
||||
|
||||
if(prob(BEYBLADE_DIZZINESS_PROBABILITY))
|
||||
to_chat(user, span_warning("You feel woozy from spinning."))
|
||||
user.set_timed_status_effect(BEYBLADE_DIZZINESS_DURATION, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
user.adjust_timed_status_effect(BEYBLADE_CONFUSION_INCREMENT, /datum/status_effect/confusion, max_duration = BEYBLADE_CONFUSION_LIMIT)
|
||||
user.set_dizzy_if_lower(BEYBLADE_DIZZINESS_DURATION)
|
||||
user.adjust_confusion_up_to(BEYBLADE_CONFUSION_INCREMENT, BEYBLADE_CONFUSION_LIMIT)
|
||||
|
||||
#undef BEYBLADE_PUKE_THRESHOLD
|
||||
#undef BEYBLADE_PUKE_NUTRIENT_LOSS
|
||||
|
||||
@@ -116,9 +116,9 @@
|
||||
owner.emote("scream")
|
||||
owner.Paralyze(100)
|
||||
|
||||
owner.adjust_timed_status_effect(1 MINUTES, /datum/status_effect/jitter)
|
||||
owner.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/confusion)
|
||||
owner.adjust_timed_status_effect(1 MINUTES, /datum/status_effect/speech/stutter)
|
||||
owner.adjust_jitter(1 MINUTES)
|
||||
owner.adjust_confusion(30 SECONDS)
|
||||
owner.adjust_stutter(1 MINUTES)
|
||||
|
||||
recent_queen_death = TRUE
|
||||
owner.throw_alert(ALERT_XENO_NOQUEEN, /atom/movable/screen/alert/alien_vulnerable)
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
do_sparks(5, TRUE, src)
|
||||
var/power = M.powerlevel + rand(0,3)
|
||||
Paralyze(power * 2 SECONDS)
|
||||
set_timed_status_effect(power * 2 SECONDS, /datum/status_effect/speech/stutter, only_if_higher = TRUE)
|
||||
set_stutter_if_lower(power * 2 SECONDS)
|
||||
if (prob(stunprob) && M.powerlevel >= 8)
|
||||
adjustFireLoss(M.powerlevel * rand(6,10))
|
||||
updatehealth()
|
||||
@@ -388,8 +388,8 @@
|
||||
Paralyze(40)
|
||||
//Jitter and other fluff.
|
||||
do_jitter_animation(300)
|
||||
adjust_timed_status_effect(20 SECONDS, /datum/status_effect/jitter)
|
||||
adjust_timed_status_effect(4 SECONDS, /datum/status_effect/speech/stutter)
|
||||
adjust_jitter(20 SECONDS)
|
||||
adjust_stutter(4 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/secondary_shock, should_stun), 2 SECONDS)
|
||||
return shock_damage
|
||||
|
||||
|
||||
@@ -1269,7 +1269,7 @@ GLOBAL_LIST_EMPTY(features_by_species)
|
||||
if(human.stat == CONSCIOUS)
|
||||
human.visible_message(span_danger("[human] is knocked senseless!"), \
|
||||
span_userdanger("You're knocked senseless!"))
|
||||
human.set_timed_status_effect(20 SECONDS, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
human.set_confusion_if_lower(20 SECONDS)
|
||||
human.adjust_blurriness(10)
|
||||
if(prob(10))
|
||||
human.gain_trauma(/datum/brain_trauma/mild/concussion)
|
||||
|
||||
@@ -1015,21 +1015,21 @@
|
||||
H.show_message(span_narsiesmall("You cringe with pain as your body rings around you!"), MSG_AUDIBLE)
|
||||
H.playsound_local(H, 'sound/effects/gong.ogg', 100, TRUE)
|
||||
H.soundbang_act(2, 0, 100, 1)
|
||||
H.adjust_timed_status_effect(14 SECONDS, /datum/status_effect/jitter)
|
||||
H.adjust_jitter(14 SECONDS)
|
||||
var/distance = max(0,get_dist(get_turf(H),get_turf(M)))
|
||||
switch(distance)
|
||||
if(0 to 1)
|
||||
M.show_message(span_narsiesmall("GONG!"), MSG_AUDIBLE)
|
||||
M.playsound_local(H, 'sound/effects/gong.ogg', 100, TRUE)
|
||||
M.soundbang_act(1, 0, 30, 3)
|
||||
M.adjust_timed_status_effect(10 SECONDS, /datum/status_effect/confusion)
|
||||
M.adjust_timed_status_effect(8 SECONDS, /datum/status_effect/jitter)
|
||||
M.adjust_confusion(10 SECONDS)
|
||||
M.adjust_jitter(8 SECONDS)
|
||||
M.add_mood_event("gonged", /datum/mood_event/loud_gong)
|
||||
if(2 to 3)
|
||||
M.show_message(span_cult("GONG!"), MSG_AUDIBLE)
|
||||
M.playsound_local(H, 'sound/effects/gong.ogg', 75, TRUE)
|
||||
M.soundbang_act(1, 0, 15, 2)
|
||||
M.adjust_timed_status_effect(6 SECONDS, /datum/status_effect/jitter)
|
||||
M.adjust_jitter(6 SECONDS)
|
||||
M.add_mood_event("gonged", /datum/mood_event/loud_gong)
|
||||
else
|
||||
M.show_message(span_warning("GONG!"), MSG_AUDIBLE)
|
||||
|
||||
@@ -153,11 +153,11 @@
|
||||
apply_damage(stamina, STAMINA, null, blocked)
|
||||
|
||||
if(jitter && (status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE))
|
||||
adjust_timed_status_effect(jitter, /datum/status_effect/jitter)
|
||||
adjust_jitter(jitter)
|
||||
if(slur)
|
||||
adjust_timed_status_effect(slur, /datum/status_effect/speech/slurring/drunk)
|
||||
adjust_slurring(slur)
|
||||
if(stutter)
|
||||
adjust_timed_status_effect(stutter, /datum/status_effect/speech/stutter)
|
||||
adjust_stutter(stutter)
|
||||
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -2307,7 +2307,7 @@ GLOBAL_LIST_EMPTY(fire_appearances)
|
||||
if(!isnum(duration) || duration <= 0 || QDELETED(src) || !check_rights(NONE))
|
||||
return
|
||||
|
||||
adjust_timed_status_effect(duration SECONDS, impediments[chosen])
|
||||
adjust_timed_status_effect(duration * 1 SECONDS, impediments[chosen])
|
||||
|
||||
/mob/living/proc/admin_add_mood_event(mob/admin)
|
||||
if (!admin || !check_rights(NONE))
|
||||
|
||||
@@ -62,15 +62,15 @@
|
||||
addtimer(CALLBACK(src, /atom.proc/update_appearance), 0.2 SECONDS)
|
||||
if(!ishuman(current_target))
|
||||
current_target.Paralyze(8 SECONDS)
|
||||
current_target.set_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
current_target.set_stutter(40 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/limiting_spam_false), cooldowntime)
|
||||
return
|
||||
|
||||
current_target.set_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
current_target.set_stutter(40 SECONDS)
|
||||
var/obj/item/organ/internal/ears/target_ears = current_target.getorganslot(ORGAN_SLOT_EARS)
|
||||
if(target_ears && !HAS_TRAIT(current_target, TRAIT_DEAF))
|
||||
target_ears.adjustEarDamage(0, 5) //far less damage than the H.O.N.K.
|
||||
current_target.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
current_target.set_jitter_if_lower(100 SECONDS)
|
||||
current_target.Paralyze(6 SECONDS)
|
||||
if(client) //prevent spam from players
|
||||
limiting_spam = TRUE
|
||||
|
||||
@@ -309,13 +309,13 @@
|
||||
if(harm)
|
||||
weapon.attack(current_target, src)
|
||||
if(ishuman(current_target))
|
||||
current_target.set_timed_status_effect(10 SECONDS, /datum/status_effect/speech/stutter)
|
||||
current_target.set_stutter(10 SECONDS)
|
||||
current_target.Paralyze(100)
|
||||
var/mob/living/carbon/human/human_target = current_target
|
||||
threat = human_target.assess_threat(judgement_criteria, weaponcheck = CALLBACK(src, .proc/check_for_weapons))
|
||||
else
|
||||
current_target.Paralyze(100)
|
||||
current_target.set_timed_status_effect(10 SECONDS, /datum/status_effect/speech/stutter)
|
||||
current_target.set_stutter(10 SECONDS)
|
||||
threat = current_target.assess_threat(judgement_criteria, weaponcheck = CALLBACK(src, .proc/check_for_weapons))
|
||||
|
||||
log_combat(src, target, "stunned")
|
||||
|
||||
@@ -211,7 +211,7 @@ Difficulty: Hard
|
||||
animate(src, pixel_z = rand(5, 15), time = 1, loop = 20)
|
||||
animate(pixel_z = 0, time = 1)
|
||||
for(var/mob/living/dizzy_target in get_hearers_in_view(7, src) - src)
|
||||
dizzy_target.set_timed_status_effect(12 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
dizzy_target.set_dizzy_if_lower(12 SECONDS)
|
||||
to_chat(dizzy_target, span_danger("The wendigo screams loudly!"))
|
||||
SLEEP_CHECK_DEATH(1 SECONDS, src)
|
||||
spiral_attack()
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
//Ask and you shall receive
|
||||
switch(rand(1, 3))
|
||||
if(1)
|
||||
adjust_timed_status_effect(1 MINUTES / severity, /datum/status_effect/speech/stutter)
|
||||
adjust_stutter(1 MINUTES / severity)
|
||||
to_chat(src, span_danger("Warning: Feedback loop detected in speech module."))
|
||||
if(2)
|
||||
adjust_timed_status_effect(INFINITY, /datum/status_effect/speech/slurring/drunk)
|
||||
adjust_slurring(INFINITY)
|
||||
to_chat(src, span_danger("Warning: Audio synthesizer CPU stuck."))
|
||||
if(3)
|
||||
adjust_timed_status_effect(INFINITY, /datum/status_effect/speech/stutter/derpspeech)
|
||||
set_derpspeech(INFINITY)
|
||||
to_chat(src, span_danger("Warning: Vocabulary databank corrupted."))
|
||||
if(prob(40))
|
||||
mind.language_holder.selected_language = get_random_spoken_language()
|
||||
|
||||
@@ -57,6 +57,6 @@
|
||||
var/mob/living/L = target
|
||||
if(L.mob_biotypes & MOB_PLANT)
|
||||
L.show_message(span_notice("The radiation beam leaves you feeling disoriented!"))
|
||||
L.set_timed_status_effect(30 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
L.set_dizzy_if_lower(30 SECONDS)
|
||||
L.emote("flip")
|
||||
L.emote("spin")
|
||||
|
||||
@@ -164,11 +164,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
drinker.set_dizzy_if_lower(10 SECONDS * REM * delta_time)
|
||||
drinker.adjust_drowsyness(-3 * REM * delta_time)
|
||||
drinker.AdjustSleeping(-40 * REM * delta_time)
|
||||
if(!HAS_TRAIT(drinker, TRAIT_ALCOHOL_TOLERANCE))
|
||||
drinker.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_jitter_if_lower(10 SECONDS)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -229,13 +229,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
drinker.AdjustSleeping(-40 * REM * delta_time)
|
||||
drinker.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, drinker.get_body_temp_normal())
|
||||
if(!HAS_TRAIT(drinker, TRAIT_ALCOHOL_TOLERANCE))
|
||||
drinker.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_jitter_if_lower(10 SECONDS)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/thirteenloko/overdose_start(mob/living/drinker)
|
||||
to_chat(drinker, span_userdanger("Your entire body violently jitters as you start to feel queasy. You really shouldn't have drank all of that [name]!"))
|
||||
drinker.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_jitter_if_lower(40 SECONDS)
|
||||
drinker.Stun(1.5 SECONDS)
|
||||
|
||||
/datum/reagent/consumable/ethanol/thirteenloko/overdose_process(mob/living/drinker, delta_time, times_fired)
|
||||
@@ -244,7 +244,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
if(held_item)
|
||||
drinker.dropItemToGround(held_item)
|
||||
to_chat(drinker, span_notice("Your hands jitter and you drop what you were holding!"))
|
||||
drinker.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_jitter_if_lower(20 SECONDS)
|
||||
|
||||
if(DT_PROB(3.5, delta_time))
|
||||
to_chat(drinker, span_notice("[pick("You have a really bad headache.", "Your eyes hurt.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]"))
|
||||
@@ -266,7 +266,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
if(DT_PROB(1.5, delta_time) && iscarbon(drinker))
|
||||
drinker.visible_message(span_danger("[drinker] starts having a seizure!"), span_userdanger("You have a seizure!"))
|
||||
drinker.Unconscious(10 SECONDS)
|
||||
drinker.set_timed_status_effect(700 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_jitter_if_lower(700 SECONDS)
|
||||
|
||||
if(DT_PROB(0.5, delta_time) && iscarbon(drinker))
|
||||
var/datum/disease/heart_attack = new /datum/disease/heart_failure
|
||||
@@ -319,7 +319,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.set_timed_status_effect(100 SECONDS * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.set_drugginess(100 SECONDS * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/gin
|
||||
@@ -796,7 +796,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.set_timed_status_effect(4 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_jitter_if_lower(4 SECONDS)
|
||||
var/obj/item/organ/internal/liver/liver = drinker.getorganslot(ORGAN_SLOT_LIVER)
|
||||
// if you have a liver and that liver is an officer's liver
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
@@ -966,7 +966,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.set_timed_status_effect(1 MINUTES * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.set_drugginess(1 MINUTES * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/whiskeysoda
|
||||
@@ -1529,11 +1529,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_price = DRINK_PRICE_HIGH
|
||||
|
||||
/datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.set_timed_status_effect(100 SECONDS * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.set_drugginess(100 SECONDS * REM * delta_time)
|
||||
if(!HAS_TRAIT(drinker, TRAIT_ALCOHOL_TOLERANCE))
|
||||
drinker.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/confusion)
|
||||
drinker.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
drinker.adjust_timed_status_effect(6 SECONDS * REM * delta_time, /datum/status_effect/speech/slurring/drunk)
|
||||
drinker.adjust_confusion(2 SECONDS * REM * delta_time)
|
||||
drinker.set_dizzy_if_lower(20 SECONDS * REM * delta_time)
|
||||
drinker.adjust_slurring(6 SECONDS * REM * delta_time)
|
||||
switch(current_cycle)
|
||||
if(51 to 200)
|
||||
drinker.Sleeping(100 * REM * delta_time)
|
||||
@@ -1557,16 +1557,16 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/gargle_blaster/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.adjust_timed_status_effect(3 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
drinker.adjust_dizzy(3 SECONDS * REM * delta_time)
|
||||
switch(current_cycle)
|
||||
if(15 to 45)
|
||||
drinker.adjust_timed_status_effect(3 SECONDS * REM * delta_time, /datum/status_effect/speech/slurring/drunk)
|
||||
drinker.adjust_slurring(3 SECONDS * REM * delta_time)
|
||||
|
||||
if(45 to 55)
|
||||
if(DT_PROB(30, delta_time))
|
||||
drinker.adjust_timed_status_effect(3 SECONDS * REM * delta_time, /datum/status_effect/confusion)
|
||||
drinker.adjust_confusion(3 SECONDS * REM * delta_time)
|
||||
if(55 to 200)
|
||||
drinker.set_timed_status_effect(110 SECONDS * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.set_drugginess(110 SECONDS * REM * delta_time)
|
||||
if(200 to INFINITY)
|
||||
drinker.adjustToxLoss(2 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
@@ -1589,8 +1589,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
return (pick(TRAIT_PARALYSIS_L_ARM,TRAIT_PARALYSIS_R_ARM,TRAIT_PARALYSIS_R_LEG,TRAIT_PARALYSIS_L_LEG))
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.set_timed_status_effect(100 SECONDS * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.adjust_timed_status_effect(4 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
drinker.set_drugginess(100 SECONDS * REM * delta_time)
|
||||
drinker.adjust_dizzy(4 SECONDS * REM * delta_time)
|
||||
drinker.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1 * REM * delta_time, 150)
|
||||
if(DT_PROB(10, delta_time))
|
||||
drinker.adjustStaminaLoss(10)
|
||||
@@ -1634,30 +1634,30 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.set_timed_status_effect(1 SECONDS * REM * delta_time, /datum/status_effect/speech/slurring/drunk, only_if_higher = TRUE)
|
||||
drinker.set_slurring_if_lower(1 SECONDS * REM * delta_time)
|
||||
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
drinker.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
drinker.set_timed_status_effect(1 MINUTES * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.set_dizzy_if_lower(20 SECONDS * REM * delta_time)
|
||||
drinker.set_drugginess(1 MINUTES * REM * delta_time)
|
||||
if(DT_PROB(5, delta_time))
|
||||
drinker.emote(pick("twitch","giggle"))
|
||||
if(5 to 10)
|
||||
drinker.set_timed_status_effect(40 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_timed_status_effect(40 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
drinker.set_timed_status_effect(1.5 MINUTES * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.set_jitter_if_lower(40 SECONDS * REM * delta_time)
|
||||
drinker.set_dizzy_if_lower(40 SECONDS * REM * delta_time)
|
||||
drinker.set_drugginess(1.5 MINUTES * REM * delta_time)
|
||||
if(DT_PROB(10, delta_time))
|
||||
drinker.emote(pick("twitch","giggle"))
|
||||
if (10 to 200)
|
||||
drinker.set_timed_status_effect(80 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_timed_status_effect(80 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
drinker.set_timed_status_effect(2 MINUTES * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.set_jitter_if_lower(80 SECONDS * REM * delta_time)
|
||||
drinker.set_dizzy_if_lower(80 SECONDS * REM * delta_time)
|
||||
drinker.set_drugginess(2 MINUTES * REM * delta_time)
|
||||
if(DT_PROB(16, delta_time))
|
||||
drinker.emote(pick("twitch","giggle"))
|
||||
if(200 to INFINITY)
|
||||
drinker.set_timed_status_effect(120 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
drinker.set_timed_status_effect(120 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
drinker.set_timed_status_effect(2.5 MINUTES * REM * delta_time, /datum/status_effect/drugginess)
|
||||
drinker.set_jitter_if_lower(120 SECONDS * REM * delta_time)
|
||||
drinker.set_dizzy_if_lower(120 SECONDS * REM * delta_time)
|
||||
drinker.set_drugginess(2.5 MINUTES * REM * delta_time)
|
||||
if(DT_PROB(23, delta_time))
|
||||
drinker.emote(pick("twitch","giggle"))
|
||||
if(DT_PROB(16, delta_time))
|
||||
@@ -1693,7 +1693,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
|
||||
/datum/reagent/consumable/ethanol/narsour/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
drinker.adjust_timed_status_effect(6 SECONDS * REM * delta_time, /datum/status_effect/speech/slurring/cult, max_duration = 6 SECONDS)
|
||||
drinker.adjust_timed_status_effect(6 SECONDS * REM * delta_time, /datum/status_effect/speech/stutter, max_duration = 6 SECONDS)
|
||||
drinker.adjust_stutter_up_to(6 SECONDS * REM * delta_time, 6 SECONDS)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/triple_sec
|
||||
@@ -2457,8 +2457,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
/datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
|
||||
if(drinker.mind?.holy_role)
|
||||
drinker.adjustFireLoss(-2.5 * REM * delta_time, 0)
|
||||
drinker.adjust_timed_status_effect(-2 SECONDS * REM * delta_time, /datum/status_effect/jitter)
|
||||
drinker.adjust_timed_status_effect(-2 SECONDS * REM * delta_time, /datum/status_effect/speech/stutter)
|
||||
drinker.adjust_jitter(-2 SECONDS * REM * delta_time)
|
||||
drinker.adjust_stutter(-2 SECONDS * REM * delta_time)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/blazaam
|
||||
|
||||
@@ -524,8 +524,8 @@
|
||||
|
||||
H.adjustOrganLoss(ORGAN_SLOT_HEART, max(volume/10, 1) * REM * delta_time) // your heart is barely keeping up!
|
||||
|
||||
H.set_timed_status_effect(rand(0 SECONDS, 4 SECONDS) * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
H.set_timed_status_effect(rand(0 SECONDS, 4 SECONDS) * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
H.set_jitter_if_lower(rand(0 SECONDS, 4 SECONDS) * REM * delta_time)
|
||||
H.set_dizzy_if_lower(rand(0 SECONDS, 4 SECONDS) * REM * delta_time)
|
||||
|
||||
if(DT_PROB(18, delta_time))
|
||||
to_chat(H,span_danger("Your body is trying to give up, but your heart is still beating!"))
|
||||
|
||||
@@ -294,11 +294,11 @@
|
||||
glass_price = DRINK_PRICE_STOCK
|
||||
|
||||
/datum/reagent/consumable/coffee/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/coffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-10 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-10 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-3 * REM * delta_time)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
//310.15 is the normal bodytemp.
|
||||
@@ -321,9 +321,9 @@
|
||||
glass_price = DRINK_PRICE_STOCK
|
||||
|
||||
/datum/reagent/consumable/tea/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-4 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-4 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-1 * REM * delta_time)
|
||||
M.adjust_timed_status_effect(-6 SECONDS * REM * delta_time, /datum/status_effect/jitter)
|
||||
M.adjust_jitter(-6 SECONDS * REM * delta_time)
|
||||
M.AdjustSleeping(-20 * REM * delta_time)
|
||||
if(M.getToxLoss() && DT_PROB(10, delta_time))
|
||||
M.adjustToxLoss(-1, 0)
|
||||
@@ -373,11 +373,11 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/icecoffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-10 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-10 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-3 * REM * delta_time)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -393,11 +393,11 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/hot_ice_coffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-10 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-10 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-3 * REM * delta_time)
|
||||
M.AdjustSleeping(-60 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-7 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
..()
|
||||
. = TRUE
|
||||
@@ -414,7 +414,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/icetea/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-4 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-4 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-1 * REM * delta_time)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
if(M.getToxLoss() && DT_PROB(10, delta_time))
|
||||
@@ -450,7 +450,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/roy_rogers/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(12 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(12 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-5 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
return ..()
|
||||
@@ -475,9 +475,9 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(40 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_timed_status_effect(1 MINUTES * REM * delta_time, /datum/status_effect/drugginess)
|
||||
M.adjust_timed_status_effect(3 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.set_jitter_if_lower(40 SECONDS * REM * delta_time)
|
||||
M.set_drugginess(1 MINUTES * REM * delta_time)
|
||||
M.adjust_dizzy(3 SECONDS * REM * delta_time)
|
||||
M.set_drowsyness(0)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
@@ -514,11 +514,11 @@
|
||||
ADD_TRAIT(M, TRAIT_DOUBLE_TAP, type)
|
||||
effect_enabled = TRUE
|
||||
|
||||
M.set_timed_status_effect(4 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(4 SECONDS * REM * delta_time)
|
||||
if(prob(50))
|
||||
M.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(2 SECONDS * REM * delta_time)
|
||||
if(current_cycle > 10)
|
||||
M.adjust_timed_status_effect(3 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(3 SECONDS * REM * delta_time)
|
||||
|
||||
..()
|
||||
. = TRUE
|
||||
@@ -543,8 +543,8 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/grey_bull/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(40 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.set_jitter_if_lower(40 SECONDS * REM * delta_time)
|
||||
M.adjust_dizzy(2 SECONDS * REM * delta_time)
|
||||
M.set_drowsyness(0)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
@@ -564,7 +564,7 @@
|
||||
M.adjust_drowsyness(-7 * REM * delta_time)
|
||||
M.AdjustSleeping(-20 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -671,7 +671,7 @@
|
||||
mytray.adjust_plant_health(round(chems.get_reagent_amount(type) * 0.1))
|
||||
|
||||
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-10 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-10 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-3 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
..()
|
||||
@@ -687,7 +687,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/tonic/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-10 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-10 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-3 * REM * delta_time)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
@@ -706,8 +706,8 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(80 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.set_jitter_if_lower(80 SECONDS * REM * delta_time)
|
||||
M.adjust_dizzy(2 SECONDS * REM * delta_time)
|
||||
M.set_drowsyness(0)
|
||||
M.AdjustSleeping(-40 * REM * delta_time)
|
||||
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
|
||||
@@ -755,11 +755,11 @@
|
||||
glass_price = DRINK_PRICE_EASY
|
||||
|
||||
/datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-10 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-10 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-3 *REM * delta_time)
|
||||
M.SetSleeping(0)
|
||||
M.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
if(M.getBruteLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(1,0, 0)
|
||||
..()
|
||||
@@ -778,11 +778,11 @@
|
||||
glass_price = DRINK_PRICE_EASY
|
||||
|
||||
/datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-10 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_dizzy(-10 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(-6 * REM * delta_time)
|
||||
M.SetSleeping(0)
|
||||
M.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
if(M.getBruteLoss() && DT_PROB(10, delta_time))
|
||||
M.heal_bodypart_damage(1, 0, 0)
|
||||
..()
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
addiction_types = list(/datum/addiction/hallucinogens = 10) //4 per 2 seconds
|
||||
|
||||
/datum/reagent/drug/space_drugs/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(30 SECONDS * REM * delta_time, /datum/status_effect/drugginess)
|
||||
M.set_drugginess(30 SECONDS * REM * delta_time)
|
||||
if(isturf(M.loc) && !isspaceturf(M.loc) && !HAS_TRAIT(M, TRAIT_IMMOBILIZED) && DT_PROB(5, delta_time))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(DT_PROB(3.5, delta_time))
|
||||
@@ -165,7 +165,7 @@
|
||||
M.AdjustParalyzed(-40 * REM * delta_time)
|
||||
M.AdjustImmobilized(-40 * REM * delta_time)
|
||||
M.adjustStaminaLoss(-2 * REM * delta_time, 0)
|
||||
M.set_timed_status_effect(4 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(4 SECONDS * REM * delta_time)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1, 4) * REM * delta_time)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
M.emote(pick("twitch", "shiver"))
|
||||
@@ -296,7 +296,7 @@
|
||||
M.add_mood_event("happiness_drug", /datum/mood_event/happiness_drug_good_od)
|
||||
if(2)
|
||||
M.emote("sway")
|
||||
M.set_timed_status_effect(50 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.set_dizzy_if_lower(50 SECONDS)
|
||||
if(3)
|
||||
M.emote("frown")
|
||||
M.add_mood_event("happiness_drug", /datum/mood_event/happiness_drug_bad_od)
|
||||
@@ -323,7 +323,7 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/pumpup/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
to_chat(M, span_notice("[pick("Go! Go! GO!", "You feel ready...", "You feel invincible...")]"))
|
||||
@@ -337,7 +337,7 @@
|
||||
to_chat(M, span_userdanger("You can't stop shaking, your heart beats faster and faster..."))
|
||||
|
||||
/datum/reagent/drug/pumpup/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
if(DT_PROB(2.5, delta_time))
|
||||
M.drop_all_held_items()
|
||||
if(DT_PROB(7.5, delta_time))
|
||||
@@ -450,18 +450,18 @@
|
||||
addiction_types = list(/datum/addiction/hallucinogens = 12)
|
||||
|
||||
/datum/reagent/drug/mushroomhallucinogen/on_mob_life(mob/living/carbon/psychonaut, delta_time, times_fired)
|
||||
psychonaut.set_timed_status_effect(1 SECONDS * REM * delta_time, /datum/status_effect/speech/slurring/drunk, only_if_higher = TRUE)
|
||||
psychonaut.set_slurring_if_lower(1 SECONDS * REM * delta_time)
|
||||
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
if(DT_PROB(5, delta_time))
|
||||
psychonaut.emote(pick("twitch","giggle"))
|
||||
if(5 to 10)
|
||||
psychonaut.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
psychonaut.set_jitter_if_lower(20 SECONDS * REM * delta_time)
|
||||
if(DT_PROB(10, delta_time))
|
||||
psychonaut.emote(pick("twitch","giggle"))
|
||||
if (10 to INFINITY)
|
||||
psychonaut.set_timed_status_effect(40 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
psychonaut.set_jitter_if_lower(40 SECONDS * REM * delta_time)
|
||||
if(DT_PROB(16, delta_time))
|
||||
psychonaut.emote(pick("twitch","giggle"))
|
||||
..()
|
||||
@@ -761,7 +761,7 @@
|
||||
. = ..()
|
||||
kronkaine_fiend.add_mood_event("tweaking", /datum/mood_event/stimulant_medium, name)
|
||||
kronkaine_fiend.adjustOrganLoss(ORGAN_SLOT_HEART, 0.4 * REM * delta_time)
|
||||
kronkaine_fiend.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
kronkaine_fiend.set_jitter_if_lower(20 SECONDS * REM * delta_time)
|
||||
kronkaine_fiend.AdjustSleeping(-20 * REM * delta_time)
|
||||
kronkaine_fiend.adjust_drowsyness(-5 * REM * delta_time)
|
||||
if(volume < 10)
|
||||
@@ -774,6 +774,6 @@
|
||||
/datum/reagent/drug/kronkaine/overdose_process(mob/living/kronkaine_fiend, delta_time, times_fired)
|
||||
. = ..()
|
||||
kronkaine_fiend.adjustOrganLoss(ORGAN_SLOT_HEART, 1 * REM * delta_time)
|
||||
kronkaine_fiend.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
kronkaine_fiend.set_jitter_if_lower(20 SECONDS * REM * delta_time)
|
||||
if(DT_PROB(10, delta_time))
|
||||
to_chat(kronkaine_fiend, span_danger(pick("You feel like your heart is going to explode!", "Your ears are ringing!", "You sweat like a pig!", "You clench your jaw and grind your teeth.", "You feel prickles of pain in your chest.")))
|
||||
|
||||
@@ -383,7 +383,7 @@
|
||||
victim.emote("cry")
|
||||
victim.blur_eyes(5) // 10 seconds
|
||||
victim.adjust_blindness(3) // 6 seconds
|
||||
victim.set_timed_status_effect(5 SECONDS, /datum/status_effect/confusion, only_if_higher = TRUE)
|
||||
victim.set_confusion_if_lower(5 SECONDS)
|
||||
victim.Knockdown(3 SECONDS)
|
||||
victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray)
|
||||
addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS)
|
||||
@@ -395,7 +395,7 @@
|
||||
if(prob(10))
|
||||
victim.blur_eyes(1)
|
||||
if(prob(10))
|
||||
victim.set_timed_status_effect(2 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
victim.set_dizzy_if_lower(2 SECONDS)
|
||||
if(prob(5))
|
||||
victim.vomit()
|
||||
|
||||
@@ -459,7 +459,7 @@
|
||||
if(DT_PROB(min(current_cycle/2, 12.5), delta_time))
|
||||
to_chat(M, span_danger("You can't get the scent of garlic out of your nose! You can barely think..."))
|
||||
M.Paralyze(10)
|
||||
M.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(20 SECONDS)
|
||||
else
|
||||
var/obj/item/organ/internal/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_CULINARY_METABOLISM))
|
||||
@@ -1008,7 +1008,7 @@
|
||||
/datum/reagent/consumable/peanut_butter/on_mob_life(mob/living/carbon/M, delta_time, times_fired) //ET loves peanut butter
|
||||
if(isabductor(M))
|
||||
M.add_mood_event("ET_pieces", /datum/mood_event/et_pieces, name)
|
||||
M.set_timed_status_effect(30 SECONDS * REM * delta_time, /datum/status_effect/drugginess)
|
||||
M.set_drugginess(30 SECONDS * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/vinegar
|
||||
|
||||
@@ -252,8 +252,8 @@
|
||||
|
||||
/datum/reagent/medicine/rezadone/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_dizzy_if_lower(10 SECONDS * REM * delta_time)
|
||||
M.set_jitter_if_lower(10 SECONDS * REM * delta_time)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -556,7 +556,7 @@
|
||||
var/obj/item/I = M.get_active_held_item()
|
||||
if(I && M.dropItemToGround(I))
|
||||
to_chat(M, span_notice("Your hands spaz out and you drop what you were holding!"))
|
||||
M.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(20 SECONDS)
|
||||
|
||||
M.AdjustAllImmobility(-20 * REM * delta_time * normalise_creation_purity())
|
||||
M.adjustStaminaLoss(-1 * REM * delta_time * normalise_creation_purity(), FALSE)
|
||||
@@ -591,7 +591,7 @@
|
||||
/datum/reagent/medicine/diphenhydramine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.adjust_drowsyness(1)
|
||||
M.adjust_timed_status_effect(-2 SECONDS * REM * delta_time, /datum/status_effect/jitter)
|
||||
M.adjust_jitter(-2 SECONDS * REM * delta_time)
|
||||
holder.remove_reagent(/datum/reagent/toxin/histamine, 3 * REM * delta_time)
|
||||
..()
|
||||
|
||||
@@ -630,8 +630,8 @@
|
||||
/datum/reagent/medicine/morphine/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
if(DT_PROB(18, delta_time))
|
||||
M.drop_all_held_items()
|
||||
M.set_timed_status_effect(4 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.set_timed_status_effect(4 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_dizzy_if_lower(4 SECONDS)
|
||||
M.set_jitter_if_lower(4 SECONDS)
|
||||
..()
|
||||
|
||||
|
||||
@@ -772,15 +772,15 @@
|
||||
. = TRUE
|
||||
M.losebreath = 0
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.set_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_dizzy_if_lower(10 SECONDS)
|
||||
M.set_jitter_if_lower(10 SECONDS)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/atropine/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.adjustToxLoss(0.5 * REM * delta_time, 0)
|
||||
. = TRUE
|
||||
M.set_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.set_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_dizzy_if_lower(2 SECONDS * REM * delta_time)
|
||||
M.set_jitter_if_lower(2 SECONDS * REM * delta_time)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/epinephrine
|
||||
@@ -1144,11 +1144,11 @@
|
||||
M.adjustToxLoss(-3 * REM * delta_time, 0)
|
||||
M.adjustCloneLoss(-1 * REM * delta_time, 0)
|
||||
M.adjustStaminaLoss(-3 * REM * delta_time, 0)
|
||||
M.adjust_timed_status_effect(6 SECONDS * REM * delta_time, /datum/status_effect/jitter, max_duration = 1 MINUTES)
|
||||
M.adjust_jitter_up_to(6 SECONDS * REM * delta_time, 1 MINUTES)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2 * REM * delta_time, 150)
|
||||
if(DT_PROB(5, delta_time))
|
||||
M.say(pick("Yeah, well, you know, that's just, like, uh, your opinion, man.", "Am I glad he's frozen in there and that we're out here, and that he's the sheriff and that we're frozen out here, and that we're in there, and I just remembered, we're out here. What I wanna know is: Where's the caveman?", "It ain't me, it ain't me...", "Make love, not war!", "Stop, hey, what's that sound? Everybody look what's going down...", "Do you believe in magic in a young girl's heart?"), forced = /datum/reagent/medicine/earthsblood)
|
||||
M.adjust_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/drugginess, max_duration = 30 SECONDS * REM * delta_time)
|
||||
M.adjust_drugginess_up_to(20 SECONDS * REM * delta_time, 30 SECONDS * REM * delta_time)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
@@ -1188,7 +1188,7 @@
|
||||
M.adjust_drowsyness(2 * REM * delta_time)
|
||||
|
||||
if(M.get_timed_status_effect_duration(/datum/status_effect/jitter) >= 6 SECONDS)
|
||||
M.adjust_timed_status_effect(-6 SECONDS * REM * delta_time, /datum/status_effect/jitter)
|
||||
M.adjust_jitter(-6 SECONDS * REM * delta_time)
|
||||
|
||||
if (M.get_timed_status_effect_duration(/datum/status_effect/hallucination) >= 10 SECONDS)
|
||||
M.adjust_hallucinations(-10 SECONDS * REM * delta_time)
|
||||
@@ -1211,8 +1211,8 @@
|
||||
..()
|
||||
metabolizer.AdjustAllImmobility(-20 * REM * delta_time)
|
||||
metabolizer.adjustStaminaLoss(-10 * REM * delta_time, 0)
|
||||
metabolizer.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
metabolizer.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
metabolizer.set_jitter_if_lower(20 SECONDS * REM * delta_time)
|
||||
metabolizer.set_dizzy_if_lower(20 SECONDS * REM * delta_time)
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/on_mob_metabolize(mob/living/L)
|
||||
@@ -1324,7 +1324,7 @@
|
||||
overdose_threshold = overdose_threshold + ((rand(-10, 10) / 10) * REM * delta_time) // for extra fun
|
||||
metabolizer.AdjustAllImmobility(-5 * REM * delta_time)
|
||||
metabolizer.adjustStaminaLoss(-0.5 * REM * delta_time, 0)
|
||||
metabolizer.set_timed_status_effect(1 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
metabolizer.set_jitter_if_lower(1 SECONDS * REM * delta_time)
|
||||
metabolization_rate = 0.005 * REAGENTS_METABOLISM * rand(5, 20) // randomizes metabolism between 0.02 and 0.08 per second
|
||||
. = TRUE
|
||||
..()
|
||||
@@ -1337,17 +1337,17 @@
|
||||
overdose_progress++
|
||||
switch(overdose_progress)
|
||||
if(1 to 40)
|
||||
M.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/jitter, max_duration = 20 SECONDS)
|
||||
M.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/speech/stutter, max_duration = 20 SECONDS)
|
||||
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.adjust_jitter_up_to(2 SECONDS * REM * delta_time, 20 SECONDS)
|
||||
M.adjust_stutter_up_to(2 SECONDS * REM * delta_time, 20 SECONDS)
|
||||
M.set_dizzy_if_lower(10 SECONDS * REM * delta_time)
|
||||
if(DT_PROB(30, delta_time))
|
||||
M.losebreath++
|
||||
if(41 to 80)
|
||||
M.adjustOxyLoss(0.1 * REM * delta_time, 0)
|
||||
M.adjustStaminaLoss(0.1 * REM * delta_time, 0)
|
||||
M.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/jitter, max_duration = 40 SECONDS)
|
||||
M.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/speech/stutter, max_duration = 40 SECONDS)
|
||||
M.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.adjust_jitter_up_to(2 SECONDS * REM * delta_time, 40 SECONDS)
|
||||
M.adjust_stutter_up_to(2 SECONDS * REM * delta_time, 40 SECONDS)
|
||||
M.set_dizzy_if_lower(20 SECONDS * REM * delta_time)
|
||||
if(DT_PROB(30, delta_time))
|
||||
M.losebreath++
|
||||
if(DT_PROB(10, delta_time))
|
||||
@@ -1385,9 +1385,9 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/psicodine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-12 SECONDS * REM * delta_time, /datum/status_effect/jitter)
|
||||
M.adjust_timed_status_effect(-12 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
|
||||
M.adjust_timed_status_effect(-6 SECONDS * REM * delta_time, /datum/status_effect/confusion)
|
||||
M.adjust_jitter(-12 SECONDS * REM * delta_time)
|
||||
M.adjust_dizzy(-12 SECONDS * REM * delta_time)
|
||||
M.adjust_confusion(-6 SECONDS * REM * delta_time)
|
||||
M.disgust = max(M.disgust - (6 * REM * delta_time), 0)
|
||||
if(M.mob_mood != null && M.mob_mood.sanity <= SANITY_NEUTRAL) // only take effect if in negative sanity and then...
|
||||
M.mob_mood.set_sanity(min(M.mob_mood.sanity + (5 * REM * delta_time), SANITY_NEUTRAL)) // set minimum to prevent unwanted spiking over neutral
|
||||
|
||||
@@ -284,15 +284,15 @@
|
||||
data = list("misc" = 0)
|
||||
|
||||
data["misc"] += delta_time SECONDS * REM
|
||||
M.adjust_timed_status_effect(4 SECONDS * delta_time, /datum/status_effect/jitter, max_duration = 20 SECONDS)
|
||||
M.adjust_jitter_up_to(4 SECONDS * delta_time, 20 SECONDS)
|
||||
if(IS_CULTIST(M))
|
||||
for(var/datum/action/innate/cult/blood_magic/BM in M.actions)
|
||||
to_chat(M, span_cultlarge("Your blood rites falter as holy water scours your body!"))
|
||||
for(var/datum/action/innate/cult/blood_spell/BS in BM.spells)
|
||||
qdel(BS)
|
||||
if(data["misc"] >= (25 SECONDS)) // 10 units
|
||||
M.adjust_timed_status_effect(4 SECONDS * delta_time, /datum/status_effect/speech/stutter, max_duration = 20 SECONDS)
|
||||
M.set_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.adjust_stutter_up_to(4 SECONDS * delta_time, 20 SECONDS)
|
||||
M.set_dizzy_if_lower(10 SECONDS)
|
||||
if(IS_CULTIST(M) && DT_PROB(10, delta_time))
|
||||
M.say(pick("Av'te Nar'Sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","R'ge Na'sie","Diabo us Vo'iscum","Eld' Mon Nobis"), forced = "holy water")
|
||||
if(prob(10))
|
||||
@@ -1111,7 +1111,7 @@
|
||||
/datum/reagent/bluespace/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(current_cycle > 10 && DT_PROB(7.5, delta_time))
|
||||
to_chat(M, span_warning("You feel unstable..."))
|
||||
M.set_timed_status_effect(2 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(2 SECONDS)
|
||||
current_cycle = 1
|
||||
addtimer(CALLBACK(M, /mob/living/proc/bluespace_shuffle), 30)
|
||||
..()
|
||||
@@ -1239,16 +1239,16 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/cryptobiolin/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_timed_status_effect(2 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
M.set_dizzy_if_lower(2 SECONDS)
|
||||
|
||||
// Cryptobiolin adjusts the mob's confusion down to 20 seconds if it's higher,
|
||||
// or up to 1 second if it's lower, but will do nothing if it's in between
|
||||
var/confusion_left = M.get_timed_status_effect_duration(/datum/status_effect/confusion)
|
||||
if(confusion_left < 1 SECONDS)
|
||||
M.set_timed_status_effect(1 SECONDS, /datum/status_effect/confusion)
|
||||
M.set_confusion(1 SECONDS)
|
||||
|
||||
else if(confusion_left > 20 SECONDS)
|
||||
M.set_timed_status_effect(20 SECONDS, /datum/status_effect/confusion)
|
||||
M.set_confusion(20 SECONDS)
|
||||
|
||||
..()
|
||||
|
||||
@@ -1262,7 +1262,7 @@
|
||||
addiction_types = list(/datum/addiction/opioids = 10)
|
||||
|
||||
/datum/reagent/impedrezene/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(-5 SECONDS * delta_time, /datum/status_effect/jitter)
|
||||
M.adjust_jitter(-5 SECONDS * delta_time)
|
||||
if(DT_PROB(55, delta_time))
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2)
|
||||
if(DT_PROB(30, delta_time))
|
||||
@@ -1426,7 +1426,7 @@
|
||||
H.blood_volume = max(H.blood_volume - (10 * REM * delta_time), 0)
|
||||
if(DT_PROB(10, delta_time))
|
||||
M.losebreath += 2
|
||||
M.adjust_timed_status_effect(2 SECONDS, /datum/status_effect/confusion, max_duration = 5 SECONDS)
|
||||
M.adjust_confusion_up_to(2 SECONDS, 5 SECONDS)
|
||||
..()
|
||||
|
||||
/////////////////////////Colorful Powder////////////////////////////
|
||||
@@ -2399,8 +2399,8 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_NO_RANDOM_RECIPE
|
||||
|
||||
/datum/reagent/peaceborg/confuse/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_timed_status_effect(3 SECONDS * REM * delta_time, /datum/status_effect/confusion, max_duration = 5 SECONDS)
|
||||
M.adjust_timed_status_effect(6 SECONDS * REM * delta_time, /datum/status_effect/dizziness, max_duration = 12 SECONDS)
|
||||
M.adjust_confusion_up_to(3 SECONDS * REM * delta_time, 5 SECONDS)
|
||||
M.adjust_dizzy_up_to(6 SECONDS * REM * delta_time, 12 SECONDS)
|
||||
|
||||
if(DT_PROB(10, delta_time))
|
||||
to_chat(M, "You feel confused and disoriented.")
|
||||
|
||||
@@ -258,9 +258,9 @@
|
||||
return TRUE
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
M.adjust_timed_status_effect(1 SECONDS * REM * delta_time, /datum/status_effect/confusion)
|
||||
M.adjust_confusion(1 SECONDS * REM * delta_time)
|
||||
M.adjust_drowsyness(1 * REM * delta_time)
|
||||
M.adjust_timed_status_effect(6 SECONDS * REM * delta_time, /datum/status_effect/speech/slurring/drunk)
|
||||
M.adjust_slurring(6 SECONDS * REM * delta_time)
|
||||
if(5 to 8)
|
||||
M.adjustStaminaLoss(40 * REM * delta_time, 0)
|
||||
if(9 to INFINITY)
|
||||
@@ -463,7 +463,7 @@
|
||||
/datum/reagent/toxin/chloralhydrate/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
switch(current_cycle)
|
||||
if(1 to 10)
|
||||
M.adjust_timed_status_effect(2 SECONDS * REM * normalise_creation_purity() * delta_time, /datum/status_effect/confusion)
|
||||
M.adjust_confusion(2 SECONDS * REM * normalise_creation_purity() * delta_time)
|
||||
M.adjust_drowsyness(2 * REM * normalise_creation_purity() * delta_time)
|
||||
if(10 to 50)
|
||||
M.Sleeping(40 * REM * normalise_creation_purity() * delta_time)
|
||||
@@ -1200,7 +1200,7 @@
|
||||
var/mob_dizziness = M.get_timed_status_effect_duration(/datum/status_effect/confusion)
|
||||
if(mob_dizziness > 0)
|
||||
// Gain confusion equal to about half the duration of our current dizziness
|
||||
M.set_timed_status_effect(mob_dizziness / 2, /datum/status_effect/confusion)
|
||||
M.set_confusion(mob_dizziness / 2)
|
||||
|
||||
if(current_cycle >= 12 && DT_PROB(4, delta_time))
|
||||
var/tox_message = pick("You feel your heart spasm in your chest.", "You feel faint.","You feel you need to catch your breath.","You feel a prickle of pain in your chest.")
|
||||
@@ -1223,7 +1223,7 @@
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1 * REM * delta_time)
|
||||
if(DT_PROB(0.5, delta_time))
|
||||
to_chat(M, span_notice("Ah, what was that? You thought you heard something..."))
|
||||
M.adjust_timed_status_effect(5 SECONDS, /datum/status_effect/confusion)
|
||||
M.adjust_confusion(5 SECONDS)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/hunterspider
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
/datum/reagent/eigenstate/overdose_start(mob/living/living_mob) //Overdose, makes you teleport randomly
|
||||
to_chat(living_mob, span_userdanger("You feel like your perspective is being ripped apart as you begin flitting in and out of reality!"))
|
||||
living_mob.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
living_mob.set_jitter_if_lower(40 SECONDS)
|
||||
metabolization_rate += 0.5 //So you're not stuck forever teleporting.
|
||||
if(iscarbon(living_mob))
|
||||
var/mob/living/carbon/carbon_mob = living_mob
|
||||
|
||||
@@ -53,20 +53,19 @@
|
||||
|
||||
/datum/addiction/alcohol/withdrawal_stage_1_process(mob/living/carbon/affected_carbon, delta_time)
|
||||
. = ..()
|
||||
affected_carbon.set_timed_status_effect(10 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
affected_carbon.set_jitter_if_lower(10 SECONDS * delta_time)
|
||||
|
||||
/datum/addiction/alcohol/withdrawal_stage_2_process(mob/living/carbon/affected_carbon, delta_time)
|
||||
. = ..()
|
||||
affected_carbon.set_timed_status_effect(20 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
affected_carbon.set_jitter_if_lower(20 SECONDS * delta_time)
|
||||
affected_carbon.set_hallucinations_if_lower(10 SECONDS)
|
||||
|
||||
/datum/addiction/alcohol/withdrawal_stage_3_process(mob/living/carbon/affected_carbon, delta_time)
|
||||
. = ..()
|
||||
affected_carbon.set_timed_status_effect(30 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
affected_carbon.set_jitter_if_lower(30 SECONDS * delta_time)
|
||||
affected_carbon.set_hallucinations_if_lower(10 SECONDS)
|
||||
if(DT_PROB(4, delta_time))
|
||||
if(!HAS_TRAIT(affected_carbon, TRAIT_ANTICONVULSANT))
|
||||
affected_carbon.apply_status_effect(/datum/status_effect/seizure)
|
||||
if(DT_PROB(4, delta_time) && !HAS_TRAIT(affected_carbon, TRAIT_ANTICONVULSANT))
|
||||
affected_carbon.apply_status_effect(/datum/status_effect/seizure)
|
||||
|
||||
/datum/addiction/hallucinogens
|
||||
name = "hallucinogen"
|
||||
@@ -136,8 +135,8 @@
|
||||
var/lums = T.get_lumcount()
|
||||
if(lums > 0.5)
|
||||
affected_human.add_mood_event("too_bright", /datum/mood_event/bright_light)
|
||||
affected_human.adjust_timed_status_effect(6 SECONDS, /datum/status_effect/dizziness, max_duration = 80 SECONDS)
|
||||
affected_human.adjust_timed_status_effect(0.5 SECONDS * delta_time, /datum/status_effect/confusion, max_duration = 20 SECONDS)
|
||||
affected_human.adjust_dizzy_up_to(6 SECONDS, 80 SECONDS)
|
||||
affected_human.adjust_confusion_up_to(0.5 SECONDS * delta_time, 20 SECONDS)
|
||||
else
|
||||
affected_carbon.clear_mood_event("too_bright")
|
||||
|
||||
@@ -274,16 +273,16 @@
|
||||
|
||||
/datum/addiction/nicotine/withdrawal_enters_stage_1(mob/living/carbon/affected_carbon, delta_time)
|
||||
. = ..()
|
||||
affected_carbon.set_timed_status_effect(10 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
affected_carbon.set_jitter_if_lower(10 SECONDS * delta_time)
|
||||
|
||||
/datum/addiction/nicotine/withdrawal_stage_2_process(mob/living/carbon/affected_carbon, delta_time)
|
||||
. = ..()
|
||||
affected_carbon.set_timed_status_effect(20 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
affected_carbon.set_jitter_if_lower(20 SECONDS * delta_time)
|
||||
if(DT_PROB(10, delta_time))
|
||||
affected_carbon.emote("cough")
|
||||
|
||||
/datum/addiction/nicotine/withdrawal_stage_3_process(mob/living/carbon/affected_carbon, delta_time)
|
||||
. = ..()
|
||||
affected_carbon.set_timed_status_effect(30 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
affected_carbon.set_jitter_if_lower(30 SECONDS * delta_time)
|
||||
if(DT_PROB(15, delta_time))
|
||||
affected_carbon.emote("cough")
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
/datum/status_effect/bonechill/tick()
|
||||
if(prob(50))
|
||||
owner.adjustFireLoss(1)
|
||||
owner.set_timed_status_effect(6 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
owner.set_jitter_if_lower(6 SECONDS)
|
||||
owner.adjust_bodytemperature(-10)
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/humi = owner
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
if(!COOLDOWN_FINISHED(src, severe_cooldown)) //So we cant just spam emp to kill people.
|
||||
owner.set_timed_status_effect(20 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
owner.set_dizzy_if_lower(20 SECONDS)
|
||||
owner.losebreath += 10
|
||||
COOLDOWN_START(src, severe_cooldown, 20 SECONDS)
|
||||
if(prob(emp_vulnerability/severity)) //Chance of permanent effects
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
else if(human.satiety < 0)
|
||||
human.satiety++
|
||||
if(DT_PROB(round(-human.satiety/77), delta_time))
|
||||
human.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
human.set_jitter_if_lower(10 SECONDS)
|
||||
hunger_rate = 3 * HUNGER_FACTOR
|
||||
hunger_rate *= human.physiology.hunger_mod
|
||||
human.adjust_nutrition(-hunger_rate * delta_time)
|
||||
@@ -216,17 +216,17 @@
|
||||
var/pukeprob = 2.5 + (0.025 * disgust)
|
||||
if(disgust >= DISGUST_LEVEL_GROSS)
|
||||
if(DT_PROB(5, delta_time))
|
||||
disgusted.adjust_timed_status_effect(2 SECONDS, /datum/status_effect/speech/stutter)
|
||||
disgusted.adjust_timed_status_effect(2 SECONDS, /datum/status_effect/confusion)
|
||||
disgusted.adjust_stutter(2 SECONDS)
|
||||
disgusted.adjust_confusion(2 SECONDS)
|
||||
if(DT_PROB(5, delta_time) && !disgusted.stat)
|
||||
to_chat(disgusted, span_warning("You feel kind of iffy..."))
|
||||
disgusted.adjust_timed_status_effect(-6 SECONDS, /datum/status_effect/jitter)
|
||||
disgusted.adjust_jitter(-6 SECONDS)
|
||||
if(disgust >= DISGUST_LEVEL_VERYGROSS)
|
||||
if(DT_PROB(pukeprob, delta_time)) //iT hAndLeS mOrE ThaN PukInG
|
||||
disgusted.adjust_timed_status_effect(2.5 SECONDS, /datum/status_effect/confusion)
|
||||
disgusted.adjust_timed_status_effect(2 SECONDS, /datum/status_effect/speech/stutter)
|
||||
disgusted.adjust_confusion(2.5 SECONDS)
|
||||
disgusted.adjust_stutter(2 SECONDS)
|
||||
disgusted.vomit(10, distance = 0, vomit_type = NONE)
|
||||
disgusted.set_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
|
||||
disgusted.set_dizzy_if_lower(10 SECONDS)
|
||||
if(disgust >= DISGUST_LEVEL_DISGUSTED)
|
||||
if(DT_PROB(13, delta_time))
|
||||
disgusted.blur_eyes(3) //We need to add more shit down here
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
continue
|
||||
to_chat(M, "<font color='red' size='7'>HONK</font>")
|
||||
M.SetSleeping(0)
|
||||
M.adjust_timed_status_effect(40 SECONDS, /datum/status_effect/speech/stutter)
|
||||
M.adjust_stutter(40 SECONDS)
|
||||
var/obj/item/organ/internal/ears/ears = M.getorganslot(ORGAN_SLOT_EARS)
|
||||
if(ears)
|
||||
ears.adjustEarDamage(0, 30)
|
||||
@@ -235,7 +235,7 @@
|
||||
M.Stun(200)
|
||||
M.Unconscious(80)
|
||||
else
|
||||
M.set_timed_status_effect(1000 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
|
||||
M.set_jitter_if_lower(1000 SECONDS)
|
||||
|
||||
log_message("Honked from [src.name]. HONK!", LOG_MECHA)
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
Reference in New Issue
Block a user