Merge pull request #11158 from Fox-McCloud/delayed-gibbing

Makes Delayed Gibbing a Proc
This commit is contained in:
variableundefined
2019-04-01 23:07:17 +08:00
committed by GitHub
5 changed files with 13 additions and 16 deletions
+6
View File
@@ -96,3 +96,9 @@
// u no we dead
return TRUE
/mob/living/proc/delayed_gib()
visible_message("<span class='danger'><b>[src]</b> starts convulsing violently!</span>", "You feel as if your body is tearing itself apart!")
Weaken(15)
do_jitter_animation(1000, -1)
addtimer(CALLBACK(src, .proc/gib), rand(20, 100))
+2 -2
View File
@@ -786,11 +786,11 @@
..()
floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement.
/mob/living/proc/do_jitter_animation(jitteriness)
/mob/living/proc/do_jitter_animation(jitteriness, loop_amount = 6)
var/amplitude = min(4, (jitteriness/100) + 1)
var/pixel_x_diff = rand(-amplitude, amplitude)
var/pixel_y_diff = rand(-amplitude/3, amplitude/3)
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 2, loop = 6)
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 2, loop = loop_amount)
animate(pixel_x = initial(pixel_x) , pixel_y = initial(pixel_y) , time = 2)
floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement.
@@ -685,8 +685,7 @@
if(method == INGEST)
if(M.stat == DEAD)
if(M.getBruteLoss()+M.getFireLoss()+M.getCloneLoss() >= 150)
M.visible_message("<span class='warning'>[M]'s body starts convulsing!</span>")
M.gib()
M.delayed_gib()
return
var/mob/dead/observer/ghost = M.get_ghost()
if(ghost)
@@ -506,19 +506,11 @@
M.fakevomit()
update_flags |= M.adjustToxLoss(2, FALSE)
update_flags |= M.adjustBruteLoss(2, FALSE)
if(volume > 40 && prob(4))
M.delayed_gib()
return
return ..() | update_flags
/datum/reagent/venom/overdose_process(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
if(volume >= 40)
if(prob(4))
M.visible_message("<span class='danger'><B>[M]</B> starts convulsing violently!</span>", "You feel as if your body is tearing itself apart!")
update_flags |= M.Weaken(15, FALSE)
M.AdjustJitter(1000)
spawn(rand(20, 100))
M.gib()
return list(0, update_flags)
/datum/reagent/neurotoxin2
name = "Neurotoxin"
id = "neurotoxin2"