Merge pull request #15429 from Fox-McCloud/gibbing-organs

Gibbing Throws Internal Organs
This commit is contained in:
Cheridan
2016-02-26 21:34:26 -06:00
5 changed files with 12 additions and 23 deletions
+10 -1
View File
@@ -70,7 +70,16 @@
stomach_contents.Remove(A)
src.gib()
/mob/living/carbon/gib(animation = 1)
/mob/living/carbon/gib(animation = 1, var/no_brain = 0)
death(1)
for(var/obj/item/organ/internal/I in internal_organs)
if(no_brain && istype(I, /obj/item/organ/internal/brain))
continue
if(I)
I.Remove(src)
I.loc = get_turf(src)
I.throw_at_fast(get_edge_target_turf(src,pick(alldirs)),rand(1,3),5)
for(var/mob/M in src)
if(M in stomach_contents)
stomach_contents.Remove(M)
+2 -1
View File
@@ -1,6 +1,7 @@
/mob/living/gib(animation = 1)
var/prev_lying = lying
death(1)
if(stat != DEAD)
death(1)
if(buckled)
buckled.unbuckle_mob() //to update alien nest overlay.
@@ -50,13 +50,6 @@
if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //exploding after touching yourself would be bad
return
var/mob/M = target
if(ishuman(M) || ismonkey(M))
var/mob/living/carbon/C_target = M
var/obj/item/organ/internal/brain/B = C_target.getorgan(/obj/item/organ/internal/brain)
if(B)
B.loc = get_turf(C_target)
B.transfer_identity(C_target)
C_target.internal_organs -= B
var/datum/effect_system/spark_spread/sparks = new
sparks.set_up(4, 0, M.loc) //no idea what the 0 is
sparks.start()
@@ -26,15 +26,6 @@
switch(destroys)
if("gib")
target.gib()
if("gib_brain")
if(ishuman(target) || ismonkey(target))
var/mob/living/carbon/C_target = target
var/obj/item/organ/internal/brain/B = C_target.getorgan(/obj/item/organ/internal/brain)
if(B)
B.loc = get_turf(C_target)
B.transfer_identity(C_target)
C_target.internal_organs -= B
target.gib()
if("disintegrate")
target.dust()