diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index dd134d4d38f5..b6f221f8190f 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -166,7 +166,7 @@
return
message_admins("[key_name(usr)] spawned a blob with base resource gain [strength].")
log_admin("[key_name(usr)] spawned a blob with base resource gain [strength].")
- new/datum/round_event/ghost_role/blob(TRUE, strength)
+ new/datum/round_event/ghost_role/blob(strength)
if("centcom")
message_admins("[key_name(usr)] is creating a CentCom response team...")
if(src.makeEmergencyresponseteam())
diff --git a/code/modules/antagonists/blob/blobstrains/_blobstrain.dm b/code/modules/antagonists/blob/blobstrains/_blobstrain.dm
index a2986d8ab962..ad439d962de2 100644
--- a/code/modules/antagonists/blob/blobstrains/_blobstrain.dm
+++ b/code/modules/antagonists/blob/blobstrains/_blobstrain.dm
@@ -24,6 +24,7 @@ GLOBAL_LIST_INIT(valid_blobstrains, subtypesof(/datum/blobstrain) - list(/datum/
/datum/blobstrain/proc/on_gain()
overmind.color = complementary_color
+ point_rate = point_rate * overmind.basemodifier
for(var/BL in GLOB.blobs)
var/obj/structure/blob/B = BL
B.update_icon()
@@ -74,4 +75,4 @@ GLOBAL_LIST_INIT(valid_blobstrains, subtypesof(/datum/blobstrain) - list(/datum/
return
/datum/blobstrain/proc/examine(mob/user)
- return list("Progress to Critical Mass: [span_notice("[overmind.blobs_legit.len]/[overmind.blobwincount].")]")
\ No newline at end of file
+ return list("Progress to Critical Mass: [span_notice("[overmind.blobs_legit.len]/[overmind.blobwincount].")]")
diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm
index 3f31797c88a7..1040de6d1cf8 100644
--- a/code/modules/antagonists/blob/overmind.dm
+++ b/code/modules/antagonists/blob/overmind.dm
@@ -42,10 +42,12 @@ GLOBAL_LIST_EMPTY(blob_nodes)
var/announcement_size = 75
var/announcement_time
var/has_announced = FALSE
+ var/basemodifier = 1
-/mob/camera/blob/Initialize(mapload, starting_points = 60)
+/mob/camera/blob/Initialize(mapload, starting_points = 60, pointmodifier)
validate_location()
blob_points = starting_points
+ basemodifier = pointmodifier
manualplace_min_time += world.time
autoplace_max_time += world.time
GLOB.overminds += src
diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm
index 5c167ddaa8e7..392d9535d4dc 100644
--- a/code/modules/events/blob.dm
+++ b/code/modules/events/blob.dm
@@ -3,18 +3,20 @@
typepath = /datum/round_event/ghost_role/blob
weight = 8
max_occurrences = 1
-
min_players = 25
-
dynamic_should_hijack = TRUE
-
gamemode_blacklist = list("blob") //Just in case a blob survives that long
-
+
/datum/round_event/ghost_role/blob
announceWhen = -1
role_name = "blob overmind"
fakeable = TRUE
+ var/pointmodifier = 1
+/datum/round_event/ghost_role/blob/New(pointrate)
+ . = ..()
+ pointmodifier = pointrate
+
/datum/round_event/ghost_role/blob/announce(fake)
priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", ANNOUNCER_OUTBREAK5)
@@ -25,7 +27,7 @@
if(!candidates.len)
return NOT_ENOUGH_PLAYERS
var/mob/dead/observer/new_blob = pick(candidates)
- var/mob/camera/blob/BC = new_blob.become_overmind()
+ var/mob/camera/blob/BC = new_blob.become_overmind(60, pointmodifier)
spawned_mobs += BC
message_admins("[ADMIN_LOOKUPFLW(BC)] has been made into a blob overmind by an event.")
log_game("[key_name(BC)] was spawned as a blob overmind by an event.")
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index b42ed6b9e007..305c5d944aa5 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -524,8 +524,8 @@
. = new_slime
qdel(src)
-/mob/proc/become_overmind(starting_points = 60)
- var/mob/camera/blob/B = new /mob/camera/blob(get_turf(src), starting_points)
+/mob/proc/become_overmind(starting_points = 60, pointmodifier)
+ var/mob/camera/blob/B = new /mob/camera/blob(get_turf(src), starting_points, pointmodifier)
B.key = key
. = B
qdel(src)