diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm
index 28be931f9b..91409ac4ed 100644
--- a/code/game/gamemodes/blob/blobs/core.dm
+++ b/code/game/gamemodes/blob/blobs/core.dm
@@ -23,8 +23,12 @@
if(overmind)
update_icon()
point_rate = new_rate
+ addtimer(CALLBACK(src, .proc/generate_announcement), 1800)
. = ..()
+/obj/structure/blob/core/proc/generate_announcement()
+ priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/ai/outbreak5.ogg')
+
/obj/structure/blob/core/scannerreport()
return "Directs the blob's expansion, gradually expands, and sustains nearby blob spores and blobbernauts."
diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm
index c14f072d1b..e6cae65c03 100644
--- a/code/game/gamemodes/blob/overmind.dm
+++ b/code/game/gamemodes/blob/overmind.dm
@@ -72,11 +72,13 @@ GLOBAL_LIST_EMPTY(blob_nodes)
set_security_level("delta")
max_blob_points = INFINITY
blob_points = INFINITY
- addtimer(CALLBACK(src, .proc/victory), 660)
+ addtimer(CALLBACK(src, .proc/victory), 450)
..()
/mob/camera/blob/proc/victory()
+ sound_to_playing_players('sound/machines/alarm.ogg')
+ sleep(100)
for(var/mob/living/L in GLOB.mob_list)
var/turf/T = get_turf(L)
if(!T || !(T.z in GLOB.station_z_levels))
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 070a1e7e6c..f91ebb7557 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -441,7 +441,7 @@
dat += "
| [N.name]([N.key])Head body destroyed! | "
dat += "PM |
"
dat += ""
-
+
if(SSticker.mode.changelings.len > 0)
dat += "
| Changelings | | |
"
for(var/datum/mind/changeling in SSticker.mode.changelings)
@@ -593,7 +593,8 @@
var/list/blob_minds = list()
for(var/mob/camera/blob/B in GLOB.mob_list)
blob_minds |= B.mind
-
+ if(blob_minds.len)
+ dat += "
| Blob | | |
"
for(var/datum/mind/blob in blob_minds)
var/mob/camera/blob/M = blob.current
if(M)
diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm
index bb0f59f205..49eb46194d 100644
--- a/code/modules/events/blob.dm
+++ b/code/modules/events/blob.dm
@@ -9,7 +9,7 @@
gamemode_blacklist = list("blob") //Just in case a blob survives that long
/datum/round_event/ghost_role/blob
- announceWhen = 12
+ announceWhen = -1
role_name = "blob overmind"
/datum/round_event/ghost_role/blob/announce()
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 592d19e0b1..d17b79eddc 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -376,8 +376,6 @@
if(!transfer_after)
mind.active = FALSE
mind.transfer_to(R)
- if(mind.special_role)
- R.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite")
else if(transfer_after)
R.key = key
@@ -464,10 +462,7 @@
/mob/proc/become_overmind(starting_points = 60)
var/mob/camera/blob/B = new /mob/camera/blob(loc, starting_points)
- if(mind)
- mind.transfer_to(B)
- else
- B.key = key
+ B.key = key
. = B
qdel(src)