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()