diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index e6f8ad51e22..dcfc2a184f4 100644 --- a/code/modules/antagonists/blob/overmind.dm +++ b/code/modules/antagonists/blob/overmind.dm @@ -61,6 +61,9 @@ GLOBAL_LIST_EMPTY(blob_nodes) /// The list of strains the blob can reroll for. var/list/strain_choices + /// Adminbus potential - if this is set to FALSE, the blob won't end the round upon reaching critical mass. + var/end_round_on_victory = TRUE + /mob/eye/blob/Initialize(mapload, starting_points = OVERMIND_STARTING_POINTS) ADD_TRAIT(src, TRAIT_BLOB_ALLY, INNATE_TRAIT) validate_location() @@ -160,16 +163,8 @@ GLOBAL_LIST_EMPTY(blob_nodes) qdel(src) else if(!victory_in_progress && (blobs_legit.len >= blobwincount)) - victory_in_progress = TRUE - priority_announce("Biohazard has reached critical mass. Station loss is imminent.", "Biohazard Alert") - SSsecurity_level.set_level(SEC_LEVEL_DELTA) + begin_victory() - // Set status displays to biohazard alert - critical level - send_status_display_biohazard_alert() - - max_blob_points = INFINITY - blob_points = INFINITY - addtimer(CALLBACK(src, PROC_REF(victory)), 45 SECONDS) else if(!free_strain_rerolls && (last_reroll_time + BLOB_POWER_REROLL_FREE_TIME= controller.blobwincount)) + return FALSE + // Otherwise, it's probably fine. + return TRUE + +/obj/structure/blob/proc/expand(turf/T = null, mob/eye/blob/controller = null, expand_reaction = 1) if(!T) var/list/dirs = list(1,2,4,8) for(var/i = 1 to 4) @@ -172,6 +183,9 @@ return var/make_blob = TRUE //can we make a blob? + if(!can_make_blob(controller)) + make_blob = FALSE + if(isspaceturf(T) && !(locate(/obj/structure/lattice) in T) && prob(80)) make_blob = FALSE playsound(src.loc, 'sound/effects/splat.ogg', 50, TRUE) //Let's give some feedback that we DID try to spawn in space, since players are used to it