diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index 3687556001d..455dfebc30c 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -23,5 +23,5 @@
#define BE_ALIEN 64
#define BE_PAI 128
#define BE_CULTIST 256
-#define BE_MONKEY 512
+#define BE_BLOB 512
#define BE_NINJA 1024
diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm
index 0c9edf48802..ce5c939ffa6 100644
--- a/code/_globalvars/configuration.dm
+++ b/code/_globalvars/configuration.dm
@@ -39,6 +39,6 @@ var/list/be_special_flags = list(
"Alien Lifeform" = BE_ALIEN,
"pAI" = BE_PAI,
"Cultist" = BE_CULTIST,
- "Monkey" = BE_MONKEY,
+ "Blob" = BE_BLOB,
"Ninja" = BE_NINJA
)
diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm
index ddb3062ecd3..2cf287669c0 100644
--- a/code/game/gamemodes/blob/blob.dm
+++ b/code/game/gamemodes/blob/blob.dm
@@ -9,7 +9,7 @@ var/list/blob_nodes = list()
/datum/game_mode/blob
name = "blob"
config_tag = "blob"
- antag_flag = BE_ALIEN
+ antag_flag = BE_BLOB
required_players = 30
required_enemies = 1
diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm
index 262058d57b0..271d2b04323 100644
--- a/code/game/gamemodes/blob/blobs/core.dm
+++ b/code/game/gamemodes/blob/blobs/core.dm
@@ -63,9 +63,9 @@
..()
-/obj/effect/blob/core/proc/create_overmind(var/client/new_overmind)
+/obj/effect/blob/core/proc/create_overmind(var/client/new_overmind, var/override_delay)
- if(overmind_get_delay > world.time)
+ if(overmind_get_delay > world.time && !override_delay)
return
overmind_get_delay = world.time + 300 // 30 seconds
@@ -77,7 +77,7 @@
var/list/candidates = list()
if(!new_overmind)
- candidates = get_candidates(BE_ALIEN)
+ candidates = get_candidates(BE_BLOB)
if(candidates.len)
C = pick(candidates)
else
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index b2af04eb921..49cf8b5a50d 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -103,7 +103,8 @@ var/global/floorIsLava = 0
body += "Make AI | "
body += "Make Robot | "
body += "Make Alien | "
- body += "Make Slime "
+ body += "Make Slime | "
+ body += "Make Blob | "
//Simple Animals
if(isanimal(M))
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 3df60eadd7f..b8ac503a295 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1129,6 +1129,17 @@
usr.client.cmd_admin_slimeize(H)
+ else if(href_list["makeblob"])
+ if(!check_rights(R_SPAWN)) return
+
+ var/mob/living/carbon/human/H = locate(href_list["makeblob"])
+ if(!istype(H))
+ usr << "This can only be used on instances of type /mob/living/carbon/human"
+ return
+
+ usr.client.cmd_admin_blobize(H)
+
+
else if(href_list["makerobot"])
if(!check_rights(R_SPAWN)) return
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 0184f63a1d3..ef7fa878bb1 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -159,12 +159,30 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
return
if(istype(M, /mob/living/carbon/human))
log_admin("[key_name(src)] has robotized [M.key].")
+ var/mob/living/carbon/human/H = M
spawn(10)
- M:Robotize()
+ H.Robotize()
else
alert("Invalid mob")
+/client/proc/cmd_admin_blobize(var/mob/M in mob_list)
+ set category = "Fun"
+ set name = "Make Blob"
+
+ if(!ticker)
+ alert("Wait until the game starts")
+ return
+ if(istype(M, /mob/living/carbon/human))
+ log_admin("[key_name(src)] has blobized [M.key].")
+ var/mob/living/carbon/human/H = M
+ spawn(10)
+ H.Blobize()
+
+ else
+ alert("Invalid mob")
+
+
/client/proc/cmd_admin_animalize(var/mob/M in mob_list)
set category = "Fun"
set name = "Make Simple Animal"
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 72ac11f429a..fee47bf5869 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -12,10 +12,10 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
"wizard" = IS_MODE_COMPILED("wizard"), // 3
"malf AI" = IS_MODE_COMPILED("malfunction"), // 4
"revolutionary" = IS_MODE_COMPILED("revolution"), // 5
- "alien lifeform" = 1, //always show // 6
+ "alien" = 1, //always show // 6
"pAI candidate" = 1, // -- TLE // 7
"cultist" = IS_MODE_COMPILED("cult"), // 8
- "infested monkey" = IS_MODE_COMPILED("monkey"), // 9
+ "blob" = IS_MODE_COMPILED("blob"), // 9
)
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index ac38a35b839..569aa69b757 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -371,6 +371,15 @@
. = new_slime
del(src)
+/mob/living/carbon/human/proc/Blobize()
+ if (notransform)
+ return
+ var/obj/effect/blob/core/new_blob = new /obj/effect/blob/core (loc)
+ new_blob.create_overmind(src.client , 1)
+ gib(src)
+
+
+
/mob/living/carbon/human/proc/corgize()
if (notransform)
return