diff --git a/code/WorkInProgress/ZomgPonies/mobs/metroid/powers.dm b/code/WorkInProgress/ZomgPonies/mobs/metroid/powers.dm
index 6f054846308..91cf8c8b902 100644
--- a/code/WorkInProgress/ZomgPonies/mobs/metroid/powers.dm
+++ b/code/WorkInProgress/ZomgPonies/mobs/metroid/powers.dm
@@ -247,10 +247,10 @@
new_slime.key = key
new_slime << "You are now a slime!"
-/*
+
if(new_slime.client)
if(babies.len)
- var/list/candidates = get_active_candidates()
+ var/list/candidates = get_slime_candidates()
if(candidates.len)
var/mob/dead/observer/picked = pick(candidates)
var/mob/living/carbon/slime/S = pick(babies)
@@ -261,7 +261,7 @@
else
- new_slime << "You're an only child!"*/
+ new_slime << "You're an only child!"
else
src << "I am not ready to reproduce yet..."
else
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index e402a8636ad..5a06f99444c 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -309,6 +309,19 @@ proc/isInSight(var/atom/A, var/atom/B)
i++
return candidates
+/proc/get_slime_candidates()
+
+ var/list/candidates = list() //List of candidate KEYS to assume control of the new larva ~Carn
+ var/i = 0
+ while(candidates.len <= 0 && i < 5)
+ for(var/mob/G in respawnable_list)
+ if( G.client && G.client.prefs.be_special & BE_SLIME)
+ if(((G.client.inactivity/10)/60) <= ALIEN_SELECT_AFK_BUFFER + i) // the most active players are more likely to become a slime
+ if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD))
+ candidates += G.key
+ i++
+ return candidates
+
proc/get_candidates(be_special_flag=0)
. = list()
for(var/mob/G in respawnable_list)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 1cfb519265f..df5ffeb7401 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -16,7 +16,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
"infested monkey" = IS_MODE_COMPILED("monkey"), // 9
"ninja" = "true", // 10
"vox raider" = IS_MODE_COMPILED("heist"), // 11
- "diona" = 1, // 12
+ "slime" = 1, // 12
"vampire" = IS_MODE_COMPILED("vampire") // 13
)
diff --git a/code/setup.dm b/code/setup.dm
index 72ece0fa96d..dab0db610f3 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -665,7 +665,7 @@ var/list/TAGGERLOCATIONS = list("Disposals",
#define BE_MONKEY 512
#define BE_NINJA 1024
#define BE_VOX 2048
-#define BE_PLANT 4096
+#define BE_SLIME 4096
#define BE_VAMPIRE 8192
var/list/be_special_flags = list(
@@ -681,7 +681,7 @@ var/list/be_special_flags = list(
"Monkey" = BE_MONKEY,
"Ninja" = BE_NINJA,
"Vox" = BE_VOX,
- "Diona" = BE_PLANT,
+ "Slime" = BE_SLIME,
"Vampire" = BE_VAMPIRE
)