diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 6df194cf25..fac4f7f31b 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -358,8 +358,12 @@ /obj/machinery/clonepod/proc/go_out() countdown.stop() var/mob/living/mob_occupant = occupant + var/turf/T = get_turf(src) if(mess) //Clean that mess and dump those gibs! + for(var/obj/fl in unattached_flesh) + fl.forceMove(T) + unattached_flesh.Cut() mess = FALSE new /obj/effect/gibspawner/generic(loc) audible_message("You hear a splat.") @@ -375,10 +379,12 @@ to_chat(occupant, "There is a bright flash!
You feel like a new being.
") mob_occupant.flash_act() - var/turf/T = get_turf(src) occupant.forceMove(T) icon_state = "pod_0" mob_occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. + for(var/fl in unattached_flesh) + qdel(fl) + unattached_flesh.Cut() occupant = null @@ -389,8 +395,7 @@ SPEAK("Critical error! Please contact a Thinktronic Systems \ technician, as your warranty may be affected.") mess = TRUE - for(var/obj/item/O in unattached_flesh) - qdel(O) + maim_clone(mob_occupant) //Remove every bit that's grown back so far to drop later, also destroys bits that haven't grown yet icon_state = "pod_g" if(mob_occupant.mind != clonemind) clonemind.transfer_to(mob_occupant) @@ -450,9 +455,10 @@ var/static/list/zones = list("r_arm", "l_arm", "r_leg", "l_leg") for(var/zone in zones) var/obj/item/bodypart/BP = H.get_bodypart(zone) - BP.drop_limb() - BP.forceMove(src) - unattached_flesh += BP + if(BP) + BP.drop_limb() + BP.forceMove(src) + unattached_flesh += BP for(var/o in H.internal_organs) var/obj/item/organ/organ = o