[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:
Charlie
2022-05-24 16:35:26 +01:00
committed by GitHub
co-authored by SteelSlayer mochi
parent b32fb92770
commit 0f7a8707ef
311 changed files with 2268 additions and 2155 deletions
+3 -3
View File
@@ -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
+8 -8
View File
@@ -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)
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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