mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-20 10:37:17 +01:00
[Ready] Refactors stuns and status effects. (#17579)
* Fixes reviver runtime * Confusion status effect * Dizzy status effect * Drowsiness status effect * decaying -> transient * Drunkenness status effect * why use timer when SSfastprocessing work good * stuns (mostly) * weaken and immobalise * stun/weaken times * update_flags redundancies. * Slowed() * Silence + fixes transient decay * Jittery * sleeping * Paralyze -> weaken * Cult sluring * paralyse * Stammer * slurring + projectile cleanups * losebreath * Hallucination * forgor this * eyeblurry * eye blind * Druggy * affected didn't like my spacing * review pass * second review pass * some cleanups * documentation and signal framework * confusion fix * Fixes spec_stun * rejuv fix * removes a TODO * conflicted myself * fixes * self review * review * removes TODOs * adminfreeze * TM fixes * hallucination fix + others * tones down alchol and runtime fixes * confusion overlay suggestion * more fixes * runtime fix * losebreath fix * clamp => directional bounded sum * steel review * oops Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> * reduces the dizziness cycle rate * borg hotfix * sanctified decursening Co-authored-by: mochi <1496804+dearmochi@users.noreply.github.com> Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
This commit is contained in:
co-authored by
SteelSlayer
mochi
parent
b32fb92770
commit
0f7a8707ef
@@ -52,12 +52,12 @@
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
var/obj/item/organ/internal/eyes/eyes = H.get_organ_slot("eyes")
|
||||
if(!H.eye_blind && eyes)
|
||||
if(!H.AmountBlinded() && eyes)
|
||||
if(H.glasses == src)
|
||||
to_chat(H, "<span class='danger'>[src] overloads and blinds you!</span>")
|
||||
H.flash_eyes(visual = TRUE)
|
||||
H.EyeBlind(3)
|
||||
H.EyeBlurry(5)
|
||||
H.EyeBlind(6 SECONDS)
|
||||
H.EyeBlurry(10 SECONDS)
|
||||
eyes.receive_damage(5)
|
||||
|
||||
/obj/item/clothing/glasses/meson
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
name = "stun gloves"
|
||||
desc = "Horrendous and awful. It smells like cancer. The fact it has wires attached to it is incidental."
|
||||
var/obj/item/stock_parts/cell/cell = null
|
||||
var/stun_strength = 5
|
||||
var/stun_strength = 10 SECONDS
|
||||
var/stun_cost = 2000
|
||||
|
||||
/obj/item/clothing/gloves/color/yellow/stun/get_cell()
|
||||
@@ -116,9 +116,8 @@
|
||||
H.do_attack_animation(C)
|
||||
visible_message("<span class='danger'>[C] has been touched with [src] by [H]!</span>")
|
||||
add_attack_logs(H, C, "Touched with stun gloves")
|
||||
C.Stun(stun_strength)
|
||||
C.Weaken(stun_strength)
|
||||
C.apply_effect(STUTTER, stun_strength)
|
||||
C.Stuttering(stun_strength)
|
||||
else
|
||||
to_chat(H, "<span class='notice'>Not enough charge!</span>")
|
||||
return TRUE
|
||||
|
||||
@@ -176,15 +176,15 @@
|
||||
|
||||
/obj/item/clothing/mask/muzzle/safety/shock/proc/process_activation(obj/D, normal = 1, special = 1)
|
||||
visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*")
|
||||
var/mob/M = can_shock(loc)
|
||||
if(M)
|
||||
to_chat(M, "<span class='danger'>You feel a sharp shock!</span>")
|
||||
do_sparks(3, 1, M)
|
||||
var/mob/living/L = can_shock(loc)
|
||||
if(!L)
|
||||
return
|
||||
to_chat(L, "<span class='danger'>You feel a sharp shock!</span>")
|
||||
do_sparks(3, 1, L)
|
||||
|
||||
M.Weaken(5)
|
||||
M.Stuttering(1)
|
||||
M.Jitter(20)
|
||||
return
|
||||
L.Weaken(10 SECONDS)
|
||||
L.Stuttering(2 SECONDS)
|
||||
L.Jitter(40 SECONDS)
|
||||
|
||||
|
||||
/obj/item/clothing/mask/muzzle/safety/shock/hear_talk(mob/living/M as mob, list/message_pieces)
|
||||
|
||||
@@ -124,14 +124,14 @@
|
||||
if(slot == slot_shoes)
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/slippers/ui_action_click(mob/user, action)
|
||||
/obj/item/clothing/shoes/clown_shoes/slippers/ui_action_click(mob/living/user, action)
|
||||
if(recharging_time > world.time)
|
||||
to_chat(user, "<span class='warning'>The boot's internal propulsion needs to recharge still!</span>")
|
||||
return
|
||||
var/prev_dir = user.dir
|
||||
var/prev_pass_flags = user.pass_flags
|
||||
user.pass_flags |= PASSMOB
|
||||
user.Weaken(2)
|
||||
user.Weaken(4 SECONDS)
|
||||
user.dir = prev_dir
|
||||
playsound(src, 'sound/effects/stealthoff.ogg', 50, TRUE, 1)
|
||||
recharging_time = world.time + recharging_rate
|
||||
|
||||
@@ -429,7 +429,7 @@
|
||||
if(dist_from_user == 0)
|
||||
if(isliving(AM))
|
||||
var/mob/living/M = AM
|
||||
M.Weaken(3)
|
||||
M.Weaken(6 SECONDS)
|
||||
to_chat(M, "<span class='userdanger'>You're slammed into the floor by [owner]'s reactive armor!</span>")
|
||||
add_attack_logs(owner, M, "[M] was thrown by [owner]'s [src]", ATKLOG_ALMOSTALL)
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user