[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
parent b32fb92770
commit 0f7a8707ef
311 changed files with 2268 additions and 2155 deletions

View File

@@ -1131,9 +1131,12 @@
M.update_icons()
//so they black out before warping
M.Paralyse(5)
if(isliving(M))
var/mob/living/L = M
L.Paralyse(10 SECONDS)
sleep(5)
if(!M) return
if(!M)
return
M.loc = prison_cell
if(istype(M, /mob/living/carbon/human))
@@ -1257,7 +1260,9 @@
I.plane = initial(I.plane)
I.dropped(M)
M.Paralyse(5)
if(isliving(M))
var/mob/living/L = M
L.Paralyse(10 SECONDS)
sleep(5)
M.loc = pick(GLOB.tdome1)
spawn(50)
@@ -1287,7 +1292,9 @@
I.plane = initial(I.plane)
I.dropped(M)
M.Paralyse(5)
if(isliving(M))
var/mob/living/L = M
L.Paralyse(10 SECONDS)
sleep(5)
M.loc = pick(GLOB.tdome2)
spawn(50)
@@ -1309,7 +1316,9 @@
to_chat(usr, "<span class='warning'>This cannot be used on instances of type /mob/living/silicon/ai</span>")
return
M.Paralyse(5)
if(isliving(M))
var/mob/living/L = M
L.Paralyse(10 SECONDS)
sleep(5)
M.loc = pick(GLOB.tdomeadmin)
spawn(50)
@@ -1343,7 +1352,9 @@
var/mob/living/carbon/human/observer = M
observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), slot_w_uniform)
observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(observer), slot_shoes)
M.Paralyse(5)
if(isliving(M))
var/mob/living/L = M
L.Paralyse(10 SECONDS)
sleep(5)
M.loc = pick(GLOB.tdomeobserve)
spawn(50)
@@ -1436,7 +1447,9 @@
to_chat(usr, "<span class='warning'>This cannot be used on instances of type /mob/living/silicon/ai</span>")
return
M.Paralyse(5)
if(isliving(M))
var/mob/living/L = M
L.Paralyse(10 SECONDS)
sleep(5)
M.loc = pick(GLOB.aroomwarp)
spawn(50)
@@ -1771,9 +1784,8 @@
M.gib()
else
M.adjustBruteLoss(min(99,(M.health - 1)))
M.Stun(20)
M.Weaken(20)
M.Stuttering(20)
M.Weaken(40 SECONDS)
M.Stuttering(40 SECONDS)
else if(href_list["CentcommReply"])
if(!check_rights(R_ADMIN))
@@ -2011,7 +2023,7 @@
M.electrocute_act(5, "Lightning Bolt", flags = SHOCK_NOGLOVES)
playsound(get_turf(M), 'sound/magic/lightningshock.ogg', 50, 1, -1)
M.adjustFireLoss(75)
M.Weaken(5)
M.Weaken(10 SECONDS)
to_chat(M, "<span class='userdanger'>The gods have punished you for your sins!</span>")
logmsg = "a lightning bolt."
if("Fire Death")
@@ -2038,7 +2050,7 @@
organ.insert(H)
logmsg = "a honk tumor."
if("Hallucinate")
H.Hallucinate(1000)
H.Hallucinate(1000 SECONDS)
logmsg = "hallucinations."
if("Cold")
H.reagents.add_reagent("frostoil", 40)
@@ -2821,7 +2833,7 @@
//don't warp them if they aren't ready or are already there
continue
H.Paralyse(5)
H.Paralyse(10 SECONDS)
if(H.wear_id)
var/obj/item/card/id/id = H.get_idcard()
for(var/A in id.access)

View File

@@ -43,8 +43,8 @@ GLOBAL_LIST_EMPTY(frozen_atom_list) // A list of admin-frozen atoms.
anchored = TRUE
canmove = FALSE
admin_prev_sleeping = sleeping
AdjustSleeping(20000)
admin_prev_sleeping = AmountSleeping()
PermaSleeping()
frozen = AO
else
@@ -56,7 +56,7 @@ GLOBAL_LIST_EMPTY(frozen_atom_list) // A list of admin-frozen atoms.
anchored = FALSE
canmove = TRUE
frozen = null
SetSleeping(admin_prev_sleeping)
SetSleeping(admin_prev_sleeping, TRUE)
admin_prev_sleeping = null
to_chat(src, "<b><font color= red>You have been [frozen ? "frozen" : "unfrozen"] by [admin]</b></font>")

View File

@@ -31,7 +31,9 @@
for(var/obj/item/W in M)
M.unEquip(W)
//teleport person to cell
M.Paralyse(5)
if(isliving(M))
var/mob/living/L = M
L.Paralyse(10 SECONDS)
sleep(5) //so they black out before warping
M.loc = pick(GLOB.prisonwarp)
if(istype(M, /mob/living/carbon/human))