From 461bd52462f18ded1bcbb09d134fcc4b93955aa1 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Fri, 29 Nov 2013 11:10:31 -0500 Subject: [PATCH] More fixes --- code/game/machinery/podmen.dm | 11 +++++-- .../simple_animal/friendly/spiderbot.dm | 2 +- code/modules/mob/mob.dm | 2 +- code/modules/mob/transform_procs.dm | 30 +++++++++++++++++++ 4 files changed, 40 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm index e8fbc048cf9..241e6927284 100644 --- a/code/game/machinery/podmen.dm +++ b/code/game/machinery/podmen.dm @@ -79,9 +79,10 @@ Growing it to term with nothing injected will grab a ghost from the observers. * if(source && source.stat == 2 && source.client && source.ckey && config.revival_pod_plants) transfer_personality(source.client) else // If no sample was injected or revival is not allowed, we grab an interested observer. + message_admins("Requesting player for nymph") request_player() - spawn(75) //If we don't have a ghost or the ghost is now unplayed, we just give the harvester some seeds. + spawn(100) //If we don't have a ghost or the ghost is now unplayed, we just give the harvester some seeds. if(!found_player) parent.visible_message("The pod has formed badly, and all you can do is salvage some of the seeds.") var/seed_count = 1 @@ -98,16 +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") if(O.client.prefs.be_special & BE_PLANT) + 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") 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") transfer_personality(C) else if (response == "Never for this round") C.prefs.be_special ^= BE_PLANT @@ -115,11 +120,11 @@ Growing it to term with nothing injected will grab a ghost from the observers. * /obj/item/seeds/replicapod/proc/transfer_personality(var/client/player) if(!player) return - respawnable_list -= player + found_player = 1 var/mob/living/carbon/monkey/diona/podman = new(parent.loc) podman.ckey = player.ckey - + respawnable_list -= player if(player.mob && player.mob.mind) player.mob.mind.transfer_to(podman) diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 71e38d0ba55..2f936eb5970 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -20,7 +20,7 @@ icon_living = "spiderbot-chassis" icon_dead = "spiderbot-smashed" wander = 0 - + universal_speak = 1 health = 10 maxHealth = 10 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 867f2acb7f5..a8848de11e0 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -932,7 +932,7 @@ mob/verb/yank_out_object() if(usr in respawnable_list) var/list/creatures = list("Mouse") for(var/mob/living/simple_animal/S in living_mob_list) - if(safe_animal(S.type)) + if(safe_animal_respawn(S.type)) if(!S.key) creatures += S var/picked = input("Please select a creature to respawn as", "Respawn as Mindless Creature") as null|anything in creatures diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index f6c57b8989f..f92159b55da 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -380,3 +380,33 @@ return 1 // ZOMG PONIES WHEEE //Not in here? Must be untested! return 0 + + +/mob/proc/safe_animal_respawn(var/MP) +//Bad mobs! - Remember to add a comment explaining what's wrong with the mob + if(!MP) + return 0 //Sanity, this should never happen. + +//Good mobs! + if(ispath(MP, /mob/living/simple_animal/cat)) + return 1 + if(ispath(MP, /mob/living/simple_animal/corgi)) + return 1 + if(ispath(MP, /mob/living/simple_animal/crab)) + return 1 + if(ispath(MP, /mob/living/simple_animal/chicken)) + return 1 + if(ispath(MP, /mob/living/simple_animal/cow)) + return 1 + if(ispath(MP, /mob/living/simple_animal/parrot)) + return 1 + if(ispath(MP, /mob/living/simple_animal/pony)) + return 1 + if(ispath(MP, /mob/living/simple_animal/hostile/carp)) + return 1 + if(ispath(MP, /mob/living/simple_animal/hostile/bear)) + return 1 + + + //Not in here? Must be untested! + return 0