Converts jittering to status effect, striking yet another mob level status value (#66852)

Converts jittering to status effect, striking yet another mob level status value
This commit is contained in:
MrMelbert
2022-05-11 00:56:29 -04:00
committed by GitHub
parent 528074e050
commit 29bfa42779
58 changed files with 218 additions and 195 deletions
-1
View File
@@ -56,7 +56,6 @@
#define EFFECT_IMMOBILIZE "immobilize"
#define EFFECT_EYE_BLUR "eye_blur"
#define EFFECT_DROWSY "drowsy"
#define EFFECT_JITTER "jitter"
//Bitflags defining which status effects could be or are inflicted on a mob
#define CANSTUN (1<<0)
+3 -3
View File
@@ -22,7 +22,7 @@
victim.Unconscious(40)
victim.Stun(100)
victim.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/speech/stutter)
victim.Jitter(500)
victim.set_timed_status_effect(1000 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
var/obj/item/organ/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.Jitter(250)
victim.set_timed_status_effect(500 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
var/obj/item/organ/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.Jitter(100)
victim.set_timed_status_effect(200 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
var/obj/item/organ/ears/ears = victim.getorganslot(ORGAN_SLOT_EARS)
ears?.adjustEarDamage(4, 5)
to_chat(victim, "<font color='red' size='2'>HONK</font>")
+4 -4
View File
@@ -111,21 +111,21 @@
if(1)
to_chat(owner, span_warning("You are paralyzed with fear!"))
owner.Stun(70)
owner.Jitter(8)
owner.set_timed_status_effect(16 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
if(2)
owner.emote("scream")
owner.Jitter(5)
owner.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
owner.say("AAAAH!!", forced = "phobia")
if(reason)
owner.pointed(reason)
if(3)
to_chat(owner, span_warning("You shut your eyes in terror!"))
owner.Jitter(5)
owner.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
owner.blind_eyes(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.Jitter(10)
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)
// Defined phobia types for badminry, not included in the RNG trauma pool to avoid diluting.
+16 -15
View File
@@ -179,36 +179,33 @@
return
var/high_stress = (stress > 60) //things get psychosomatic from here on
switch(rand(1,6))
switch(rand(1, 6))
if(1)
if(!high_stress)
to_chat(owner, span_warning("You feel sick..."))
else
if(high_stress)
to_chat(owner, span_warning("You feel really sick at the thought of being alone!"))
else
to_chat(owner, span_warning("You feel sick..."))
addtimer(CALLBACK(owner, /mob/living/carbon.proc/vomit, high_stress), 50) //blood vomit if high stress
if(2)
if(!high_stress)
to_chat(owner, span_warning("You can't stop shaking..."))
else
if(high_stress)
to_chat(owner, span_warning("You feel weak and scared! If only you weren't alone..."))
owner.adjustStaminaLoss(50)
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.Jitter(20)
owner.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
if(3, 4)
if(!high_stress)
to_chat(owner, span_warning("You feel really lonely..."))
else
if(high_stress)
to_chat(owner, span_warning("You're going mad with loneliness!"))
owner.hallucination += 30
else
to_chat(owner, span_warning("You feel really lonely..."))
if(5)
if(!high_stress)
to_chat(owner, span_warning("Your heart skips a beat."))
owner.adjustOxyLoss(8)
else
if(high_stress)
if(prob(15) && ishuman(owner))
var/mob/living/carbon/human/H = owner
H.set_heartattack(TRUE)
@@ -216,6 +213,10 @@
else
to_chat(owner, span_userdanger("You feel your heart lurching in your chest..."))
owner.adjustOxyLoss(8)
else
to_chat(owner, span_warning("Your heart skips a beat."))
owner.adjustOxyLoss(8)
else
//No effect
return
+1 -1
View File
@@ -36,7 +36,7 @@
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.jitteriness += (rand(6,8))
affected_mob.adjust_timed_status_effect(rand(12 SECONDS, 16 SECONDS), /datum/status_effect/jitter)
if(DT_PROB(1, delta_time))
affected_mob.visible_message(span_danger("[affected_mob] coughs up butterflies!"), \
span_userdanger("You cough up butterflies!"))
+3 -3
View File
@@ -21,7 +21,7 @@
var/mob/living/carbon/human/U = user
if(!istype(U.dna.species, /datum/species/skeleton))
U.adjustStaminaLoss(35) //Extra Damage
U.Jitter(35)
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)
if(U.getStaminaLoss() > 95)
to_chat(U, "<font color ='red', size ='4'><B>Your ears weren't meant for this spectral sound.</B></font>")
@@ -35,7 +35,7 @@
if(istype(H.dna.species, /datum/species/zombie))
H.adjustStaminaLoss(25)
H.Paralyze(15) //zombies can't resist the doot
C.Jitter(35)
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)
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
@@ -43,7 +43,7 @@
INVOKE_ASYNC(src, .proc/spectral_change, H)
else //the sound will spook monkeys.
C.Jitter(15)
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)
/datum/element/spooky/proc/spectral_change(mob/living/carbon/human/H, mob/user)
+1 -1
View File
@@ -183,7 +183,7 @@
playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, TRUE, -1)
if(I && D.temporarilyRemoveItemFromInventory(I))
A.put_in_hands(I)
D.Jitter(2)
D.set_timed_status_effect(4 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
D.apply_damage(5, A.get_attack_type())
else
D.visible_message(span_danger("[A] fails to disarm [D]!"), \
+4 -3
View File
@@ -13,14 +13,15 @@
if(DT_PROB(0.5 * GET_MUTATION_SYNCHRONIZER(src), delta_time) && owner.stat == CONSCIOUS)
owner.visible_message(span_danger("[owner] starts having a seizure!"), span_userdanger("You have a seizure!"))
owner.Unconscious(200 * GET_MUTATION_POWER(src))
owner.Jitter(1000 * GET_MUTATION_POWER(src))
owner.set_timed_status_effect(2000 SECONDS * GET_MUTATION_POWER(src), /datum/status_effect/jitter)
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "epilepsy", /datum/mood_event/epilepsy)
addtimer(CALLBACK(src, .proc/jitter_less), 90)
/datum/mutation/human/epilepsy/proc/jitter_less()
if(owner)
owner.jitteriness = 10
if(QDELETED(owner))
return
owner.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter)
//Unstable DNA induces random mutations!
/datum/mutation/human/bad_dna
+1 -1
View File
@@ -589,7 +589,7 @@
switch(rand(1,3))
if(1)
quirk_holder.Jitter(10)
quirk_holder.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
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)
+1 -1
View File
@@ -319,7 +319,7 @@
/datum/status_effect/good_music/tick()
if(owner.can_hear())
owner.adjust_timed_status_effect(-4 SECONDS, /datum/status_effect/dizziness)
owner.jitteriness = max(0, owner.jitteriness - 2)
owner.adjust_timed_status_effect(-4 SECONDS, /datum/status_effect/jitter)
owner.adjust_timed_status_effect(-1 SECONDS, /datum/status_effect/confusion)
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "goodmusic", /datum/mood_event/goodmusic)
@@ -848,8 +848,11 @@
if(prob(40))
var/obj/item/I = H.get_active_held_item()
if(I && H.dropItemToGround(I))
H.visible_message(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.jitteriness += 5
H.visible_message(
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)
/atom/movable/screen/alert/status_effect/convulsing
name = "Shaky Hands"
@@ -969,7 +972,7 @@
human_owner.vomit()
if(20 to 30)
human_owner.set_timed_status_effect(100 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
human_owner.Jitter(50)
human_owner.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
if(30 to 40)
human_owner.adjustOrganLoss(ORGAN_SLOT_LIVER, 5)
if(40 to 50)
+1 -1
View File
@@ -160,7 +160,7 @@
owner.adjust_timed_status_effect(4 SECONDS, /datum/status_effect/speech/slurring/drunk)
// And drunk people will always lose jitteriness
owner.jitteriness = max(owner.jitteriness - 3, 0)
owner.adjust_timed_status_effect(-6 SECONDS, /datum/status_effect/jitter)
// Over 11, we will constantly gain slurring up to 10 seconds of slurring.
if(drunk_value >= 11)
@@ -0,0 +1,55 @@
/datum/status_effect/jitter
id = "jitter"
tick_interval = 2 SECONDS
alert_type = null
/datum/status_effect/jitter/on_creation(mob/living/new_owner, duration = 10 SECONDS)
src.duration = duration
return ..()
/datum/status_effect/jitter/on_apply()
RegisterSignal(owner, list(COMSIG_LIVING_POST_FULLY_HEAL, COMSIG_LIVING_DEATH), .proc/remove_jitter)
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, id, /datum/mood_event/jittery)
return TRUE
/datum/status_effect/jitter/on_remove()
UnregisterSignal(owner, list(COMSIG_LIVING_POST_FULLY_HEAL, COMSIG_LIVING_DEATH))
SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, id)
// juuust in case, reset our x and y's from our jittering
owner.pixel_x = 0
owner.pixel_y = 0
/datum/status_effect/jitter/get_examine_text()
switch(duration - world.time)
if(5 MINUTES to INFINITY)
return span_boldwarning("[owner.p_they(TRUE)] [owner.p_are()] convulsing violently!")
if(3 MINUTES to 5 MINUTES)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] extremely jittery.")
if(1 MINUTES to 3 MINUTES)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] twitching ever so slightly.")
return null
/// Removes all of our jitteriness on a signal
/datum/status_effect/jitter/proc/remove_jitter(datum/source)
SIGNAL_HANDLER
qdel(src)
/datum/status_effect/jitter/tick()
var/time_left_in_seconds = (duration - world.time) / 10
owner.do_jitter_animation(time_left_in_seconds)
// Decrease the duration by our resting_modifier, effectively skipping resting_modifier ticks per tick
var/resting_modifier = owner.resting ? 5 : 1
duration -= ((resting_modifier - 1) * initial(tick_interval))
/// Helper proc that causes the mob to do a jittering animation by jitter_amount.
/// jitter_amount will only apply up to 300 (maximum jitter effect).
/mob/living/proc/do_jitter_animation(jitter_amount = 100)
var/amplitude = min(4, (jitter_amount / 100) + 1)
var/pixel_x_diff = rand(-amplitude, amplitude)
var/pixel_y_diff = rand(-amplitude / 3, amplitude / 3)
animate(src, pixel_x = pixel_x_diff, pixel_y = pixel_y_diff , time = 0.2 SECONDS, loop = 6, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
animate(pixel_x = -pixel_x_diff , pixel_y = -pixel_y_diff , time = 0.2 SECONDS, flags = ANIMATION_RELATIVE)
+1 -1
View File
@@ -48,7 +48,7 @@
return FALSE
var/amplitude = rand(1 SECONDS, 3 SECONDS)
duration = amplitude
owner.Jitter(50)
owner.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
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
@@ -343,14 +343,14 @@
//phase 1
if(1 to EIGENSTASIUM_PHASE_1_END)
owner.Jitter(2)
owner.set_timed_status_effect(4 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
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.Jitter(200)
owner.set_timed_status_effect(400 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
owner.Knockdown(10)
var/list/items = list()
@@ -378,7 +378,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.Jitter(100)
owner.set_timed_status_effect(200 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
to_chat(owner, span_userdanger("Your eigenstate starts to rip apart, drawing in alternative reality versions of yourself!"))
if(1)
var/typepath = owner.type
@@ -407,7 +407,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.Jitter(50)
owner.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
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)
log_game("FERMICHEM: [owner] ckey: [owner.key] has become an alternative universe version of themselves.")
+3 -3
View File
@@ -513,7 +513,7 @@
span_userdanger("[user] touches [M] with [src]!"))
M.adjustStaminaLoss(60)
M.Knockdown(75)
M.Jitter(50)
M.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
M.apply_status_effect(/datum/status_effect/convulsing)
playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1)
if(HAS_TRAIT(M,MOB_ORGANIC))
@@ -559,7 +559,7 @@
H.apply_damage(50, BURN, BODY_ZONE_CHEST)
log_combat(user, H, "overloaded the heart of", defib)
H.Paralyze(100)
H.Jitter(100)
H.set_timed_status_effect(200 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
do_success()
return
do_cancel()
@@ -634,7 +634,7 @@
H.grab_ghost()
H.revive(full_heal = FALSE, admin_revive = FALSE)
H.emote("gasp")
H.Jitter(100)
H.set_timed_status_effect(200 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
SEND_SIGNAL(H, COMSIG_LIVING_MINOR_SHOCK)
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "saved_life", /datum/mood_event/saved_life)
log_combat(user, H, "revived", defib)
+2 -2
View File
@@ -370,7 +370,7 @@
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.Jitter(20)
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)
/obj/item/melee/baton/security
@@ -562,7 +562,7 @@
* 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.Jitter(20)
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)
@@ -343,12 +343,12 @@
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.Jitter(10)
carbon.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/jitter)
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.Jitter(25)
carbon.adjust_timed_status_effect(50 SECONDS, /datum/status_effect/jitter)
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 in [AREACOORD(user)]", LOG_ATTACK)
@@ -512,7 +512,7 @@ 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.Jitter(20)
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)
SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK)
@@ -18,7 +18,7 @@
if(ears)
ears.adjustEarDamage(0, 30)
C.adjust_timed_status_effect(25 SECONDS, /datum/status_effect/confusion)
C.Jitter(50)
C.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
else
SEND_SOUND(C, sound('sound/effects/screech.ogg'))
+1 -1
View File
@@ -444,7 +444,7 @@
carbon_target.silent += 6
carbon_target.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/speech/stutter)
carbon_target.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/speech/slurring/cult)
carbon_target.Jitter(1.5 SECONDS)
carbon_target.set_timed_status_effect(30 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
uses--
..()
@@ -64,7 +64,7 @@
human_in_range.hallucination = min(human_in_range.hallucination + 5, 120)
if(DT_PROB(40, delta_time))
human_in_range.Jitter(5)
human_in_range.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
if(human_in_range.getStaminaLoss() <= 85 && DT_PROB(30, delta_time))
human_in_range.emote(pick("giggle", "laugh"))
@@ -45,7 +45,7 @@
healing_amount *= -0.5
if(owner.health > owner.crit_threshold && prob(4))
owner.Jitter(10)
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.hallucination = min(owner.hallucination + 3, 24)
@@ -226,11 +226,11 @@
sac_target.set_handcuffed(new /obj/item/restraints/handcuffs/energy/cult(sac_target))
sac_target.update_handcuffed()
sac_target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 85, 150)
sac_target.do_jitter_animation(100)
sac_target.do_jitter_animation()
log_combat(heretic_mind.current, sac_target, "sacrificed")
addtimer(CALLBACK(sac_target, /mob/living/carbon.proc/do_jitter_animation, 100), SACRIFICE_SLEEP_DURATION * (1/3))
addtimer(CALLBACK(sac_target, /mob/living/carbon.proc/do_jitter_animation, 100), SACRIFICE_SLEEP_DURATION * (2/3))
addtimer(CALLBACK(sac_target, /mob/living/carbon.proc/do_jitter_animation), SACRIFICE_SLEEP_DURATION * (1/3))
addtimer(CALLBACK(sac_target, /mob/living/carbon.proc/do_jitter_animation), SACRIFICE_SLEEP_DURATION * (2/3))
// If our target is dead, try to revive them
// and if we fail to revive them, don't proceede the chain
@@ -311,7 +311,7 @@
sac_target.flash_act()
sac_target.blur_eyes(15)
sac_target.Jitter(10)
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.hallucination += 12
sac_target.emote("scream")
@@ -432,7 +432,7 @@
// Oh god where are we?
sac_target.flash_act()
sac_target.adjust_timed_status_effect(60 SECONDS, /datum/status_effect/confusion)
sac_target.Jitter(60)
sac_target.set_timed_status_effect(120 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
sac_target.blur_eyes(50)
sac_target.set_timed_status_effect(1 MINUTES, /datum/status_effect/dizziness, only_if_higher = TRUE)
sac_target.AdjustKnockdown(80)
@@ -241,7 +241,7 @@
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.Jitter(10)
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.blind_eyes(2)
SEND_SIGNAL(carbon_victim, COMSIG_ADD_MOOD_EVENT, "gates_of_mansus", /datum/mood_event/gates_of_mansus)
@@ -607,7 +607,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.Jitter(60)
honk_victim.set_timed_status_effect(120 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
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.
+7 -9
View File
@@ -1567,19 +1567,17 @@ GLOBAL_LIST_INIT(hallucination_list, list(
addtimer(CALLBACK(src, .proc/reset_shock_animation), 40)
target.playsound_local(get_turf(src), SFX_SPARKS, 100, 1)
target.staminaloss += 50
target.Stun(40)
target.jitteriness += 1000
target.do_jitter_animation(target.jitteriness)
addtimer(CALLBACK(src, .proc/shock_drop), 20)
target.Stun(4 SECONDS)
target.do_jitter_animation(300) // Maximum jitter
target.adjust_timed_status_effect(20 SECONDS, /datum/status_effect/jitter)
addtimer(CALLBACK(src, .proc/shock_drop), 2 SECONDS)
/datum/hallucination/shock/proc/reset_shock_animation()
if(target.client)
target.client.images.Remove(shock_image)
target.client.images.Remove(electrocution_skeleton_anim)
target.client?.images.Remove(shock_image)
target.client?.images.Remove(electrocution_skeleton_anim)
/datum/hallucination/shock/proc/shock_drop()
target.jitteriness = max(target.jitteriness - 990, 10) //Still jittery, but vastly less
target.Paralyze(60)
target.Paralyze(6 SECONDS)
/datum/hallucination/husks
var/image/halbody
+1 -1
View File
@@ -784,7 +784,7 @@
living_target.apply_status_effect(/datum/status_effect/stagger)
var/datum/status_effect/agent_pinpointer/scan_pinpointer = ranged_ability_user.apply_status_effect(/datum/status_effect/agent_pinpointer/scan)
scan_pinpointer.scan_target = living_target
living_target.Jitter(5 SECONDS)
living_target.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
to_chat(living_target, span_warning("You've been staggered!"))
living_target.add_filter("scan", 2, list("type" = "outline", "color" = COLOR_YELLOW, "size" = 1))
addtimer(CALLBACK(living_target, /atom/.proc/remove_filter, "scan"), 30 SECONDS)
@@ -137,7 +137,7 @@
owner.emote("scream")
owner.Paralyze(100)
owner.jitteriness += 30
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)
@@ -385,15 +385,14 @@
if(should_stun)
Paralyze(40)
//Jitter and other fluff.
jitteriness += 1000
do_jitter_animation(jitteriness)
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)
addtimer(CALLBACK(src, .proc/secondary_shock, should_stun), 20)
addtimer(CALLBACK(src, .proc/secondary_shock, should_stun), 2 SECONDS)
return shock_damage
///Called slightly after electrocute act to reduce jittering and apply a secondary stun.
///Called slightly after electrocute act to apply a secondary stun.
/mob/living/carbon/proc/secondary_shock(should_stun)
jitteriness = max(jitteriness - 990, 10)
if(should_stun)
Paralyze(60)
@@ -27,7 +27,6 @@ GLOBAL_LIST_EMPTY(dead_players_during_shift)
. = ..()
jitteriness = 0
if(client && !suiciding && !(client in GLOB.dead_players_during_shift))
GLOB.dead_players_during_shift += client
GLOB.deaths_during_shift++
@@ -100,15 +100,6 @@
if (length(status_examines))
. += status_examines
//Jitters
switch(jitteriness)
if(300 to INFINITY)
. += span_warning("<B>[t_He] [t_is] convulsing violently!</B>")
if(200 to 300)
. += span_warning("[t_He] [t_is] extremely jittery.")
if(100 to 200)
. += span_warning("[t_He] [t_is] twitching ever so slightly.")
var/appears_dead = FALSE
var/just_sleeping = FALSE
@@ -1017,7 +1017,7 @@
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.jitteriness += 7
H.adjust_timed_status_effect(14 SECONDS, /datum/status_effect/jitter)
var/distance = max(0,get_dist(get_turf(H),get_turf(M)))
switch(distance)
if(0 to 1)
@@ -1025,13 +1025,13 @@
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.jitteriness += 4
M.adjust_timed_status_effect(8 SECONDS, /datum/status_effect/jitter)
SEND_SIGNAL(M, COMSIG_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.jitteriness += 3
M.adjust_timed_status_effect(6 SECONDS, /datum/status_effect/jitter)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "gonged", /datum/mood_event/loud_gong)
else
M.show_message(span_warning("GONG!"), MSG_AUDIBLE)
-8
View File
@@ -434,14 +434,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
if(DT_PROB(2.5, delta_time))
AdjustSleeping(10 SECONDS)
//Jitteriness
if(jitteriness)
do_jitter_animation(jitteriness)
jitteriness = max(jitteriness - (restingpwr * delta_time), 0)
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "jittery", /datum/mood_event/jittery)
else
SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "jittery")
if(silent)
silent = max(silent - (0.5 * delta_time), 0)
+3 -6
View File
@@ -108,9 +108,6 @@
blur_eyes(effect * hit_percent)
if(EFFECT_DROWSY)
adjust_drowsyness(effect * hit_percent)
if(EFFECT_JITTER)
if((status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE))
jitteriness = max(jitteriness,(effect * hit_percent))
return TRUE
/**
@@ -129,7 +126,7 @@
drowsy = 0,
blocked = 0, // This one's not an effect, don't be confused - it's block chance
stamina = 0, // This one's a damage type, and not an effect
jitter = 0,
jitter = 0 SECONDS,
paralyze = 0,
immobilize = 0,
)
@@ -151,12 +148,12 @@
apply_effect(eyeblur, EFFECT_EYE_BLUR, blocked)
if(drowsy)
apply_effect(drowsy, EFFECT_DROWSY, blocked)
if(jitter)
apply_effect(jitter, EFFECT_JITTER, blocked)
if(stamina)
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)
if(slur)
adjust_timed_status_effect(slur, /datum/status_effect/speech/slurring/drunk)
if(stutter)
-8
View File
@@ -840,7 +840,6 @@
heal_overall_damage(INFINITY, INFINITY, INFINITY, null, TRUE) //heal brute and burn dmg on both organic and robotic limbs, and update health right away.
extinguish_mob()
set_drowsyness(0)
jitteriness = 0
stop_sound_channel(CHANNEL_HEARTBEAT)
SEND_SIGNAL(src, COMSIG_LIVING_POST_FULLY_HEAL, admin_revive)
@@ -1110,13 +1109,6 @@
else if(!src.mob_negates_gravity())
step_towards(src,S)
/mob/living/proc/do_jitter_animation(jitteriness)
var/amplitude = min(4, (jitteriness/100) + 1)
var/pixel_x_diff = rand(-amplitude, amplitude)
var/pixel_y_diff = rand(-amplitude/3, amplitude/3)
animate(src, pixel_x = pixel_x_diff, pixel_y = pixel_y_diff , time = 2, loop = 6, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
animate(pixel_x = -pixel_x_diff , pixel_y = -pixel_y_diff , time = 2, flags = ANIMATION_RELATIVE)
/mob/living/proc/get_temperature(datum/gas_mixture/environment)
var/loc_temp = environment ? environment.temperature : T0C
if(isobj(loc))
@@ -70,7 +70,7 @@
var/obj/item/organ/ears/target_ears = current_target.getorganslot(ORGAN_SLOT_EARS)
if(target_ears && !HAS_TRAIT_FROM(current_target, TRAIT_DEAF, CLOTHING_TRAIT))
target_ears.adjustEarDamage(0, 5) //far less damage than the H.O.N.K.
current_target.Jitter(5 SECONDS)
current_target.set_timed_status_effect(100 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
current_target.Paralyze(6 SECONDS)
if(client) //prevent spam from players
limiting_spam = TRUE
-2
View File
@@ -108,8 +108,6 @@
var/old_bodytemperature = 0
/// Drowsyness level of the mob
var/drowsyness = 0//Carbon
/// Jitteryness level of the mob
var/jitteriness = 0//Carbon
/// Hunger level of the mob
var/nutrition = NUTRITION_LEVEL_START_MIN // randomised in Initialize
/// Satiation level of the mob
-7
View File
@@ -1,11 +1,4 @@
//Here are the procs used to modify status effects of a mob.
//The effects include: stun, knockdown, unconscious, sleeping, resting, jitteriness, dizziness, drowsyness, ear damage,
// eye damage, eye_blind, eye_blurry, druggy, TRAIT_BLIND trait, and TRAIT_NEARSIGHT trait.
///Set the jitter of a mob
/mob/proc/Jitter(amount)
jitteriness = max(jitteriness,amount,0)
/**
* Set drowsyness of a mob to passed value
@@ -420,7 +420,7 @@
damage_type = BURN
armor_flag = ENERGY
range = 150
jitter = 10
jitter = 20 SECONDS
var/obj/item/gun/energy/beam_rifle/gun
var/structure_pierce_amount = 0 //All set to 0 so the gun can manually set them during firing.
var/structure_bleed_coeff = 0
+2 -1
View File
@@ -153,7 +153,8 @@
var/unconscious = 0
var/eyeblur = 0
var/drowsy = 0
var/jitter = 0
/// Jittering applied on projectile hit
var/jitter = 0 SECONDS
/// Extra stamina damage applied on projectile hit (in addition to the main damage)
var/stamina = 0
/// Stuttering applied on projectile hit
@@ -40,7 +40,7 @@
damage = 5
paralyze = 100
stutter = 10 SECONDS
jitter = 20
jitter = 40 SECONDS
range = 7
icon_state = "spark"
color = "#FFFF00"
@@ -5,7 +5,7 @@
nodamage = FALSE
paralyze = 100
stutter = 10 SECONDS
jitter = 20
jitter = 40 SECONDS
hitsound = 'sound/weapons/taserhit.ogg'
range = 7
tracer_type = /obj/effect/projectile/tracer/stun
@@ -23,7 +23,7 @@
if(C.dna && C.dna.check_mutation(/datum/mutation/human/hulk))
C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk")
else if((C.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(C, TRAIT_STUNIMMUNE))
addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, jitter), 5)
addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, 20), 5)
/obj/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet
do_sparks(1, TRUE, src)
@@ -168,7 +168,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
drinker.adjust_drowsyness(-3 * REM * delta_time)
drinker.AdjustSleeping(-40 * REM * delta_time)
if(!HAS_TRAIT(drinker, TRAIT_ALCOHOL_TOLERANCE))
drinker.Jitter(0.5 SECONDS)
drinker.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
. = TRUE
@@ -230,13 +230,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.Jitter(0.5 SECONDS)
drinker.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
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.Jitter(2 SECONDS)
drinker.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
drinker.Stun(1.5 SECONDS)
/datum/reagent/consumable/ethanol/thirteenloko/overdose_process(mob/living/drinker, delta_time, times_fired)
@@ -245,7 +245,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.Jitter(1 SECONDS)
drinker.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
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.")]"))
@@ -267,7 +267,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.Jitter(35 SECONDS)
drinker.set_timed_status_effect(700 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
if(DT_PROB(0.5, delta_time) && iscarbon(drinker))
var/datum/disease/heart_attack = new /datum/disease/heart_failure
@@ -797,7 +797,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.Jitter(2)
drinker.set_timed_status_effect(4 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
var/obj/item/organ/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))
@@ -1581,19 +1581,19 @@ All effects don't start immediately, but rather get worse over time; the rate is
if(DT_PROB(5, delta_time))
drinker.emote(pick("twitch","giggle"))
if(5 to 10)
drinker.Jitter(20 * REM * delta_time)
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)
if(DT_PROB(10, delta_time))
drinker.emote(pick("twitch","giggle"))
if (10 to 200)
drinker.Jitter(40 * REM * delta_time)
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)
if(DT_PROB(16, delta_time))
drinker.emote(pick("twitch","giggle"))
if(200 to INFINITY)
drinker.Jitter(60 * REM * delta_time)
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)
if(DT_PROB(23, delta_time))
@@ -2386,7 +2386,7 @@ 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.jitteriness = max(drinker.jitteriness - (1 * 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)
return ..()
@@ -535,7 +535,7 @@
H.adjustOrganLoss(ORGAN_SLOT_HEART, max(volume/10, 1) * REM * delta_time) // your heart is barely keeping up!
H.Jitter(rand(0, 2) * REM * delta_time)
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)
if(DT_PROB(18, delta_time))
@@ -284,7 +284,7 @@
glass_price = DRINK_PRICE_STOCK
/datum/reagent/consumable/coffee/overdose_process(mob/living/M, delta_time, times_fired)
M.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
/datum/reagent/consumable/coffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
@@ -313,7 +313,7 @@
/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_drowsyness(-1 * REM * delta_time)
M.jitteriness = max(M.jitteriness - (3 * REM * delta_time), 0)
M.adjust_timed_status_effect(-6 SECONDS * REM * delta_time, /datum/status_effect/jitter)
M.AdjustSleeping(-20 * REM * delta_time)
if(M.getToxLoss() && DT_PROB(10, delta_time))
M.adjustToxLoss(-1, 0)
@@ -367,7 +367,7 @@
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.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
. = TRUE
@@ -387,7 +387,7 @@
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.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
M.adjustToxLoss(1 * REM * delta_time, 0)
..()
. = TRUE
@@ -440,7 +440,7 @@
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/consumable/roy_rogers/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.Jitter(6 * REM * delta_time) //not as strong as coffe, still this is a lot of sugar
M.set_timed_status_effect(12 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
M.adjust_drowsyness(-5 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
return ..()
@@ -465,7 +465,7 @@
..()
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.Jitter(20 * REM * delta_time)
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_drowsyness(0)
@@ -504,7 +504,7 @@
ADD_TRAIT(M, TRAIT_DOUBLE_TAP, type)
effect_enabled = TRUE
M.Jitter(2 * REM * delta_time)
M.set_timed_status_effect(4 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
if(prob(50))
M.adjust_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/dizziness)
if(current_cycle > 10)
@@ -533,7 +533,7 @@
..()
/datum/reagent/consumable/grey_bull/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.Jitter(20 * REM * delta_time)
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_drowsyness(0)
M.AdjustSleeping(-40 * REM * delta_time)
@@ -554,7 +554,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.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
. = TRUE
@@ -696,7 +696,7 @@
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.Jitter(40 * REM * delta_time)
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_drowsyness(0)
M.AdjustSleeping(-40 * REM * delta_time)
@@ -749,7 +749,7 @@
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.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
if(M.getBruteLoss() && DT_PROB(10, delta_time))
M.heal_bodypart_damage(1,0, 0)
..()
@@ -772,7 +772,7 @@
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.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
if(M.getBruteLoss() && DT_PROB(10, delta_time))
M.heal_bodypart_damage(1, 0, 0)
..()
@@ -84,7 +84,7 @@
var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.")
to_chat(M, span_notice("[smoke_message]"))
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "smoked", /datum/mood_event/smoked, name)
M.Jitter(0) //calms down any withdrawal jitters
M.remove_status_effect(/datum/status_effect/jitter)
M.AdjustStun(-50 * REM * delta_time)
M.AdjustKnockdown(-50 * REM * delta_time)
M.AdjustUnconscious(-50 * REM * delta_time)
@@ -164,7 +164,7 @@
M.AdjustParalyzed(-40 * REM * delta_time)
M.AdjustImmobilized(-40 * REM * delta_time)
M.adjustStaminaLoss(-2 * REM * delta_time, 0)
M.Jitter(2 * REM * delta_time)
M.set_timed_status_effect(4 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1, 4) * REM * delta_time)
if(DT_PROB(2.5, delta_time))
M.emote(pick("twitch", "shiver"))
@@ -279,7 +279,7 @@
..()
/datum/reagent/drug/happiness/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.jitteriness = 0
M.remove_status_effect(/datum/status_effect/jitter)
M.remove_status_effect(/datum/status_effect/confusion)
M.disgust = 0
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.2 * REM * delta_time)
@@ -322,7 +322,7 @@
..()
/datum/reagent/drug/pumpup/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
if(DT_PROB(2.5, delta_time))
to_chat(M, span_notice("[pick("Go! Go! GO!", "You feel ready...", "You feel invincible...")]"))
@@ -336,7 +336,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.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
if(DT_PROB(2.5, delta_time))
M.drop_all_held_items()
if(DT_PROB(7.5, delta_time))
@@ -456,11 +456,11 @@
if(DT_PROB(5, delta_time))
psychonaut.emote(pick("twitch","giggle"))
if(5 to 10)
psychonaut.Jitter(10 * REM * delta_time)
psychonaut.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
if(DT_PROB(10, delta_time))
psychonaut.emote(pick("twitch","giggle"))
if (10 to INFINITY)
psychonaut.Jitter(20 * REM * delta_time)
psychonaut.set_timed_status_effect(40 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
if(DT_PROB(16, delta_time))
psychonaut.emote(pick("twitch","giggle"))
..()
@@ -761,7 +761,7 @@
. = ..()
SEND_SIGNAL(kronkaine_fiend, COMSIG_ADD_MOOD_EVENT, "tweaking", /datum/mood_event/stimulant_medium, name)
kronkaine_fiend.adjustOrganLoss(ORGAN_SLOT_HEART, 0.4 * REM * delta_time)
kronkaine_fiend.Jitter(10 * REM * delta_time)
kronkaine_fiend.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
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.Jitter(10 * REM * delta_time)
kronkaine_fiend.set_timed_status_effect(20 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
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.")))
@@ -440,7 +440,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.Jitter(10)
M.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
else
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
if(liver && HAS_TRAIT(liver, TRAIT_CULINARY_METABOLISM))
@@ -86,7 +86,7 @@
// Remove all speech related status effects
for(var/effect in typesof(/datum/status_effect/speech))
M.remove_status_effect(effect)
M.jitteriness = 0
M.remove_status_effect(/datum/status_effect/jitter)
M.hallucination = 0
REMOVE_TRAITS_NOT_IN(M, list(SPECIES_TRAIT, ROUNDSTART_TRAIT, ORGAN_TRAIT))
M.reagents.remove_all_type(/datum/reagent/toxin, 5 * REM * delta_time, FALSE, TRUE)
@@ -253,7 +253,7 @@
/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.Jitter(5 * REM * delta_time)
M.set_timed_status_effect(10 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
. = TRUE
@@ -555,7 +555,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.Jitter(10)
M.set_timed_status_effect(20 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
M.AdjustAllImmobility(-20 * REM * delta_time * normalise_creation_purity())
M.adjustStaminaLoss(-1 * REM * delta_time * normalise_creation_purity(), FALSE)
@@ -590,7 +590,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.jitteriness -= 1 * REM * delta_time
M.adjust_timed_status_effect(-2 SECONDS * REM * delta_time, /datum/status_effect/jitter)
holder.remove_reagent(/datum/reagent/toxin/histamine, 3 * REM * delta_time)
..()
@@ -630,7 +630,7 @@
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.Jitter(2)
M.set_timed_status_effect(4 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
@@ -774,14 +774,14 @@
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.Jitter(5)
M.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
/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.Jitter(1 * REM * delta_time)
M.set_timed_status_effect(2 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
..()
/datum/reagent/medicine/epinephrine
@@ -973,7 +973,7 @@
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/medicine/mutadone/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.jitteriness = 0
M.remove_status_effect(/datum/status_effect/jitter)
if(M.has_dna())
M.dna.remove_all_mutations(list(MUT_NORMAL, MUT_EXTRA), TRUE)
if(!QDELETED(M)) //We were a monkey, now a human
@@ -1148,7 +1148,7 @@
M.adjustToxLoss(-3 * REM * delta_time, 0)
M.adjustCloneLoss(-1 * REM * delta_time, 0)
M.adjustStaminaLoss(-3 * REM * delta_time, 0)
M.jitteriness = clamp(M.jitteriness + (3 * REM * delta_time), 0, 30)
M.adjust_timed_status_effect(6 SECONDS * REM * delta_time, /datum/status_effect/jitter, max_duration = 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)
@@ -1190,8 +1190,10 @@
for(var/datum/reagent/drug/R in M.reagents.reagent_list)
M.reagents.remove_reagent(R.type, 5 * REM * delta_time)
M.adjust_drowsyness(2 * REM * delta_time)
if(M.jitteriness >= 3)
M.jitteriness -= 3 * 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)
if (M.hallucination >= 5)
M.hallucination -= 5 * REM * delta_time
if(DT_PROB(10, delta_time))
@@ -1212,7 +1214,7 @@
..()
metabolizer.AdjustAllImmobility(-20 * REM * delta_time)
metabolizer.adjustStaminaLoss(-10 * REM * delta_time, 0)
metabolizer.Jitter(10 * REM * delta_time)
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)
return TRUE
@@ -1228,7 +1230,7 @@
REMOVE_TRAIT(L, TRAIT_BATON_RESISTANCE, type)
L.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown)
L.remove_status_effect(/datum/status_effect/dizziness)
L.Jitter(0)
L.remove_status_effect(/datum/status_effect/jitter)
/datum/reagent/medicine/changelingadrenaline/overdose_process(mob/living/metabolizer, delta_time, times_fired)
metabolizer.adjustToxLoss(1 * REM * delta_time, 0)
@@ -1325,7 +1327,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.Jitter(1)
metabolizer.set_timed_status_effect(1 SECONDS * REM * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
metabolization_rate = 0.005 * REAGENTS_METABOLISM * rand(5, 20) // randomizes metabolism between 0.02 and 0.08 per second
. = TRUE
..()
@@ -1338,7 +1340,7 @@
overdose_progress++
switch(overdose_progress)
if(1 to 40)
M.jitteriness = min(M.jitteriness + (1 * REM * delta_time), 10)
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)
if(DT_PROB(30, delta_time))
@@ -1346,7 +1348,7 @@
if(41 to 80)
M.adjustOxyLoss(0.1 * REM * delta_time, 0)
M.adjustStaminaLoss(0.1 * REM * delta_time, 0)
M.jitteriness = min(M.jitteriness + (1 * REM * delta_time), 20)
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)
if(DT_PROB(30, delta_time))
@@ -1385,7 +1387,7 @@
..()
/datum/reagent/medicine/psicodine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.jitteriness = max(M.jitteriness - (6 * REM * delta_time), 0)
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.disgust = max(M.disgust - (6 * REM * delta_time), 0)
@@ -284,7 +284,7 @@
data = list("misc" = 0)
data["misc"] += delta_time SECONDS * REM
M.jitteriness = min(M.jitteriness + (2 * delta_time), 10)
M.adjust_timed_status_effect(4 SECONDS * delta_time, /datum/status_effect/jitter, max_duration = 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!"))
@@ -304,7 +304,7 @@
if(IS_CULTIST(M))
M.mind.remove_antag_datum(/datum/antagonist/cult)
M.Unconscious(100)
M.jitteriness = 0
M.remove_status_effect(/datum/status_effect/jitter)
M.remove_status_effect(/datum/status_effect/speech/stutter)
holder.remove_reagent(type, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
return
@@ -1112,7 +1112,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.Jitter(2)
M.set_timed_status_effect(2 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
current_cycle = 1
addtimer(CALLBACK(M, /mob/living/proc/bluespace_shuffle), 30)
..()
@@ -1252,7 +1252,7 @@
addiction_types = list(/datum/addiction/opiods = 10)
/datum/reagent/impedrezene/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.jitteriness = max(M.jitteriness - (2.5*delta_time),0)
M.adjust_timed_status_effect(-5 SECONDS * delta_time, /datum/status_effect/jitter)
if(DT_PROB(55, delta_time))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2)
if(DT_PROB(30, delta_time))
@@ -95,7 +95,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.Jitter(20)
living_mob.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
metabolization_rate += 0.5 //So you're not stuck forever teleporting.
if(iscarbon(living_mob))
var/mob/living/carbon/carbon_mob = living_mob
@@ -54,16 +54,16 @@
/datum/addiction/alcohol/withdrawal_stage_1_process(mob/living/carbon/affected_carbon, delta_time)
. = ..()
affected_carbon.Jitter(5 * delta_time)
affected_carbon.set_timed_status_effect(10 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
/datum/addiction/alcohol/withdrawal_stage_2_process(mob/living/carbon/affected_carbon, delta_time)
. = ..()
affected_carbon.Jitter(10 * delta_time)
affected_carbon.set_timed_status_effect(20 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
affected_carbon.hallucination = max(5 SECONDS, affected_carbon.hallucination)
/datum/addiction/alcohol/withdrawal_stage_3_process(mob/living/carbon/affected_carbon, delta_time)
. = ..()
affected_carbon.Jitter(15 * delta_time)
affected_carbon.set_timed_status_effect(30 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
affected_carbon.hallucination = max(5 SECONDS, affected_carbon.hallucination)
if(DT_PROB(4, delta_time))
if(!HAS_TRAIT(affected_carbon, TRAIT_ANTICONVULSANT))
@@ -241,16 +241,16 @@
/datum/addiction/nicotine/withdrawal_enters_stage_1(mob/living/carbon/affected_carbon, delta_time)
. = ..()
affected_carbon.Jitter(5 * delta_time)
affected_carbon.set_timed_status_effect(10 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
/datum/addiction/nicotine/withdrawal_stage_2_process(mob/living/carbon/affected_carbon, delta_time)
. = ..()
affected_carbon.Jitter(10 * delta_time)
affected_carbon.set_timed_status_effect(20 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
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.Jitter(15 * delta_time)
affected_carbon.set_timed_status_effect(30 SECONDS * delta_time, /datum/status_effect/jitter, only_if_higher = TRUE)
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.Jitter(3)
owner.set_timed_status_effect(6 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
owner.adjust_bodytemperature(-10)
if(ishuman(owner))
var/mob/living/carbon/human/humi = owner
+2 -1
View File
@@ -79,10 +79,11 @@
owner.stop_sound_channel(CHANNEL_HEARTBEAT)
beat = BEAT_NONE
if(owner.jitteriness)
if(owner.has_status_effect(/datum/status_effect/jitter))
if(owner.health > HEALTH_THRESHOLD_FULLCRIT && (!beat || beat == BEAT_SLOW))
owner.playsound_local(get_turf(owner), fastbeat, 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE)
beat = BEAT_FAST
else if(beat == BEAT_FAST)
owner.stop_sound_channel(CHANNEL_HEARTBEAT)
beat = BEAT_NONE
@@ -152,7 +152,7 @@
else if(human.satiety < 0)
human.satiety++
if(DT_PROB(round(-human.satiety/77), delta_time))
human.Jitter(5)
human.set_timed_status_effect(10 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
hunger_rate = 3 * HUNGER_FACTOR
hunger_rate *= human.physiology.hunger_mod
human.adjust_nutrition(-hunger_rate * delta_time)
@@ -220,12 +220,12 @@
disgusted.adjust_timed_status_effect(2 SECONDS, /datum/status_effect/confusion)
if(DT_PROB(5, delta_time) && !disgusted.stat)
to_chat(disgusted, span_warning("You feel kind of iffy..."))
disgusted.jitteriness = max(disgusted.jitteriness - 3, 0)
disgusted.adjust_timed_status_effect(-6 SECONDS, /datum/status_effect/jitter)
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.vomit(10, 0, 1, 0, 1, 0)
disgusted.vomit(10, distance = 0, vomit_type = NONE)
disgusted.set_timed_status_effect(10 SECONDS, /datum/status_effect/dizziness, only_if_higher = TRUE)
if(disgust >= DISGUST_LEVEL_DISGUSTED)
if(DT_PROB(13, delta_time))
+1 -1
View File
@@ -399,7 +399,7 @@
playsound(get_turf(patient), 'sound/items/ratchet.ogg', 20, TRUE)
if(patient.stat >= UNCONSCIOUS || HAS_TRAIT(patient, TRAIT_INCAPACITATED)) //if you're incapacitated (due to paralysis, a stun, being in staminacrit, etc.), critted, unconscious, or dead, it's much easier to properly line up a snip
amputation_speed_mod *= 0.5
if(patient.stat != DEAD && patient.jitteriness) //jittering will make it harder to secure the shears, even if you can't otherwise move
if(patient.stat != DEAD && patient.has_status_effect(/datum/status_effect/jitter)) //jittering will make it harder to secure the shears, even if you can't otherwise move
amputation_speed_mod *= 1.5 //15*0.5*1.5=11.25, so staminacritting someone who's jittering (from, say, a stun baton) won't give you enough time to snip their head off, but staminacritting someone who isn't jittering will
if(do_after(user, toolspeed * 15 SECONDS * amputation_speed_mod, target = patient))
@@ -203,7 +203,7 @@
M.Stun(200)
M.Unconscious(80)
else
M.Jitter(500)
M.set_timed_status_effect(1000 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
log_message("Honked from [src.name]. HONK!", LOG_MECHA)
var/turf/T = get_turf(src)
+1
View File
@@ -1134,6 +1134,7 @@
#include "code\datums\status_effects\debuffs\drugginess.dm"
#include "code\datums\status_effects\debuffs\drunk.dm"
#include "code\datums\status_effects\debuffs\fire_stacks.dm"
#include "code\datums\status_effects\debuffs\jitteriness.dm"
#include "code\datums\status_effects\debuffs\speech_debuffs.dm"
#include "code\datums\status_effects\debuffs\strandling.dm"
#include "code\datums\votes\_vote_datum.dm"