diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 3c24a5064c0..2715539d129 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -449,10 +449,14 @@ /obj/machinery/clonepod/proc/go_out() countdown.stop() - + var/turf/T = get_turf(src) if(mess) //Clean that mess and dump those gibs! - mess = 0 - gibs(loc) + for(var/i in missing_organs) + var/obj/I = i + I.forceMove(T) + missing_organs.Cut() + mess = FALSE + new /obj/effect/gibspawner/generic(get_turf(src), occupant) playsound(loc, 'sound/effects/splat.ogg', 50, 1) update_icon() return @@ -476,7 +480,7 @@ for(var/i in missing_organs) qdel(i) missing_organs.Cut() - occupant.forceMove(get_turf(src)) + occupant.forceMove(T) occupant.update_body() domutcheck(occupant) //Waiting until they're out before possible notransform. occupant.special_post_clone_handling() diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 7d711cbadb1..e69813cced9 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -669,7 +669,7 @@ update_flags |= M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, FALSE) return ..() | update_flags -/datum/reagent/medicine/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, volume) +/datum/reagent/medicine/strange_reagent/reaction_mob(mob/living/M, method = TOUCH, volume) if(volume < 1) // gotta pay to play return ..() @@ -682,25 +682,19 @@ SM.visible_message("[M] seems to rise from the dead!") if(iscarbon(M)) - if(method == INGEST) + if(method == INGEST || (method == TOUCH && prob(25))) if(M.stat == DEAD) - if(M.getBruteLoss()+M.getFireLoss()+M.getCloneLoss() >= 150) + if(M.getBruteLoss() + M.getFireLoss() + M.getCloneLoss() >= 150) M.delayed_gib() return - var/mob/dead/observer/ghost = M.get_ghost() - if(ghost) - to_chat(ghost, "A Strange Reagent is infusing your body with life. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)") - window_flash(ghost.client) - ghost << sound('sound/effects/genetics.ogg') - M.visible_message("[M] doesn't appear to respond, perhaps try again later?") - if(!M.suiciding && !ghost && !(NOCLONE in M.mutations) && (M.mind && M.mind.is_revivable())) + if(!M.suiciding && !(NOCLONE in M.mutations) && (!M.mind || M.mind && M.mind.is_revivable())) var/time_dead = world.time - M.timeofdeath M.visible_message("[M] seems to rise from the dead!") M.adjustCloneLoss(50) M.setOxyLoss(0) - M.adjustBruteLoss(rand(0,15)) - M.adjustToxLoss(rand(0,15)) - M.adjustFireLoss(rand(0,15)) + M.adjustBruteLoss(rand(0, 15)) + M.adjustToxLoss(rand(0, 15)) + M.adjustFireLoss(rand(0, 15)) if(ishuman(M)) var/mob/living/carbon/human/H = M var/necrosis_prob = 40 * min((20 MINUTES), max((time_dead - (1 MINUTES)), 0)) / ((20 MINUTES) - (1 MINUTES)) @@ -715,8 +709,8 @@ O.germ_level = INFECTION_LEVEL_THREE H.update_body() + M.grab_ghost() M.update_revive() - M.stat = UNCONSCIOUS add_attack_logs(M, M, "Revived with strange reagent") //Yes, the logs say you revived yourself. ..()