diff --git a/code/datums/martial.dm b/code/datums/martial.dm index 364b9f00c01..b60de2f15ff 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -249,11 +249,6 @@ A.say("PLASMA FIST!") D.visible_message("[A] has hit [D] with THE PLASMA FIST TECHNIQUE!", \ "[A] has hit [D] with THE PLASMA FIST TECHNIQUE!") - var/obj/item/organ/internal/brain/B = D.getorgan(/obj/item/organ/internal/brain) - if(B) - B.loc = get_turf(D) - B.transfer_identity(D) - D.internal_organs -= B D.gib() return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index b6b13b41669..024465cfbe3 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -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) diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 8490523610e..5a26baeff47 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -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. diff --git a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm index 465f9b0489b..63664489869 100644 --- a/code/modules/spells/spell_types/godhand.dm +++ b/code/modules/spells/spell_types/godhand.dm @@ -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() diff --git a/code/modules/spells/spell_types/inflict_handler.dm b/code/modules/spells/spell_types/inflict_handler.dm index 1ece19dff27..f3a48330bf6 100644 --- a/code/modules/spells/spell_types/inflict_handler.dm +++ b/code/modules/spells/spell_types/inflict_handler.dm @@ -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()