mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 20:47:10 +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
@@ -60,7 +60,7 @@
|
||||
for(var/obj/item/grab/G in user.grabbed_by)
|
||||
var/mob/living/carbon/M = G.assailant
|
||||
user.visible_message("<span class='warning'>[user] spits acid at [M]'s face and slips out of their grab!</span>")
|
||||
M.Stun(1) //Drops the grab
|
||||
M.Stun(2 SECONDS) //Drops the grab
|
||||
M.apply_damage(5, BURN, "head", M.run_armor_check("head", "melee"))
|
||||
user.SetStunned(0) //This only triggers if they are grabbed, to have them break out of the grab, without the large stun time. If you use biodegrade as an antistun without being grabbed, it will not work
|
||||
user.SetWeakened(0)
|
||||
|
||||
@@ -22,15 +22,15 @@
|
||||
explosion(get_turf(user),0,0,2,0,silent=1)
|
||||
for(var/mob/living/carbon/human/H in range(2,user))
|
||||
to_chat(H, "<span class='userdanger'>You are blinded by a shower of blood!</span>")
|
||||
H.Stun(1)
|
||||
H.EyeBlurry(20)
|
||||
H.Stun(2 SECONDS)
|
||||
H.EyeBlurry(40 SECONDS)
|
||||
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
|
||||
if(istype(E))
|
||||
E.receive_damage(5, 1)
|
||||
H.AdjustConfused(3)
|
||||
H.AdjustConfused(6 SECONDS)
|
||||
for(var/mob/living/silicon/S in range(2,user))
|
||||
to_chat(S, "<span class='userdanger'>Your sensors are disabled by a shower of blood!</span>")
|
||||
S.Weaken(3)
|
||||
S.Weaken(6 SECONDS)
|
||||
var/new_location = user.drop_location()
|
||||
spawn(5) // So it's not killed in explosion
|
||||
var/mob/living/simple_animal/hostile/headslug/crab = new(new_location)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
for(var/obj/item/grab/G in user.grabbed_by)
|
||||
var/mob/living/carbon/M = G.assailant
|
||||
user.visible_message("<span class='warning'>[user] suddenly hits [M] in the face and slips out of their grab!</span>")
|
||||
M.Stun(1) //Drops the grab
|
||||
M.Stun(2 SECONDS) //Drops the grab
|
||||
M.apply_damage(5, BRUTE, "head", M.run_armor_check("head", "melee"))
|
||||
playsound(user.loc, 'sound/weapons/punch1.ogg', 25, 1, -1)
|
||||
user.revive()
|
||||
|
||||
@@ -17,14 +17,14 @@
|
||||
continue
|
||||
if(!M.mind || !M.mind.changeling)
|
||||
M.AdjustEarDamage(0, 30)
|
||||
M.AdjustConfused(20)
|
||||
M.Jitter(50)
|
||||
M.AdjustConfused(40 SECONDS)
|
||||
M.Jitter(100 SECONDS)
|
||||
else
|
||||
SEND_SOUND(M, sound('sound/effects/screech.ogg'))
|
||||
|
||||
if(issilicon(M))
|
||||
SEND_SOUND(M, sound('sound/weapons/flash.ogg'))
|
||||
M.Weaken(rand(5,10))
|
||||
M.Weaken(rand(10 SECONDS, 20 SECONDS))
|
||||
|
||||
for(var/obj/machinery/light/L in range(4, user))
|
||||
L.on = 1
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
var/datum/changeling/changeling = user.mind.changeling
|
||||
|
||||
to_chat(user, "<span class='notice'>We tighten our grip. We must hold still....</span>")
|
||||
target.do_jitter_animation(500)
|
||||
user.do_jitter_animation(500)
|
||||
target.Jitter(1000 SECONDS)
|
||||
user.Jitter(1000 SECONDS)
|
||||
|
||||
if(!do_mob(user, target, 10 SECONDS))
|
||||
to_chat(user, "<span class='warning'>The body swap has been interrupted!</span>")
|
||||
@@ -62,7 +62,7 @@
|
||||
GLOB.non_respawnable_keys -= ghost.ckey //they have a new body, let them be able to re-enter their corpse if they die
|
||||
user.key = ghost.key
|
||||
qdel(ghost)
|
||||
user.Paralyse(2)
|
||||
user.Paralyse(4 SECONDS)
|
||||
target.add_language("Changeling")
|
||||
user.remove_language("Changeling")
|
||||
user.regenerate_icons()
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
/datum/action/changeling/sting/mute/sting_action(mob/user, mob/living/carbon/target)
|
||||
add_attack_logs(user, target, "Mute sting (changeling)")
|
||||
target.AdjustSilence(30)
|
||||
target.AdjustSilence(60 SECONDS)
|
||||
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]"))
|
||||
return 1
|
||||
|
||||
@@ -114,8 +114,8 @@
|
||||
add_attack_logs(user, target, "Blind sting (changeling)")
|
||||
to_chat(target, "<span class='danger'>Your eyes burn horrifically!</span>")
|
||||
target.become_nearsighted(EYE_DAMAGE)
|
||||
target.EyeBlind(20)
|
||||
target.EyeBlurry(40)
|
||||
target.EyeBlind(40 SECONDS)
|
||||
target.EyeBlurry(80 SECONDS)
|
||||
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]"))
|
||||
return 1
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
add_attack_logs(user, target, "LSD sting (changeling)")
|
||||
spawn(rand(300,600))
|
||||
if(target)
|
||||
target.Hallucinate(400)
|
||||
target.Hallucinate(400 SECONDS)
|
||||
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]"))
|
||||
return 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user