diff --git a/modular_ss220/_defines220/code/antagonists.dm b/modular_ss220/_defines220/code/antagonists.dm index 9ec47589ae1a..b66ec8bd5837 100644 --- a/modular_ss220/_defines220/code/antagonists.dm +++ b/modular_ss220/_defines220/code/antagonists.dm @@ -3,4 +3,5 @@ #define VOX_RAID_FREQ 1220 +#define BIOHAZARD_TERROR_SPIDERS "Terrors" GLOBAL_LIST_EMPTY(raider_spawn) diff --git a/modular_ss220/events/_events.dme b/modular_ss220/events/_events.dme index f7491fa48fb4..b4ad5844ad80 100644 --- a/modular_ss220/events/_events.dme +++ b/modular_ss220/events/_events.dme @@ -5,3 +5,4 @@ #include "code/infestation_extended.dm" #include "code/christmas.dm" #include "code/spider_terror.dm" +#include "code/SSticker.dm" diff --git a/modular_ss220/events/code/SSticker.dm b/modular_ss220/events/code/SSticker.dm new file mode 100644 index 000000000000..57e04d8d90f9 --- /dev/null +++ b/modular_ss220/events/code/SSticker.dm @@ -0,0 +1,24 @@ +/datum/controller/subsystem/ticker/any_admin_spawned_mobs(biohazard) + switch(biohazard) + if(BIOHAZARD_TERROR_SPIDERS) + for(var/mob/living/simple_animal/hostile/poison/terror_spider/S in GLOB.ts_spiderlist) + if(S.admin_spawned) + return TRUE + return ..() + +/datum/controller/subsystem/ticker/biohazard_count(biohazard) + switch(biohazard) + if(BIOHAZARD_TERROR_SPIDERS) + var/spiders = 0 + for(var/mob/living/simple_animal/hostile/poison/terror_spider/S in GLOB.ts_spiderlist) + if(S.ckey) + spiders++ + return spiders + return ..() + +/datum/controller/subsystem/ticker/biohazard_active_threat(biohazard) + var/modular_count = biohazard_count(biohazard) + switch(biohazard) + if(BIOHAZARD_TERROR_SPIDERS) + return modular_count >= 3 + return ..() diff --git a/modular_ss220/events/code/spider_terror.dm b/modular_ss220/events/code/spider_terror.dm index 689c735dc18b..ae29d01daee2 100644 --- a/modular_ss220/events/code/spider_terror.dm +++ b/modular_ss220/events/code/spider_terror.dm @@ -4,7 +4,6 @@ #define TS_POINTS_PRINCE 30 #define TS_POINTS_QUEEN 42 - /datum/event/spider_terror announceWhen = 240 var/population_factor = 0.7 // higher - more spawnpoints @@ -48,7 +47,7 @@ spawnpoints += round(population_factor * length(GLOB.clients)) // server population sensitivity log_debug("where is [spawnpoints] available spawnpoints") spawn_terror_spiders(count_spawn_spiders(max_spiders), candidates) - SSevents.biohazards_this_round += 1 + SSevents.biohazards_this_round += BIOHAZARD_TERROR_SPIDERS /datum/event/spider_terror/proc/count_spawn_spiders(max_spiders) while(spawnpoints >= TS_POINTS_GREEN && spawncount < max_spiders)