diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm
index 32c57b11a1d..f3cd5477303 100644
--- a/code/game/gamemodes/blob/blob.dm
+++ b/code/game/gamemodes/blob/blob.dm
@@ -24,8 +24,8 @@ var/list/blob_nodes = list()
var/players_per_core = 26
var/blob_count = 0
- var/blobnukecount = 300//Might be a bit low
- var/blobwincount = 600//Still needs testing
+ var/blobnukecount = 200//Might be a bit low
+ var/blobwincount = 400//Still needs testing
var/list/infected_crew = list()
@@ -39,6 +39,10 @@ var/list/blob_nodes = list()
cores_to_spawn = max(round(num_players()/players_per_core, 1), 1)
+ blobnukecount = initial(blobnukecount) * cores_to_spawn
+ blobwincount = initial(blobwincount) * cores_to_spawn
+
+
for(var/j = 0, j < cores_to_spawn, j++)
if (!possible_blobs.len)
break
@@ -119,7 +123,7 @@ var/list/blob_nodes = list()
stage(0)
// Stage 1
- sleep(600*rand(4,5))
+ sleep(5000)
stage(1)
..()
diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm
index 9e76461cb00..868cd62a5f6 100644
--- a/code/game/gamemodes/blob/blob_finish.dm
+++ b/code/game/gamemodes/blob/blob_finish.dm
@@ -36,6 +36,16 @@
..()
return 1
+datum/game_mode/proc/auto_declare_completion_blob()
+ if(istype(ticker.mode,/datum/game_mode/blob) )
+ var/datum/game_mode/blob/blob_mode = src
+ if(blob_mode.infected_crew.len)
+ var/text = "The blob[(blob_mode.infected_crew.len > 1 ? "s were" : " was")]:"
+
+ for(var/datum/mind/blob in blob_mode.infected_crew)
+ text += "
[blob.key] was [blob.name]"
+ world << text
+ return 1
/datum/game_mode/blob/proc/check_quarantine()
var/numDead = 0
diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm
index a1c6804fd2c..9769d1560ab 100644
--- a/code/game/gamemodes/blob/blobs/core.dm
+++ b/code/game/gamemodes/blob/blobs/core.dm
@@ -38,7 +38,7 @@
if(!overmind)
create_overmind()
else
- overmind.add_points(1)
+ overmind.add_points(2)
health = min(initial(health), health + 1)
for(var/i = 1; i < 8; i += i)
Pulse(0, i)
diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm
index 274dbda7506..6ba4bd026cb 100644
--- a/code/game/gamemodes/blob/blobs/factory.dm
+++ b/code/game/gamemodes/blob/blobs/factory.dm
@@ -6,7 +6,7 @@
brute_resist = 1
fire_resist = 2
var/list/spores = list()
- var/max_spores = 4
+ var/max_spores = 3
var/spore_delay = 0
update_icon()
@@ -22,7 +22,7 @@
return 0
if(spore_delay > world.time)
return 0
- spore_delay = world.time + 150 // 15 seconds
+ spore_delay = world.time + 100 // 10 seconds
new/mob/living/simple_animal/hostile/blobspore(src.loc, src)
return 1
@@ -34,8 +34,8 @@
icon_state = "blobpod"
icon_living = "blobpod"
pass_flags = PASSBLOB
- health = 20
- maxHealth = 20
+ health = 15
+ maxHealth = 15
melee_damage_lower = 2
melee_damage_upper = 4
attacktext = "hits"
diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm
index 994231a9781..cb9b4202362 100644
--- a/code/game/gamemodes/blob/overmind.dm
+++ b/code/game/gamemodes/blob/overmind.dm
@@ -16,6 +16,12 @@
var/blob_points = 0
var/max_blob_points = 100
+/mob/camera/blob/New()
+ var/new_name = "[initial(name)] ([rand(1, 999)])"
+ name = new_name
+ real_name = new_name
+ ..()
+
/mob/camera/blob/say(var/message)
return//No talking for you
diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm
index 4df3d28ce1b..20817196029 100644
--- a/code/game/gamemodes/blob/powers.dm
+++ b/code/game/gamemodes/blob/powers.dm
@@ -53,7 +53,7 @@
/mob/camera/blob/verb/create_resource()
set category = "Blob"
- set name = "Create Resource Blob (30)"
+ set name = "Create Resource Blob (20)"
set desc = "Create a resource tower which will generate points for you."
@@ -76,7 +76,7 @@
usr << "There is a resource blob nearby, move more than 3 tiles away from it!"
return
- if(!can_buy(30))
+ if(!can_buy(20))
return
@@ -122,7 +122,7 @@
/mob/camera/blob/verb/create_factory()
set category = "Blob"
- set name = "Create Factory Blob (70)"
+ set name = "Create Factory Blob (60)"
set desc = "Create a Spore producing blob."
@@ -140,11 +140,11 @@
usr << "Unable to use this blob, find a normal one."
return
- for(var/obj/effect/blob/factory/blob in orange(4))
- usr << "There is a factory blob nearby, move more than 4 tiles away from it!"
+ for(var/obj/effect/blob/factory/blob in orange(6))
+ usr << "There is a factory blob nearby, move more than 6 tiles away from it!"
return
- if(!can_buy(70))
+ if(!can_buy(60))
return
B.change_to(/obj/effect/blob/factory)
@@ -176,7 +176,7 @@
/mob/camera/blob/verb/spawn_blob()
set category = "Blob"
- set name = "Expand Blob (10)"
+ set name = "Expand Blob (5)"
set desc = "Attempts to create a new blob in this tile. If the tile isn't clear we will attack it, which might clear it."
if(creating_blob) return
var/turf/T = get_turf(src)
@@ -194,7 +194,7 @@
usr << "There is no blob adjacent to you."
return
- if(!can_buy(10))
+ if(!can_buy(5))
return
OB.expand(T, 0)
return
@@ -214,7 +214,7 @@
return
for(var/mob/living/simple_animal/hostile/blobspore/BS in living_mob_list)
- if(isturf(BS.loc) && get_dist(BS, src) <= 16)
+ if(isturf(BS.loc) && get_dist(BS, src) <= 20)
BS.LoseTarget()
BS.Goto(pick(surrounding_turfs), BS.move_to_delay)
return
\ No newline at end of file
diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm
index 93a6976bae7..d52ba53d6d7 100644
--- a/code/game/gamemodes/blob/theblob.dm
+++ b/code/game/gamemodes/blob/theblob.dm
@@ -55,7 +55,7 @@
if(run_action())//If we can do something here then we dont need to pulse more
return
- if(pulse > 25)
+ if(pulse > 30)
return//Inf loop check
//Looking for another blob to pulse
@@ -93,12 +93,13 @@
if(!T) return 0
var/obj/effect/blob/normal/B = new /obj/effect/blob/normal(src.loc, min(src.health, 30))
+ B.density = 1
if(T.Enter(B,src))//Attempt to move into the tile
+ B.density = initial(B.density)
B.loc = T
else
T.blob_act()//If we cant move in hit the turf
- B.loc = null
- blobs -= B
+ B.Delete()
for(var/atom/A in T)//Hit everything in the turf
A.blob_act()