This commit is contained in:
Putnam3145
2022-08-07 17:59:28 -07:00
382 changed files with 5255 additions and 2567 deletions
-1
View File
@@ -2,7 +2,6 @@
name = "Anomaly: Hyper-Energetic Flux"
typepath = /datum/round_event/anomaly/anomaly_flux
min_players = 10
max_occurrences = 5
weight = 20
+1
View File
@@ -2,6 +2,7 @@
name = "Anomaly: Pyroclastic"
typepath = /datum/round_event/anomaly/anomaly_pyro
min_players = 5
max_occurrences = 5
weight = 20
+4 -4
View File
@@ -1,13 +1,13 @@
/datum/round_event_control/atmos_flux
name = "Atmospheric Flux"
typepath = /datum/round_event/atmos_flux
max_occurrences = 1
weight = 5
endWhen = 600
var/original_speed
max_occurrences = 5
weight = 10
/datum/round_event/atmos_flux
announceWhen = 1
endWhen = 600
var/original_speed
/datum/round_event/atmos_flux/announce(fake)
priority_announce("Atmospheric flux in your sector detected. Sensors show that air may move [(SSair.share_max_steps_target > original_speed) ? "faster" : "slower"] than usual for some time.", "Atmos Alert")
+2 -1
View File
@@ -5,7 +5,8 @@
min_players = 5
/datum/round_event_control/brain_trauma/canSpawnEvent(var/players_amt, var/gamemode)
var/list/enemy_roles = list("Medical Doctor","Chief Medical Officer","Paramedic")
if(!..()) return FALSE
var/list/enemy_roles = list("Medical Doctor","Chief Medical Officer","Paramedic","AI","Chemist","Virologist","Captain","Head of Personnel","Roboticist")
for (var/mob/M in GLOB.alive_mob_list)
if(M.stat != DEAD && (M.mind?.assigned_role in enemy_roles))
return TRUE
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Cat Surgeon"
typepath = /datum/round_event/cat_surgeon
max_occurrences = 1
weight = 8
weight = 5
/datum/round_event/cat_surgeon/announce(fake)
priority_announce("One of our... ahem... 'special' cases has escaped. As it happens their last known location before their tracker went dead is your station so keep an eye out for them. On an unrelated note, has anyone seen our cats?",
+12 -2
View File
@@ -2,7 +2,7 @@
name = "Disease Outbreak"
typepath = /datum/round_event/disease_outbreak
max_occurrences = 1
min_players = 10
min_players = 3
weight = 5
/datum/round_event/disease_outbreak
@@ -12,6 +12,13 @@
var/max_severity = 3
/datum/round_event_control/disease_outbreak/canSpawnEvent(var/players_amt, var/gamemode)
if(!..()) return FALSE
var/list/enemy_roles = list("Medical Doctor","Chief Medical Officer","Paramedic","AI","Chemist","Virologist","Captain","Head of Personnel", "Geneticist")
for (var/mob/M in GLOB.alive_mob_list)
if(M.stat != DEAD && (M.mind?.assigned_role in enemy_roles))
return TRUE
return FALSE
/datum/round_event/disease_outbreak/announce(fake)
priority_announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", "outbreak7")
@@ -22,7 +29,10 @@
/datum/round_event/disease_outbreak/start()
var/advanced_virus = FALSE
max_severity = 3 + max(FLOOR((world.time - control.earliest_start)/6000, 1),0) //3 symptoms at 20 minutes, plus 1 per 10 minutes
var/player_count = get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE)
max_severity = 1 + max(FLOOR((world.time - control.earliest_start)/6000, 1),0) //3 symptoms at 20 minutes, plus 1 per 10 minutes
max_severity += player_count > 5
max_severity += player_count > 10
if(prob(20 + (10 * max_severity)))
advanced_virus = TRUE
+4 -3
View File
@@ -17,9 +17,10 @@
/datum/round_event_control/sandstorm
name = "Sandstorm"
typepath = /datum/round_event/sandstorm
weight = 0
max_occurrences = 0
earliest_start = 0 MINUTES
weight = 5
max_occurrences = 1
min_players = 5
earliest_start = 20 MINUTES
/datum/round_event/sandstorm
startWhen = 1
+10 -2
View File
@@ -1,9 +1,17 @@
/datum/round_event_control/heart_attack
name = "Random Heart Attack"
typepath = /datum/round_event/heart_attack
weight = 20
weight = 10
max_occurrences = 2
min_players = 40 // To avoid shafting lowpop
min_players = 10 // To avoid shafting lowpop
/datum/round_event_control/heart_attack/canSpawnEvent(var/players_amt, var/gamemode)
if(!..()) return FALSE
var/list/enemy_roles = list("Medical Doctor","Chief Medical Officer","Paramedic","Chemist")
for (var/mob/M in GLOB.alive_mob_list)
if(M.stat != DEAD && (M.mind?.assigned_role in enemy_roles))
return TRUE
return FALSE
/datum/round_event/heart_attack/start()
var/list/heart_attack_contestants = list()
+3 -3
View File
@@ -15,9 +15,9 @@
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_living_list)
Ian.place_on_head(new /obj/item/bedsheet(Ian))
for(var/mob/living/simple_animal/parrot/Poly/Poly in GLOB.mob_living_list)
new /mob/living/simple_animal/parrot/Poly/ghost(Poly.loc)
qdel(Poly)
for(var/mob/living/simple_animal/parrot/Polly/Polly in GLOB.mob_living_list)
new /mob/living/simple_animal/parrot/Polly/ghost(Polly.loc)
qdel(Polly)
/datum/round_event/spooky/announce(fake)
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Mass Hallucination"
typepath = /datum/round_event/mass_hallucination
weight = 10
max_occurrences = 2
max_occurrences = 5
min_players = 1
var/forced_hallucination
+2 -2
View File
@@ -2,7 +2,7 @@
name = "Supermatter Surge"
typepath = /datum/round_event/supermatter_surge
weight = 20
max_occurrences = 4
max_occurrences = 5
earliest_start = 10 MINUTES
/datum/round_event_control/supermatter_surge/canSpawnEvent()
@@ -37,7 +37,7 @@
/datum/round_event/supermatter_surge/start()
var/obj/machinery/power/supermatter_crystal/supermatter = GLOB.main_supermatter_engine
var/power_proportion = supermatter.powerloss_inhibitor/2 // what % of the power goes into matter power, at most 50%
var/power_proportion = supermatter.powerloss_inhibitor * 0.75 // what % of the power goes into matter power, at most 50%
// we reduce the proportion that goes into actual matter power based on powerloss inhibitor
// primarily so the supermatter doesn't tesla the instant these happen
supermatter.matter_power += power * power_proportion
+2 -2
View File
@@ -1,8 +1,8 @@
/datum/round_event_control/supernova
name = "Supernova"
typepath = /datum/round_event/supernova
weight = 10
max_occurrences = 2
weight = 5
max_occurrences = 1
min_players = 2
/datum/round_event/supernova
+31
View File
@@ -0,0 +1,31 @@
/datum/round_event_control/untied_shoes
name = "Untied Shoes"
typepath = /datum/round_event/untied_shoes
weight = 100
max_occurrences = 20
alert_observers = FALSE
/datum/round_event/untied_shoes
fakeable = FALSE
/datum/round_event/untied_shoes/start()
var/budget = rand(5 SECONDS,20 SECONDS)
for(var/mob/living/carbon/C in shuffle(GLOB.alive_mob_list))
if(!C.client)
continue
if(C.stat == DEAD)
continue
if (HAS_TRAIT(C,TRAIT_EXEMPT_HEALTH_EVENTS))
continue
if(!C.shoes || !C.shoes.can_be_tied || C.shoes.tied != SHOES_TIED || C.shoes.lace_time > budget)
continue
if(!is_station_level(C.z) && prob(50))
continue
if(prob(5))
C.shoes.adjust_laces(SHOES_KNOTTED)
budget -= C.shoes.lace_time // doubling up on the budget removal on purpose
else
C.shoes.adjust_laces(SHOES_UNTIED)
budget -= C.shoes.lace_time
if(budget < 5 SECONDS)
return
+4 -5
View File
@@ -3,7 +3,6 @@
typepath = /datum/round_event/vent_clog
weight = 10
max_occurrences = 3
min_players = 25
/datum/round_event/vent_clog
announceWhen = 1
@@ -11,7 +10,7 @@
endWhen = 35
var/interval = 2
var/list/vents = list()
var/randomProbability = 1
var/randomProbability = 0
var/reagentsAmount = 100
var/list/saferChems = list(
/datum/reagent/water,
@@ -92,7 +91,7 @@
var/datum/reagents/R = new/datum/reagents(1000)
R.my_atom = vent
if (prob(randomProbability))
if (randomProbability && prob(randomProbability))
R.add_reagent(get_random_reagent_id(), reagentsAmount)
else
R.add_reagent(pick(saferChems), reagentsAmount)
@@ -106,7 +105,7 @@
name = "Clogged Vents: Threatening"
typepath = /datum/round_event/vent_clog/threatening
weight = 4
min_players = 35
min_players = 15
max_occurrences = 1
earliest_start = 35 MINUTES
@@ -118,7 +117,7 @@
name = "Clogged Vents: Catastrophic"
typepath = /datum/round_event/vent_clog/catastrophic
weight = 2
min_players = 45
min_players = 25
max_occurrences = 1
earliest_start = 45 MINUTES