mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 13:37:58 +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
@@ -814,7 +814,7 @@ GLOBAL_LIST_EMPTY(multiverse)
|
||||
GiveHint(target)
|
||||
else if(is_pointed(I))
|
||||
to_chat(target, "<span class='userdanger'>You feel a stabbing pain in [parse_zone(user.zone_selected)]!</span>")
|
||||
target.Weaken(2)
|
||||
target.Weaken(4 SECONDS)
|
||||
GiveHint(target)
|
||||
else if(istype(I,/obj/item/bikehorn))
|
||||
to_chat(target, "<span class='userdanger'>HONK</span>")
|
||||
@@ -886,7 +886,7 @@ GLOBAL_LIST_EMPTY(multiverse)
|
||||
GiveHint(target)
|
||||
if("head")
|
||||
to_chat(user, "<span class='notice'>You smack the doll's head with your hand.</span>")
|
||||
target.Dizzy(10)
|
||||
target.Dizzy(20 SECONDS)
|
||||
to_chat(target, "<span class='warning'>You suddenly feel as if your head was hit with a hammer!</span>")
|
||||
GiveHint(target,user)
|
||||
cooldown = world.time + cooldown_time
|
||||
|
||||
@@ -61,14 +61,14 @@
|
||||
item_state = "fleshtostone"
|
||||
|
||||
/obj/item/melee/touch_attack/fleshtostone/afterattack(atom/target, mob/living/carbon/user, proximity)
|
||||
if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //getting hard after touching yourself would also be bad
|
||||
if(!proximity || target == user || !isliving(target) || !iscarbon(user) || user.lying || user.handcuffed) //getting hard after touching yourself would also be bad
|
||||
return
|
||||
if(user.lying || user.handcuffed)
|
||||
to_chat(user, "<span class='warning'>You can't reach out!</span>")
|
||||
return
|
||||
var/mob/M = target
|
||||
M.Stun(2)
|
||||
new /obj/structure/closet/statue(M.loc, M)
|
||||
var/mob/living/L = target
|
||||
L.Stun(4 SECONDS)
|
||||
new /obj/structure/closet/statue(L.loc, L)
|
||||
..()
|
||||
|
||||
/obj/item/melee/touch_attack/fake_disintegrate
|
||||
|
||||
@@ -67,12 +67,12 @@
|
||||
return ..()
|
||||
|
||||
//////////////////////////////Capturing////////////////////////////////////////////////////////
|
||||
/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/user)
|
||||
/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(M == user)
|
||||
return
|
||||
|
||||
if(!can_use(user))
|
||||
user.Weaken(5)
|
||||
user.Weaken(10 SECONDS)
|
||||
user.emote("scream")
|
||||
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
|
||||
return
|
||||
@@ -203,12 +203,12 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/soulstone/attack_self(mob/user)
|
||||
/obj/item/soulstone/attack_self(mob/living/user)
|
||||
if(!in_range(src, user))
|
||||
return
|
||||
|
||||
if(!can_use(user))
|
||||
user.Weaken(5)
|
||||
user.Weaken(10 SECONDS)
|
||||
user.emote("scream")
|
||||
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
|
||||
return
|
||||
@@ -249,12 +249,12 @@
|
||||
. += "<span class='cultitalic'>A <b>Wraith</b>, which does high damage and can jaunt through walls, though it is quite fragile.</span>"
|
||||
. += "<span class='cultitalic'>A <b>Juggernaut</b>, which is very hard to kill and can produce temporary walls, but is slow.</span>"
|
||||
|
||||
/obj/structure/constructshell/attackby(obj/item/I, mob/user, params)
|
||||
/obj/structure/constructshell/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/soulstone))
|
||||
var/obj/item/soulstone/SS = I
|
||||
if(!SS.can_use(user))
|
||||
to_chat(user, "<span class='danger'>An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell.</span>")
|
||||
user.Confused(10)
|
||||
user.Confused(20 SECONDS)
|
||||
return
|
||||
SS.transfer_soul("CONSTRUCT", src, user)
|
||||
SS.was_used()
|
||||
@@ -263,7 +263,7 @@
|
||||
|
||||
////////////////////////////Proc for moving soul in and out off stone//////////////////////////////////////
|
||||
// this whole proc is pain
|
||||
/obj/item/soulstone/proc/transfer_soul(choice, target, mob/user)
|
||||
/obj/item/soulstone/proc/transfer_soul(choice, target, mob/living/user)
|
||||
switch(choice)
|
||||
if("FORCE")
|
||||
var/mob/living/T = target
|
||||
@@ -272,7 +272,7 @@
|
||||
init_shade(T, user)
|
||||
else // Poll ghosts
|
||||
to_chat(user, "<span class='userdanger'>Capture failed!</span> The soul has already fled its mortal frame. You attempt to bring it back...")
|
||||
T.Paralyse(20)
|
||||
T.Paralyse(40 SECONDS)
|
||||
if(!get_cult_ghost(T, user, TRUE))
|
||||
T.dust() //If we can't get a ghost, kill the sacrifice anyway.
|
||||
|
||||
@@ -296,7 +296,7 @@
|
||||
if("SHADE")
|
||||
var/mob/living/simple_animal/shade/T = target
|
||||
if(!can_use(user))
|
||||
user.Weaken(5)
|
||||
user.Weaken(10 SECONDS)
|
||||
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
|
||||
return
|
||||
if(T.stat == DEAD)
|
||||
|
||||
@@ -971,10 +971,12 @@
|
||||
icon_state = "bookblind"
|
||||
desc = "This book looks blurry, no matter how you look at it."
|
||||
|
||||
/obj/item/spellbook/oneuse/blind/recoil(mob/user as mob)
|
||||
/obj/item/spellbook/oneuse/blind/recoil(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='warning'>You go blind!</span>")
|
||||
user.EyeBlind(10)
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
to_chat(user, "<span class='warning'>You go blind!</span>")
|
||||
L.EyeBlind(20 SECONDS)
|
||||
|
||||
/obj/item/spellbook/oneuse/mindswap
|
||||
spell = /obj/effect/proc_holder/spell/mind_transfer
|
||||
@@ -1027,10 +1029,10 @@
|
||||
icon_state = "bookknock"
|
||||
desc = "This book is hard to hold closed properly."
|
||||
|
||||
/obj/item/spellbook/oneuse/knock/recoil(mob/user as mob)
|
||||
/obj/item/spellbook/oneuse/knock/recoil(mob/living/user)
|
||||
..()
|
||||
to_chat(user, "<span class='warning'>You're knocked down!</span>")
|
||||
user.Weaken(20)
|
||||
user.Weaken(40 SECONDS)
|
||||
|
||||
/obj/item/spellbook/oneuse/horsemask
|
||||
spell = /obj/effect/proc_holder/spell/horsemask
|
||||
|
||||
Reference in New Issue
Block a user