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