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:
MrMelbert
2022-09-24 11:04:26 -04:00
committed by GitHub
parent ee7306cb5b
commit 45516f4741
89 changed files with 385 additions and 329 deletions
+60
View File
@@ -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)
+4 -4
View File
@@ -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>")
+2 -2
View File
@@ -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..."))
+5 -5
View File
@@ -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)
+7 -7
View File
@@ -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.
+3 -3
View File
@@ -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)
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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)
+3 -3
View File
@@ -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!"))
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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")
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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")
+2 -2
View File
@@ -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))
+6 -6
View File
@@ -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)))
+1 -1
View File
@@ -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]!"), \
+3 -3
View File
@@ -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)
+1 -1
View File
@@ -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"
+1 -1
View File
@@ -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!"),
+3 -3
View File
@@ -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)
+3 -3
View File
@@ -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"
+7 -7
View File
@@ -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
+1 -1
View File
@@ -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...")]"))
+4 -4
View File
@@ -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)
+6 -6
View File
@@ -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)
+1 -1
View File
@@ -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?
+1 -1
View File
@@ -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>")
+3 -3
View File
@@ -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)
+2 -2
View File
@@ -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)
+3 -3
View File
@@ -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!"
+5 -5
View File
@@ -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)
+2 -2
View File
@@ -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.
+2 -2
View File
@@ -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."))
+1 -1
View File
@@ -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'))
+2 -2
View File
@@ -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--
..()
+3 -3
View File
@@ -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))
@@ -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)
+7 -7
View File
@@ -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)
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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!"), \
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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)
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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()
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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)