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)