mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -1809,3 +1809,5 @@ var/proccalls = 1
|
||||
//Grasp indexes
|
||||
#define GRASP_RIGHT_HAND 1
|
||||
#define GRASP_LEFT_HAND 2
|
||||
|
||||
#define BLOB_CORE_PROPORTION 20
|
||||
Reference in New Issue
Block a user