mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +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:
@@ -34,10 +34,9 @@
|
||||
|
||||
/mob/living/carbon/human/proc/bananatouched()
|
||||
to_chat(src, "<font color='red' size='6'>HONK</font>")
|
||||
Weaken(7)
|
||||
Stun(7)
|
||||
Stuttering(15)
|
||||
do_jitter_animation(15)
|
||||
Weaken(14 SECONDS)
|
||||
Stuttering(30 SECONDS)
|
||||
do_jitter_animation(30 SECONDS)
|
||||
|
||||
if(iswizard(src) || (mind && mind.special_role == SPECIAL_ROLE_WIZARD_APPRENTICE)) //Wizards get non-cursed clown robes and magical mask.
|
||||
unEquip(shoes, TRUE)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
setBrainLoss(80, use_brain_mod = FALSE)
|
||||
set_nutrition(9000)
|
||||
overeatduration = 9000
|
||||
Confused(30)
|
||||
Confused(60 SECONDS)
|
||||
if(mind)
|
||||
mind.assigned_role = "Cluwne"
|
||||
|
||||
|
||||
@@ -75,7 +75,8 @@
|
||||
var/mob/old_body = current_body
|
||||
var/turf/body_turf = get_turf(old_body)
|
||||
current_body = lich
|
||||
lich.Weaken(10 + 10 * resurrections)
|
||||
var/stun_time = (1 + resurrections) * 20 SECONDS
|
||||
lich.Weaken(stun_time)
|
||||
++resurrections
|
||||
equip_lich(lich)
|
||||
|
||||
|
||||
@@ -42,8 +42,7 @@
|
||||
if(damaging)
|
||||
target.electrocute_act(energy, "Lightning Bolt", flags = SHOCK_NOGLOVES)
|
||||
else
|
||||
target.AdjustJitter(1000) //High numbers for violent convulsions
|
||||
target.do_jitter_animation(target.jitteriness)
|
||||
target.AdjustStuttering(2)
|
||||
target.Slowed(3)
|
||||
addtimer(CALLBACK(target, /mob/.proc/AdjustJitter, -1000, 10), 2 SECONDS) //Still jittery, but vastly less
|
||||
target.AdjustJitter(2000 SECONDS) //High numbers for violent convulsions
|
||||
target.AdjustStuttering(4 SECONDS)
|
||||
target.Slowed(6 SECONDS)
|
||||
addtimer(CALLBACK(target, /mob/living.proc/AdjustJitter, -2000 SECONDS, 10), 2 SECONDS) //Still jittery, but vastly less
|
||||
|
||||
@@ -32,8 +32,7 @@
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/proc/mimetouched()
|
||||
Weaken(7)
|
||||
Stun(7)
|
||||
Weaken(14 SECONDS)
|
||||
if(iswizard(src) || (mind && mind.special_role == SPECIAL_ROLE_WIZARD_APPRENTICE)) //Wizards get non-cursed mime outfit. Replace with mime robes if we add those.
|
||||
unEquip(wear_mask, TRUE)
|
||||
unEquip(w_uniform, TRUE)
|
||||
@@ -41,7 +40,7 @@
|
||||
equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/mime, slot_wear_mask, TRUE, TRUE)
|
||||
equip_to_slot_if_possible(new /obj/item/clothing/under/mime, slot_w_uniform, TRUE, TRUE)
|
||||
equip_to_slot_if_possible(new /obj/item/clothing/suit/suspenders, slot_wear_suit, TRUE, TRUE)
|
||||
Silence(7)
|
||||
Silence(14 SECONDS)
|
||||
else
|
||||
qdel(wear_mask)
|
||||
qdel(w_uniform)
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
selection_deactivated_message = "<span class='notice'>You decide that your current form is good enough.</span>"
|
||||
cooldown_min = 200 //100 deciseconds reduction per rank
|
||||
var/list/protected_roles = list("Wizard","Changeling","Cultist") //which roles are immune to the spell
|
||||
var/paralysis_amount_caster = 20 //how much the caster is paralysed for after the spell
|
||||
var/paralysis_amount_victim = 20 //how much the victim is paralysed for after the spell
|
||||
var/paralysis_amount_caster = 40 SECONDS //how much the caster is paralysed for after the spell
|
||||
var/paralysis_amount_victim = 40 SECONDS //how much the victim is paralysed for after the spell
|
||||
action_icon_state = "mindswap"
|
||||
|
||||
/obj/effect/proc_holder/spell/mind_transfer/create_new_targeting()
|
||||
@@ -47,7 +47,7 @@ Also, you never added distance checking after target is selected. I've went ahea
|
||||
return
|
||||
|
||||
var/mob/living/victim = target//The target of the spell whos body will be transferred to.
|
||||
var/mob/caster = user//The wizard/whomever doing the body transferring.
|
||||
var/mob/living/caster = user//The wizard/whomever doing the body transferring.
|
||||
|
||||
//MIND TRANSFER BEGIN
|
||||
if(caster.mind.special_verbs.len)//If the caster had any special verbs, remove them from the mob verb list.
|
||||
|
||||
@@ -26,14 +26,14 @@
|
||||
A.throw_at(get_edge_target_turf(H, pick(GLOB.alldirs)), rand(1, 10), 5)
|
||||
H.visible_message("<span class='danger'>[H]'s [A.name] flies out of their body in a magical explosion!</span>",\
|
||||
"<span class='danger'>Your [A.name] flies out of your body in a magical explosion!</span>")
|
||||
H.Weaken(2)
|
||||
H.Weaken(4 SECONDS)
|
||||
else
|
||||
var/obj/effect/decal/cleanable/blood/gibs/G = new/obj/effect/decal/cleanable/blood/gibs(get_turf(H))
|
||||
spawn()
|
||||
G.throw_at(get_edge_target_turf(H, pick(GLOB.alldirs)), rand(1, 10), 5)
|
||||
H.apply_damage(10, BRUTE, "chest")
|
||||
to_chat(H, "<span class='userdanger'>You have no appendix, but something had to give! Holy shit, what was that?</span>")
|
||||
H.Weaken(3)
|
||||
H.Weaken(6 SECONDS)
|
||||
for(var/obj/item/organ/external/E in H.bodyparts)
|
||||
if(istype(E, /obj/item/organ/external/head))
|
||||
continue
|
||||
|
||||
@@ -403,7 +403,7 @@
|
||||
T.range = 5
|
||||
return T
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets, mob/user = usr, stun_amt = 2)
|
||||
/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets, mob/user = usr, stun_amt = 4 SECONDS)
|
||||
var/list/thrownatoms = list()
|
||||
var/atom/throwtarget
|
||||
var/distfromcaster
|
||||
@@ -422,7 +422,7 @@
|
||||
if(distfromcaster == 0)
|
||||
if(isliving(AM))
|
||||
var/mob/living/M = AM
|
||||
M.Weaken(5)
|
||||
M.Weaken(10 SECONDS)
|
||||
M.adjustBruteLoss(5)
|
||||
to_chat(M, "<span class='userdanger'>You're slammed into the floor by a mystical force!</span>")
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user