diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 31967ae96b4..29a921e83c9 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -228,7 +228,11 @@ GLOBAL_LIST_EMPTY(event_last_fired) new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/nothing, 5730), new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/blob, 100, TRUE), new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/alien_infestation, 100, TRUE), - new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/spider_terror, 100, TRUE) + new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/spider_terror, 100, TRUE), + new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/spider_terror/prince, 0, TRUE), + new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/spider_terror/white, 0, TRUE), + new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/spider_terror/princess, 0, TRUE), + new /datum/event_meta(EVENT_LEVEL_DISASTER, /datum/event/spider_terror/queen, 0, TRUE), ) var/activation_counter = 0 var/event_rolls = 0 diff --git a/code/modules/events/spider_terror.dm b/code/modules/events/spider_terror.dm index 8c7fbf6e118..c41802df38b 100644 --- a/code/modules/events/spider_terror.dm +++ b/code/modules/events/spider_terror.dm @@ -9,6 +9,8 @@ role_requirements = list(ASSIGNMENT_SECURITY = 3, ASSIGNMENT_CREW = 45, ASSIGNMENT_MEDICAL = 4) var/spawncount = 1 var/successSpawn = FALSE //So we don't make a command report if nothing gets spawned. + /// Specific type of terror spawn + var/infestation_type /datum/event/spider_terror/setup() announceWhen = rand(announceWhen, announceWhen + 30) @@ -36,11 +38,11 @@ /datum/event/spider_terror/proc/wrappedstart() var/spider_type - var/infestation_type - if((length(GLOB.clients)) < TS_HIGHPOP_TRIGGER) - infestation_type = pick(TS_INFESTATION_PRINCE_SPIDER, TS_INFESTATION_WHITE_SPIDER, TS_INFESTATION_PRINCESS_SPIDER) - else - infestation_type = pick(TS_INFESTATION_PRINCE_SPIDER, TS_INFESTATION_WHITE_SPIDER, TS_INFESTATION_PRINCESS_SPIDER, TS_INFESTATION_QUEEN_SPIDER) + if(!infestation_type) + if((length(GLOB.clients)) < TS_HIGHPOP_TRIGGER) + infestation_type = pick(TS_INFESTATION_PRINCE_SPIDER, TS_INFESTATION_WHITE_SPIDER, TS_INFESTATION_PRINCESS_SPIDER) + else + infestation_type = pick(TS_INFESTATION_PRINCE_SPIDER, TS_INFESTATION_WHITE_SPIDER, TS_INFESTATION_PRINCESS_SPIDER, TS_INFESTATION_QUEEN_SPIDER) switch(infestation_type) if(TS_INFESTATION_PRINCE_SPIDER) // Fairly weak. Dangerous in single combat but has little staying power. Always gets whittled down. @@ -82,4 +84,20 @@ SSticker.record_biohazard_start(infestation_type) SSevents.biohazards_this_round += infestation_type +/datum/event/spider_terror/prince + name = "terror prince" + infestation_type = TS_INFESTATION_PRINCE_SPIDER + +/datum/event/spider_terror/white + name = "white terror spiders" + infestation_type = TS_INFESTATION_WHITE_SPIDER + +/datum/event/spider_terror/princess + name = "princess terror spiders" + infestation_type = TS_INFESTATION_PRINCESS_SPIDER + +/datum/event/spider_terror/queen + name = "queen of terror spiders" + infestation_type = TS_INFESTATION_QUEEN_SPIDER + #undef TS_HIGHPOP_TRIGGER