Limits blob cores by population (#10797)

Sets blobs to a standard proportion of how many players need to be ingame per blob spawned. Lowered that quantity from 30 people required to blob to 20 per blob, applied that same proportion to the event dynamic (which previously did not check the number of people per blob spawned).
This commit is contained in:
clusterfack
2016-07-06 18:06:24 -05:00
committed by GitHub
parent 513118af13
commit c5ee723022
5 changed files with 16 additions and 5 deletions

View File

@@ -24,7 +24,7 @@ var/list/blob_overminds = list()
var/nuclear = 0
var/cores_to_spawn = 15
var/players_per_core = 30
var/players_per_core = BLOB_CORE_PROPORTION
var/blob_point_rate = 3
var/blobwincount = 750 // WAS: 500

View File

@@ -29,6 +29,7 @@
spawn_meteor(chosen_dir, meteor_type)
sleep(50) //Five seconds for the chat to scroll
meteor_wave_active = 0
return chosen_dir
//A bunch of information to be used by the bhangmeter (doubles as a meteor monitoring computer), and sent to the admins otherwise
/proc/output_information(var/meteor_delay, var/wave_dir, var/meteor_size, var/wave_size, var/wave_name)

View File

@@ -64,9 +64,9 @@ var/list/event_last_fired = list()
possibleEvents[/datum/event/meteor_wave] = 15
possibleEvents[/datum/event/meteor_shower] = 40
possibleEvents[/datum/event/immovable_rod] = 15
possibleEvents[/datum/event/thing_storm/blob_shower] = 25//Blob Cluster
possibleEvents[/datum/event/thing_storm/blob_shower] = 15//Blob Cluster
if((active_with_role["Engineer"] > 1) && (active_with_role["Security"] > 1) && (living >= 25))
if((active_with_role["Engineer"] > 1) && (active_with_role["Security"] > 1) && (living >= BLOB_CORE_PROPORTION))
possibleEvents[/datum/event/thing_storm/blob_storm] = 10//Blob Conglomerate
possibleEvents[/datum/event/radiation_storm] = 50

View File

@@ -107,7 +107,6 @@ var/global/list/thing_storm_types = list(
/obj/item/projectile/meteor/blob/node,
/obj/item/projectile/meteor/blob/node,
/obj/item/projectile/meteor/blob/node,
/obj/item/projectile/meteor/blob/core,
),
)
@@ -166,13 +165,22 @@ var/global/list/thing_storm_types = list(
command_alert("The station has cleared the Blob cluster. Eradicate the blob from hit areas.", "Blob Cluster")
/datum/event/thing_storm/blob_storm
var/cores_spawned = 0
/datum/event/thing_storm/blob_storm/setup()
endWhen = rand(60, 90) + 10
storm_name="blob storm"
/datum/event/thing_storm/blob_storm/tick()
meteor_wave(rand(20, 40), types = thing_storm_types[storm_name])
var/chosen_dir = meteor_wave(rand(20, 40), types = thing_storm_types[storm_name])
if(!cores_spawned)
var/living = 0
for(var/mob/living/M in player_list)
if(M.stat == CONSCIOUS)
living++
cores_spawned = round(living/BLOB_CORE_PROPORTION) //Cores spawned depends on living players
for(var/i = 0 to cores_spawned)
spawn_meteor(chosen_dir, /obj/item/projectile/meteor/blob/core)
/datum/event/thing_storm/blob_storm/announce()
command_alert("The station is about to pass through a Blob conglomerate. Overmind brainwaves possibly detected.", "Blob Conglomerate")

View File

@@ -1809,3 +1809,5 @@ var/proccalls = 1
//Grasp indexes
#define GRASP_RIGHT_HAND 1
#define GRASP_LEFT_HAND 2
#define BLOB_CORE_PROPORTION 20