Merge pull request #15730 from Putnam3145/event-rebalance

Rebalances some events
This commit is contained in:
deathride58
2022-07-30 11:27:08 -04:00
committed by GitHub
13 changed files with 43 additions and 24 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")
+1 -1
View File
@@ -6,7 +6,7 @@
/datum/round_event_control/brain_trauma/canSpawnEvent(var/players_amt, var/gamemode)
if(!..()) return FALSE
var/list/enemy_roles = list("Medical Doctor","Chief Medical Officer","Paramedic")
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()
+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
+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