mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
* 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>
47 lines
1.9 KiB
Plaintext
47 lines
1.9 KiB
Plaintext
/obj/effect/proc_holder/spell/rathens
|
|
name = "Rathen's Secret"
|
|
desc = "Summons a powerful shockwave around you that tears the appendix and limbs off of enemies."
|
|
charge_max = 500
|
|
clothes_req = 1
|
|
invocation = "APPEN NATH!"
|
|
invocation_type = "shout"
|
|
cooldown_min = 200
|
|
action_icon_state = "lungpunch"
|
|
|
|
/obj/effect/proc_holder/spell/rathens/create_new_targeting()
|
|
var/datum/spell_targeting/targeted/T = new()
|
|
T.max_targets = INFINITY
|
|
return T
|
|
|
|
/obj/effect/proc_holder/spell/rathens/cast(list/targets, mob/user = usr)
|
|
for(var/mob/living/carbon/human/H in targets)
|
|
var/datum/effect_system/smoke_spread/s = new
|
|
s.set_up(5, 0, H)
|
|
s.start()
|
|
var/obj/item/organ/internal/appendix/A = H.get_int_organ(/obj/item/organ/internal/appendix)
|
|
if(A)
|
|
A.remove(H)
|
|
A.forceMove(get_turf(H))
|
|
spawn()
|
|
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(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(6 SECONDS)
|
|
for(var/obj/item/organ/external/E in H.bodyparts)
|
|
if(istype(E, /obj/item/organ/external/head))
|
|
continue
|
|
if(istype(E, /obj/item/organ/external/chest))
|
|
continue
|
|
if(istype(E, /obj/item/organ/external/groin))
|
|
continue
|
|
if(prob(7))
|
|
to_chat(H, "<span class='userdanger'>Your [E] was severed by the explosion!</span>")
|
|
E.droplimb(1, DROPLIMB_SHARP, 0, 1)
|