From c0d9391b7402b83be9244dcc8eee4fa05dd3ecb1 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Fri, 29 Nov 2013 15:31:37 -0500 Subject: [PATCH] Fixed hopefully last respawn issues. --- code/game/machinery/podmen.dm | 8 ++++---- code/modules/mob/death.dm | 6 +++--- code/modules/mob/living/carbon/brain/MMI.dm | 3 ++- code/modules/mob/living/carbon/brain/brain_item.dm | 2 ++ code/modules/mob/mob.dm | 6 +++++- code/modules/organs/organ_external.dm | 1 + 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm index 241e6927284..ec21be9d83e 100644 --- a/code/game/machinery/podmen.dm +++ b/code/game/machinery/podmen.dm @@ -99,20 +99,20 @@ Growing it to term with nothing injected will grab a ghost from the observers. * /obj/item/seeds/replicapod/proc/request_player() for(var/mob/O in respawnable_list) if(O.client) - message_admins("Found client for nymph") +// message_admins("Found client for nymph") if(O.client.prefs.be_special & BE_PLANT) - message_admins("Questioning client for nymph") +// message_admins("Questioning client for nymph") question(O.client) /obj/item/seeds/replicapod/proc/question(var/client/C) spawn(0) if(!C) return - message_admins("Sending popup for nymph") +// message_admins("Sending popup for nymph") var/response = alert(C, "Someone is harvesting a replica pod. Would you like to play as a Dionaea?", "Replica pod harvest", "Yes", "No", "Never for this round.") if(!C || ckey) return if(response == "Yes") - message_admins("Transferring personality for nymph") +// message_admins("Transferring personality for nymph") transfer_personality(C) else if (response == "Never for this round") C.prefs.be_special ^= BE_PLANT diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index 8e6d2015aa2..905652d40c5 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -17,7 +17,7 @@ gibs(loc, viruses, dna) dead_mob_list -= src - if(client) + if(client && !src in respawnable_list) respawnable_list += src spawn(15) if(animation) del(animation) @@ -44,7 +44,7 @@ new /obj/effect/decal/cleanable/ash(loc) dead_mob_list -= src - if(client) + if(client && !src in respawnable_list) respawnable_list += src spawn(15) if(animation) del(animation) @@ -56,6 +56,6 @@ living_mob_list -= src dead_mob_list += src - if(client) + if(client && !src in respawnable_list) respawnable_list += src return ..(gibbed) diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index e75c3d5383f..3ce15937ee3 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -28,12 +28,12 @@ return for(var/mob/V in viewers(src, null)) V.show_message(text("\blue [user] sticks \a [O] into \the [src].")) - brainmob = O:brainmob O:brainmob = null brainmob.loc = src brainmob.container = src brainmob.stat = 0 + respawnable_list -= brainmob dead_mob_list -= brainmob//Update dem lists living_mob_list += brainmob @@ -104,6 +104,7 @@ dropbrain(var/obj/item/brain/brain, var/turf/dropspot) brainmob.container = null//Reset brainmob mmi var. brainmob.loc = brain//Throw mob into brain. + respawnable_list += brainmob living_mob_list -= brainmob//Get outta here brain.brainmob = brainmob//Set the brain to use the brainmob brain.brainmob.cancel_camera() diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index 54e94eb7454..6d3aa5f9acf 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -32,6 +32,7 @@ brainmob.timeofhostdeath = H.timeofdeath if(H.mind) H.mind.transfer_to(brainmob) + respawnable_list += brainmob brainmob << "\blue You feel slightly disoriented. That's normal when you're just a brain." return @@ -86,6 +87,7 @@ M.ghostize() if(brainmob.mind) + respawnable_list -= brainmob brainmob.mind.transfer_to(M) else M.key = brainmob.key diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a8848de11e0..634249ab8c5 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -938,13 +938,17 @@ mob/verb/yank_out_object() var/picked = input("Please select a creature to respawn as", "Respawn as Mindless Creature") as null|anything in creatures switch(picked) if("Mouse") + respawnable_list -= usr become_mouse() + respawnable_list += usr else var/mob/living/simple_animal/picked_animal = picked if(istype(picked_animal) && !picked_animal.key) + respawnable_list -= usr picked_animal.key = key + respawnable_list += usr else - message_admins("Failed to check type") +// message_admins("Failed to check type") else usr << "You are not dead or you have given up your right to be respawned!" return diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 52f542191ef..50ce4891296 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -873,6 +873,7 @@ obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H) brainmob.dna = H.dna if(H.mind) H.mind.transfer_to(brainmob) + respawnable_list += brainmob brainmob.container = src obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob)