Diona nymphs moved over to NPC respawn panel

This commit is contained in:
ZomgPonies
2014-01-04 04:17:31 -05:00
parent ca011ee962
commit 45ac26132b
2 changed files with 45 additions and 80 deletions
+43 -79
View File
@@ -71,7 +71,7 @@ Growing it to term with nothing injected will grab a ghost from the observers. *
/obj/item/seeds/replicapod/harvest(mob/user = usr)
parent = loc
var/found_player = 0
// var/found_player = 0
user.visible_message("\blue [user] carefully begins to open the pod...","\blue You carefully begin to open the pod...")
@@ -79,90 +79,54 @@ 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(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
if(prob(yield * parent.yieldmod * 20))
seed_count++
for(var/i=0,i<seed_count,i++)
new /obj/item/seeds/replicapod(user.loc)
parent.update_tray()
return
/obj/item/seeds/replicapod/proc/request_player()
for(var/mob/O in respawnable_list)
if(jobban_isbanned(O, "Dionaea"))
continue
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
transfer_personality()
/obj/item/seeds/replicapod/proc/transfer_personality(var/client/player)
if(!player) return
if(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)
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)
if(realName)
podman.real_name = realName
else
podman.real_name = "diona nymph ([rand(100,999)])"
podman.dna.real_name = podman.real_name
// Update mode specific HUD icons.
switch(ticker.mode.name)
if ("revolution")
if (podman.mind in ticker.mode:revolutionaries)
ticker.mode:add_revolutionary(podman.mind)
ticker.mode:update_all_rev_icons() //So the icon actually appears
if (podman.mind in ticker.mode:head_revolutionaries)
ticker.mode:update_all_rev_icons()
if ("nuclear emergency")
if (podman.mind in ticker.mode:syndicates)
ticker.mode:update_all_synd_icons()
if ("cult")
if (podman.mind in ticker.mode:cult)
ticker.mode:add_cultist(podman.mind)
ticker.mode:update_all_cult_icons() //So the icon actually appears
// -- End mode specific stuff
podman << "\green <B>You awaken slowly, feeling your sap stir into sluggish motion as the warm air caresses your bark.</B>"
if(source && ckey && podman.ckey == ckey)
podman << "<B>Memories of a life as [source] drift oddly through a mind unsuited for them, like a skin of oil over a fathomless lake.</B>"
podman << "<B>You are now one of the Dionaea, a race of drifting interstellar plantlike creatures that sometimes share their seeds with human traders.</B>"
podman << "<B>Too much darkness will send you into shock and starve you, but light will help you heal.</B>"
if(!realName)
var/newname = input(podman,"Enter a name, or leave blank for the default name.", "Name change","") as text
if (newname != "")
podman.real_name = newname
if(realName)
podman.real_name = realName
else
podman.real_name = "diona nymph ([rand(100,999)])"
podman.dna.real_name = podman.real_name
// Update mode specific HUD icons.
switch(ticker.mode.name)
if ("revolution")
if (podman.mind in ticker.mode:revolutionaries)
ticker.mode:add_revolutionary(podman.mind)
ticker.mode:update_all_rev_icons() //So the icon actually appears
if (podman.mind in ticker.mode:head_revolutionaries)
ticker.mode:update_all_rev_icons()
if ("nuclear emergency")
if (podman.mind in ticker.mode:syndicates)
ticker.mode:update_all_synd_icons()
if ("cult")
if (podman.mind in ticker.mode:cult)
ticker.mode:add_cultist(podman.mind)
ticker.mode:update_all_cult_icons() //So the icon actually appears
// -- End mode specific stuff
podman << "\green <B>You awaken slowly, feeling your sap stir into sluggish motion as the warm air caresses your bark.</B>"
if(source && ckey && podman.ckey == ckey)
podman << "<B>Memories of a life as [source] drift oddly through a mind unsuited for them, like a skin of oil over a fathomless lake.</B>"
podman << "<B>You are now one of the Dionaea, a race of drifting interstellar plantlike creatures that sometimes share their seeds with human traders.</B>"
podman << "<B>Too much darkness will send you into shock and starve you, but light will help you heal.</B>"
if(!realName)
var/newname = input(podman,"Enter a name, or leave blank for the default name.", "Name change","") as text
if (newname != "")
podman.real_name = newname
new /mob/living/carbon/monkey/diona(parent.loc)
parent.visible_message("\blue The pod disgorges a fully-formed plant creature!")
parent.update_tray()
+2 -1
View File
@@ -412,7 +412,8 @@
return 1
if(ispath(MP, /mob/living/carbon/alien))
return 1
if(ispath(MP, /mob/living/carbon/monkey/diona))
return 1
//Not in here? Must be untested!
return 0