diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 2e6353b8a8..eac7347479 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -6,10 +6,6 @@ GLOBAL_VAR_INIT(dynamic_latejoin_delay_max, (30 MINUTES)) GLOBAL_VAR_INIT(dynamic_midround_delay_min, (10 MINUTES)) GLOBAL_VAR_INIT(dynamic_midround_delay_max, (30 MINUTES)) -GLOBAL_VAR_INIT(dynamic_event_delay_min, (10 MINUTES)) -GLOBAL_VAR_INIT(dynamic_event_delay_max, (30 MINUTES)) // this is on top of regular events, so can't be quite as often - - // -- Roundstart injection delays GLOBAL_VAR_INIT(dynamic_first_latejoin_delay_min, (2 MINUTES)) GLOBAL_VAR_INIT(dynamic_first_latejoin_delay_max, (30 MINUTES)) @@ -58,7 +54,7 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) // Threat logging vars /// Starting threat level, for things that increase it but can bring it back down. var/initial_threat_level = 0 - /// Target threat level right now. Events and antags will try to keep the round at this level. + /// Target threat level right now. Antags will try to keep the round at this level. var/threat_level = 0 /// The current antag threat. Recalculated every time a ruletype starts or ends. var/threat = 0 @@ -80,8 +76,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) var/list/latejoin_rules = list() /// List of midround rules used for selecting the rules. var/list/midround_rules = list() - /// List of events used for reducing threat without causing antag injection (necessarily). - var/list/events = list() /** # Pop range per requirement. * If the value is five the range is: * 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-54, 45+ @@ -119,8 +113,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) var/latejoin_injection_cooldown = 0 /// When world.time is over this number the mode tries to inject a midround ruleset. var/midround_injection_cooldown = 0 - /// When wor.dtime is over this number the mode tries to do an event. - var/event_injection_cooldown = 0 /// When TRUE GetInjectionChance returns 100. var/forced_injection = FALSE /// Forced ruleset to be executed for the next latejoin. @@ -184,7 +176,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) dat += "
Injection Timers: ([storyteller.get_injection_chance(TRUE)]% chance)
" dat += "Latejoin: [(latejoin_injection_cooldown-world.time)>60*10 ? "[round((latejoin_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(latejoin_injection_cooldown-world.time)/10] seconds"] \[Now!\]
" dat += "Midround: [(midround_injection_cooldown-world.time)>60*10 ? "[round((midround_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(midround_injection_cooldown-world.time)/10] seconds"] \[Now!\]
" - dat += "Event: [(event_injection_cooldown-world.time)>60*10 ? "[round((event_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(event_injection_cooldown-world.time)/10] seconds"] \[Now!\]
" usr << browse(dat.Join(), "window=gamemode_panel;size=500x500") /datum/game_mode/dynamic/Topic(href, href_list) @@ -213,10 +204,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) midround_injection_cooldown = 0 forced_injection = TRUE message_admins("[key_name(usr)] forced a midround injection.", 1) - else if (href_list["forceevent"]) - event_injection_cooldown = 0 - // events always happen anyway - message_admins("[key_name(usr)] forced an event.", 1) else if (href_list["threatlog"]) show_threatlog(usr) else if (href_list["stacking_limit"]) @@ -374,8 +361,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) generate_threat() storyteller.start_injection_cooldowns() - SSevents.frequency_lower = storyteller.event_frequency_lower // 6 minutes by default - SSevents.frequency_upper = storyteller.event_frequency_upper // 20 minutes by default log_game("DYNAMIC: Dynamic Mode initialized with a Threat Level of... [threat_level]!") initial_threat_level = threat_level return TRUE @@ -394,9 +379,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) if ("Midround") if (ruleset.weight) midround_rules += ruleset - if("Event") - if(ruleset.weight) - events += ruleset for(var/mob/dead/new_player/player in GLOB.player_list) if(player.ready == PLAYER_READY_TO_PLAY && player.mind) roundstart_pop_ready++ @@ -593,8 +575,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) latejoin_rules = remove_from_list(latejoin_rules, rule.type) else if(rule.ruletype == "Midround") midround_rules = remove_from_list(midround_rules, rule.type) - else if(rule.ruletype == "Event") - events = remove_from_list(events,rule.type) addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_midround_latejoin_rule, rule), rule.delay) return TRUE @@ -703,17 +683,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) picking_midround_latejoin_rule(drafted_rules) // get_injection_chance can do things on fail - if(event_injection_cooldown < world.time) - SSblackbox.record_feedback("tally","dynamic",1,"Attempted event injections") - event_injection_cooldown = storyteller.get_event_cooldown() + world.time - message_admins("DYNAMIC: Doing event injection.") - log_game("DYNAMIC: Doing event injection.") - update_playercounts() - var/list/drafted_rules = storyteller.event_draft() - if(drafted_rules.len > 0) - SSblackbox.record_feedback("tally","dynamic",1,"Successful event injections") - picking_midround_latejoin_rule(drafted_rules) - /// Updates current_players. /datum/game_mode/dynamic/proc/update_playercounts() current_players[CURRENT_LIVING_PLAYERS] = list() diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm deleted file mode 100644 index 1ee226875b..0000000000 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ /dev/null @@ -1,454 +0,0 @@ -/datum/dynamic_ruleset/event - ruletype = "Event" - var/typepath // typepath of the event - var/triggering - var/earliest_start = 20 MINUTES - -/datum/dynamic_ruleset/event/get_blackbox_info() - var/list/ruleset_data = list() - ruleset_data["name"] = name - ruleset_data["rule_type"] = ruletype - ruleset_data["cost"] = total_cost - ruleset_data["weight"] = weight - ruleset_data["scaled_times"] = scaled_times - ruleset_data["event_type"] = typepath - ruleset_data["population_tier"] = indice_pop - return ruleset_data - -/datum/dynamic_ruleset/event/execute() - var/datum/round_event/E = new typepath() - E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) - // E.control = src // can't be done! we just don't use events that require these, those can be from_ghost almost always - - testing("[time2text(world.time, "hh:mm:ss")] [E.type]") - deadchat_broadcast("[name] has just been triggered by dynamic!") - log_game("Random Event triggering: [name] ([typepath])") - - return E - -/datum/dynamic_ruleset/event/ready(forced = FALSE) - if (!forced) - if(earliest_start >= world.time-SSticker.round_start_time) - return FALSE - var/job_check = 0 - if (enemy_roles.len > 0) - for (var/mob/M in mode.current_players[CURRENT_LIVING_PLAYERS]) - if (M.stat == DEAD) - continue // Dead players cannot count as opponents - if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles)) - job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it - - var/threat = round(mode.threat_level/10) - if (job_check < required_enemies[threat]) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles") - return FALSE - return TRUE - -////////////////////////////////////////////// -// // -// PIRATES // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/pirates - name = "Space Pirates" - config_tag = "pirates" - typepath = /datum/round_event/pirates - antag_flag = ROLE_TRAITOR - enemy_roles = list("AI","Security Officer","Head of Security","Captain") - required_enemies = list(2,2,1,1,0,0,0,0,0,0) - weight = 5 - cost = 10 - earliest_start = 30 MINUTES - blocking_rules = list(/datum/dynamic_ruleset/roundstart/nuclear,/datum/dynamic_ruleset/midround/from_ghosts/nuclear) - requirements = list(70,60,50,50,40,40,40,30,20,15) - property_weights = list("story_potential" = 1, "trust" = 1, "chaos" = 1) - high_population_requirement = 15 - -/datum/dynamic_ruleset/event/pirates/ready(forced = FALSE) - if (!SSmapping.empty_space) - return FALSE - return ..() - -////////////////////////////////////////////// -// // -// SPIDERS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/spiders - name = "Spider Infestation" - config_tag = "spiders" - typepath = /datum/round_event/spider_infestation - enemy_roles = list("AI","Security Officer","Head of Security","Captain") - required_enemies = list(2,2,1,1,0,0,0,0,0,0) - weight = 5 - cost = 10 - requirements = list(70,60,50,50,40,40,40,30,20,15) - high_population_requirement = 15 - property_weights = list("chaos" = 1, "valid" = 1) - -////////////////////////////////////////////// -// // -// CLOGGED VENTS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/ventclog - name = "Clogged Vents" - config_tag = "ventclog" - typepath = /datum/round_event/vent_clog - enemy_roles = list("Chemist","Medical Doctor","Chief Medical Officer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - cost = 2 - weight = 4 - repeatable_weight_decrease = 3 - requirements = list(5,5,5,5,5,5,5,5,5,5) // yes, can happen on fake-extended - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("chaos" = 1, "extended" = 2) - -/datum/dynamic_ruleset/event/ventclog/ready() - if(mode.threat_level > 30 && mode.threat >= 5 && prob(20)) - name = "Clogged Vents: Threatening" - cost = 5 - required_enemies = list(3,3,3,2,2,2,1,1,1,1) - typepath = /datum/round_event/vent_clog/threatening - else if(mode.threat_level > 15 && mode.threat > 15 && prob(30)) - name = "Clogged Vents: Catastrophic" - cost = 15 - required_enemies = list(2,2,1,1,1,1,0,0,0,0) - typepath = /datum/round_event/vent_clog/catastrophic - else - cost = 2 - name = "Clogged Vents: Normal" - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - typepath = /datum/round_event/vent_clog - return ..() - -////////////////////////////////////////////// -// // -// ION STORM // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/ion_storm - name = "Ion Storm" - config_tag = "ion_storm" - typepath = /datum/round_event/ion_storm - enemy_roles = list("Research Director","Captain","Chief Engineer") - required_enemies = list(1,1,0,0,0,0,0,0,0,0) - weight = 4 - // no repeatable weight decrease. too variable to be unfun multiple times in one round - cost = 1 - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("story_potential" = 1, "extended" = 1) - always_max_weight = TRUE - -////////////////////////////////////////////// -// // -// METEORS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/meteor_wave - name = "Meteor Wave" - config_tag = "meteor_wave" - typepath = /datum/round_event/meteor_wave - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Captain","Cyborg") - required_enemies = list(3,3,3,3,3,3,3,3,3,3) - cost = 15 - weight = 3 - earliest_start = 25 MINUTES - repeatable_weight_decrease = 2 - requirements = list(60,50,40,30,30,30,30,30,30,30) - high_population_requirement = 30 - property_weights = list("extended" = -2) - -/datum/dynamic_ruleset/event/meteor_wave/ready() - if(world.time-SSticker.round_start_time > 35 MINUTES && mode.threat_level > 40 && mode.threat >= 25 && prob(30)) - name = "Meteor Wave: Threatening" - cost = 25 - typepath = /datum/round_event/meteor_wave/threatening - else if(world.time-SSticker.round_start_time > 45 MINUTES && mode.threat_level > 50 && mode.threat >= 40 && prob(30)) - name = "Meteor Wave: Catastrophic" - cost = 40 - typepath = /datum/round_event/meteor_wave/catastrophic - else - name = "Meteor Wave: Normal" - cost = 15 - typepath = /datum/round_event/meteor_wave - return ..() - -////////////////////////////////////////////// -// // -// ANOMALIES // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/anomaly_bluespace - name = "Anomaly: Bluespace" - config_tag = "anomaly_bluespace" - typepath = /datum/round_event/anomaly/anomaly_bluespace - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - weight = 2 - repeatable_weight_decrease = 1 - cost = 3 - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/anomaly_flux - name = "Anomaly: Hyper-Energetic Flux" - config_tag = "anomaly_flux" - typepath = /datum/round_event/anomaly/anomaly_flux - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - weight = 2 - repeatable_weight_decrease = 1 - cost = 5 - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/anomaly_gravitational - name = "Anomaly: Gravitational" - config_tag = "anomaly_gravitational" - typepath = /datum/round_event/anomaly/anomaly_grav - weight = 2 - repeatable_weight_decrease = 1 - cost = 3 - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/anomaly_pyroclastic - name = "Anomaly: Pyroclastic" - config_tag = "anomaly_pyroclastic" - typepath = /datum/round_event/anomaly/anomaly_pyro - weight = 2 - repeatable_weight_decrease = 1 - cost = 5 - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") - required_enemies = list(1,1,1,1,1,1,1,1,1,1) - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/anomaly_vortex - name = "Anomaly: Vortex" - config_tag = "anomaly_vortex" - typepath = /datum/round_event/anomaly/anomaly_vortex - weight = 2 - repeatable_weight_decrease = 1 - cost = 5 - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") - required_enemies = list(1,1,1,1,1,1,1,1,1,1) - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = 1) - -////////////////////////////////////////////// -// // -// WOW THAT'S A LOT OF EVENTS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/brand_intelligence - name = "Brand Intelligence" - config_tag = "brand_intelligence" - typepath = /datum/round_event/brand_intelligence - weight = 1 - repeatable_weight_decrease = 1 - cost = 2 - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") - required_enemies = list(1,1,1,1,0,0,0,0,0,0) - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = -1, "chaos" = 1) - -/datum/dynamic_ruleset/event/carp_migration - name = "Carp Migration" - config_tag = "carp_migration" - typepath = /datum/round_event/carp_migration - weight = 7 - repeatable_weight_decrease = 3 - cost = 4 - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - earliest_start = 10 MINUTES - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/communications_blackout - name = "Communications Blackout" - config_tag = "communications_blackout" - typepath = /datum/round_event/communications_blackout - cost = 4 - weight = 2 - repeatable_weight_decrease = 3 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1, "chaos" = 1) - -/datum/dynamic_ruleset/event/processor_overload - name = "Processor Overload" - config_tag = "processor_overload" - typepath = /datum/round_event/processor_overload - cost = 4 - weight = 2 - repeatable_weight_decrease = 3 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1, "chaos" = 1) - always_max_weight = TRUE - -/datum/dynamic_ruleset/event/space_dust - name = "Minor Space Dust" - config_tag = "space_dust" - typepath = /datum/round_event/space_dust - cost = 2 - weight = 2 - repeatable_weight_decrease = 1 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - earliest_start = 0 MINUTES - property_weights = list("extended" = 1) - always_max_weight = TRUE - -/datum/dynamic_ruleset/event/major_dust - name = "Major Space Dust" - config_tag = "major_dust" - typepath = /datum/round_event/meteor_wave/major_dust - cost = 4 - weight = 2 - repeatable_weight_decrease = 1 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/electrical_storm - name = "Electrical Storm" - config_tag = "electrical_storm" - typepath = /datum/round_event/electrical_storm - cost = 1 - weight = 2 - repeatable_weight_decrease = 1 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/heart_attack - name = "Random Heart Attack" - config_tag = "heart_attack" - typepath = /datum/round_event/heart_attack - cost = 3 - weight = 2 - repeatable_weight_decrease = 1 - enemy_roles = list("Medical Doctor","Chief Medical Officer") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) - requirements = list(101,101,101,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1) - always_max_weight = TRUE - -/datum/dynamic_ruleset/event/radiation_storm - name = "Radiation Storm" - config_tag = "radiation_storm" - typepath = /datum/round_event/radiation_storm - cost = 3 - weight = 1 - enemy_roles = list("Chemist","Chief Medical Officer","Geneticist","Medical Doctor","AI","Captain") - required_enemies = list(1,1,1,1,1,1,1,1,1,1) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - property_weights = list("extended" = 1,"chaos" = 1) - -/datum/dynamic_ruleset/event/portal_storm_syndicate - name = "Portal Storm" - config_tag = "portal_storm" - typepath = /datum/round_event/portal_storm/syndicate_shocktroop - cost = 10 - weight = 1 - enemy_roles = list("Head of Security","Security Officer","AI","Captain","Shaft Miner") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) - requirements = list(101,101,101,30,30,30,30,30,30,30) - high_population_requirement = 30 - earliest_start = 30 MINUTES - property_weights = list("teamwork" = 1,"chaos" = 1, "extended" = -1) - -/datum/dynamic_ruleset/event/wormholes - name = "Wormholes" - config_tag = "wormhole" - typepath = /datum/round_event/wormholes - cost = 3 - weight = 4 - enemy_roles = list("AI","Medical Doctor","Station Engineer","Head of Personnel","Captain") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/swarmers - name = "Swarmers" - config_tag = "swarmer" - typepath = /datum/round_event/spawn_swarmer - cost = 10 - weight = 1 - earliest_start = 30 MINUTES - enemy_roles = list("AI","Security Officer","Head of Security","Captain","Station Engineer","Atmos Technician","Chief Engineer") - required_enemies = list(4,4,4,4,3,3,2,2,1,1) - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 5 - property_weights = list("extended" = -2) - -/datum/dynamic_ruleset/event/sentient_disease - name = "Sentient Disease" - config_tag = "sentient_disease" - typepath = /datum/round_event/ghost_role/sentient_disease - enemy_roles = list("Virologist","Chief Medical Officer","Captain","Chemist") - required_enemies = list(2,1,1,1,0,0,0,0,0,0) - required_candidates = 1 - weight = 4 - cost = 5 - requirements = list(30,30,20,20,15,10,10,10,10,5) // yes, it can even happen in "extended"! - property_weights = list("story_potential" = 1, "extended" = 1, "valid" = -2) - high_population_requirement = 5 - -/datum/dynamic_ruleset/event/revenant - name = "Revenant" - config_tag = "revenant" - typepath = /datum/round_event/ghost_role/revenant - enemy_roles = list("Chief Engineer","Station Engineer","Captain","Chaplain","AI") - required_enemies = list(2,1,1,1,0,0,0,0,0,0) - required_candidates = 1 - weight = 4 - cost = 5 - requirements = list(30,30,30,30,20,15,15,15,15,15) - high_population_requirement = 15 - property_weights = list("story_potential" = -2, "extended" = -1) diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm index dd281c456f..ed6cb0ba88 100644 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm @@ -39,9 +39,6 @@ Property weights are added to the config weight of the ruleset. They are: var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_midround_delay_min + GLOB.dynamic_first_midround_delay_max) mode.midround_injection_cooldown = round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time - var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) - mode.event_injection_cooldown = (round(clamp(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time) - /datum/dynamic_storyteller/proc/calculate_threat() var/threat = 0 for(var/datum/antagonist/A in GLOB.antagonists) @@ -99,10 +96,6 @@ Property weights are added to the config weight of the ruleset. They are: var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_midround_delay_max + GLOB.dynamic_midround_delay_min) return round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max)) -/datum/dynamic_storyteller/proc/get_event_cooldown() - var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) - return round(clamp(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) - /datum/dynamic_storyteller/proc/get_latejoin_cooldown() var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_latejoin_delay_max + GLOB.dynamic_latejoin_delay_min) return round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max)) @@ -195,20 +188,6 @@ Property weights are added to the config weight of the ruleset. They are: drafted_rules[rule] = calced_weight return drafted_rules -/datum/dynamic_storyteller/proc/event_draft() - var/list/drafted_rules = list() - for(var/datum/dynamic_ruleset/event/rule in mode.events) - if(rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && (mode.threat_level + 20 - mode.threat) >= rule.cost && rule.ready()) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) - property_weight += rule.property_weights[property] * property_weights[property] - var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult - if(calced_weight > 0) - drafted_rules[rule] = calced_weight - return drafted_rules - - /datum/dynamic_storyteller/chaotic name = "Chaotic" config_tag = "chaotic" @@ -271,9 +250,6 @@ Property weights are added to the config weight of the ruleset. They are: /datum/dynamic_storyteller/random/get_midround_cooldown() return rand(GLOB.dynamic_midround_delay_min/2, GLOB.dynamic_midround_delay_max*2) -/datum/dynamic_storyteller/random/get_event_cooldown() - return rand(GLOB.dynamic_event_delay_min/2, GLOB.dynamic_event_delay_max*2) - /datum/dynamic_storyteller/random/get_latejoin_cooldown() return rand(GLOB.dynamic_latejoin_delay_min/2, GLOB.dynamic_latejoin_delay_max*2) @@ -319,13 +295,6 @@ Property weights are added to the config weight of the ruleset. They are: drafted_rules[rule] = 1 return drafted_rules -/datum/dynamic_storyteller/random/event_draft() - var/list/drafted_rules = list() - for(var/datum/dynamic_ruleset/event/rule in mode.events) - if(rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && rule.ready()) - drafted_rules[rule] = 1 - return drafted_rules - /datum/dynamic_storyteller/story name = "Story" config_tag = "story" @@ -365,7 +334,7 @@ Property weights are added to the config weight of the ruleset. They are: /datum/dynamic_storyteller/no_antag name = "Extended" config_tag = "semiextended" - desc = "No standard antags. Threatening events may still spawn." + desc = "No standard antags." curve_centre = -5 curve_width = 0.5 flags = NO_ASSASSIN | FORCE_IF_WON @@ -377,15 +346,3 @@ Property weights are added to the config weight of the ruleset. They are: /datum/dynamic_storyteller/no_antag/get_injection_chance(dry_run) return 0 - -/datum/dynamic_storyteller/extended - name = "Super Extended" - config_tag = "extended" - desc = "No antags. No dangerous events." - curve_centre = -20 - weight = 0 - curve_width = 0.5 - -/datum/dynamic_storyteller/extended/on_start() - ..() - GLOB.dynamic_forced_extended = TRUE diff --git a/code/modules/antagonists/disease/disease_event.dm b/code/modules/antagonists/disease/disease_event.dm index 4365fd7538..385cee998b 100644 --- a/code/modules/antagonists/disease/disease_event.dm +++ b/code/modules/antagonists/disease/disease_event.dm @@ -3,7 +3,6 @@ name = "Spawn Sentient Disease" typepath = /datum/round_event/ghost_role/sentient_disease weight = 7 - gamemode_blacklist = list("dynamic") max_occurrences = 1 min_players = 5 diff --git a/code/modules/antagonists/revenant/revenant_spawn_event.dm b/code/modules/antagonists/revenant/revenant_spawn_event.dm index 7bb7f1aa76..cb534b6613 100644 --- a/code/modules/antagonists/revenant/revenant_spawn_event.dm +++ b/code/modules/antagonists/revenant/revenant_spawn_event.dm @@ -4,7 +4,6 @@ name = "Spawn Revenant" // Did you mean 'griefghost'? typepath = /datum/round_event/ghost_role/revenant weight = 7 - gamemode_blacklist = list("dynamic") max_occurrences = 1 min_players = 5 diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm index c626799a53..43ac07cba9 100644 --- a/code/modules/antagonists/swarmer/swarmer_event.dm +++ b/code/modules/antagonists/swarmer/swarmer_event.dm @@ -5,7 +5,6 @@ max_occurrences = 1 //Only once okay fam earliest_start = 30 MINUTES min_players = 35 - gamemode_blacklist = list("dynamic") /datum/round_event/spawn_swarmer diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index 395b3b88a5..7f0dedaab6 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -4,7 +4,6 @@ max_occurrences = 1 weight = 5 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_bluespace startWhen = 3 diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index a9a7ed50b9..8047976330 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -5,7 +5,6 @@ min_players = 10 max_occurrences = 5 weight = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_flux startWhen = 10 diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index cabd7face8..7d2bb33889 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -4,7 +4,6 @@ max_occurrences = 5 weight = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_grav diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 8c8fbd6d36..350c8fc946 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -4,7 +4,6 @@ max_occurrences = 5 weight = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_pyro startWhen = 3 diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index 96d084873d..e2a4ceadf3 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -5,7 +5,6 @@ min_players = 20 max_occurrences = 2 weight = 5 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_vortex startWhen = 10 diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 1c88e68377..f0e4bd4a53 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -5,7 +5,6 @@ min_players = 15 max_occurrences = 1 - gamemode_blacklist = list("dynamic") /datum/round_event/brand_intelligence announceWhen = 21 diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 2c553fc8a7..d08e6267a0 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -5,7 +5,6 @@ min_players = 2 earliest_start = 10 MINUTES max_occurrences = 6 - gamemode_blacklist = list("dynamic") /datum/round_event/carp_migration announceWhen = 3 diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm index 45fa1c8a01..cb62e0df22 100644 --- a/code/modules/events/communications_blackout.dm +++ b/code/modules/events/communications_blackout.dm @@ -2,7 +2,6 @@ name = "Communications Blackout" typepath = /datum/round_event/communications_blackout weight = 30 - gamemode_blacklist = list("dynamic") /datum/round_event/communications_blackout announceWhen = 1 diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index 860685c787..eb7edcafbf 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -5,7 +5,6 @@ max_occurrences = 1000 earliest_start = 0 MINUTES alert_observers = FALSE - gamemode_blacklist = list("dynamic") /datum/round_event/space_dust startWhen = 1 @@ -29,4 +28,4 @@ fakeable = FALSE /datum/round_event/sandstorm/tick() - spawn_meteors(10, GLOB.meteorsC) \ No newline at end of file + spawn_meteors(10, GLOB.meteorsC) diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 5e5e318e3c..b850b4db62 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -5,7 +5,6 @@ min_players = 5 weight = 40 alert_observers = FALSE - gamemode_blacklist = list("dynamic") /datum/round_event/electrical_storm var/lightsoutAmount = 1 diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm index b3bc571a4a..8c33e69107 100644 --- a/code/modules/events/heart_attack.dm +++ b/code/modules/events/heart_attack.dm @@ -4,7 +4,6 @@ weight = 20 max_occurrences = 2 min_players = 40 // To avoid shafting lowpop - gamemode_blacklist = list("dynamic") /datum/round_event/heart_attack/start() var/list/heart_attack_contestants = list() @@ -20,4 +19,4 @@ var/mob/living/carbon/human/winner = pickweight(heart_attack_contestants) var/datum/disease/D = new /datum/disease/heart_failure() winner.ForceContractDisease(D, FALSE, TRUE) - announce_to_ghosts(winner) \ No newline at end of file + announce_to_ghosts(winner) diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index b15e9d1f99..c75aff0c4a 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -3,7 +3,6 @@ /datum/round_event_control/ion_storm name = "Ion Storm" typepath = /datum/round_event/ion_storm - gamemode_blacklist = list("dynamic") weight = 15 min_players = 2 diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm index c594d7b3c0..d7d8f1aec8 100644 --- a/code/modules/events/major_dust.dm +++ b/code/modules/events/major_dust.dm @@ -2,7 +2,6 @@ name = "Major Space Dust" typepath = /datum/round_event/meteor_wave/major_dust weight = 8 - gamemode_blacklist = list("dynamic") /datum/round_event/meteor_wave/major_dust wave_name = "space dust" diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index 7763f9950d..515e0fe1b3 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -10,7 +10,6 @@ min_players = 15 max_occurrences = 3 earliest_start = 25 MINUTES - gamemode_blacklist = list("dynamic") /datum/round_event/meteor_wave startWhen = 6 diff --git a/code/modules/events/nightmare.dm b/code/modules/events/nightmare.dm index 6e5512a617..698f5130f1 100644 --- a/code/modules/events/nightmare.dm +++ b/code/modules/events/nightmare.dm @@ -2,7 +2,6 @@ name = "Spawn Nightmare" typepath = /datum/round_event/ghost_role/nightmare max_occurrences = 1 - gamemode_blacklist = list("dynamic") min_players = 20 /datum/round_event/ghost_role/nightmare diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 9ab5e8d517..4cbfb8ae9a 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -5,7 +5,7 @@ max_occurrences = 1 min_players = 10 earliest_start = 30 MINUTES - gamemode_blacklist = list("nuclear","dynamic") + gamemode_blacklist = list("nuclear") /datum/round_event_control/pirates/preRunEvent() if (!SSmapping.empty_space) diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm index 457b5bd4ec..5ef30d0030 100644 --- a/code/modules/events/portal_storm.dm +++ b/code/modules/events/portal_storm.dm @@ -4,7 +4,6 @@ weight = 2 min_players = 15 earliest_start = 30 MINUTES - gamemode_blacklist = list("dynamic") /datum/round_event/portal_storm/syndicate_shocktroop boss_types = list(/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper = 2) diff --git a/code/modules/events/processor_overload.dm b/code/modules/events/processor_overload.dm index 22e475a8ef..6bedce6b4b 100644 --- a/code/modules/events/processor_overload.dm +++ b/code/modules/events/processor_overload.dm @@ -3,7 +3,6 @@ typepath = /datum/round_event/processor_overload weight = 15 min_players = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/processor_overload announceWhen = 1 diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 0a5bedb464..36e16bb2c9 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -2,7 +2,6 @@ name = "Radiation Storm" typepath = /datum/round_event/radiation_storm max_occurrences = 1 - gamemode_blacklist = list("dynamic") /datum/round_event/radiation_storm diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index d1c327e0f7..23ce6ce730 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -2,7 +2,6 @@ name = "Spider Infestation" typepath = /datum/round_event/spider_infestation weight = 5 - gamemode_blacklist = list("dynamic") max_occurrences = 1 min_players = 15 diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index dc672cec45..cd7b23a577 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -3,7 +3,6 @@ typepath = /datum/round_event/vent_clog weight = 10 max_occurrences = 3 - gamemode_blacklist = list("dynamic") min_players = 25 /datum/round_event/vent_clog diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index 1b4716b407..0920c9ccb6 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -4,7 +4,6 @@ max_occurrences = 3 weight = 2 min_players = 2 - gamemode_blacklist = list("dynamic") /datum/round_event/wormholes diff --git a/tgstation.dme b/tgstation.dme index f0ca748803..7bd4824eef 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -737,7 +737,6 @@ #include "code\game\gamemodes\devil\devil agent\devil_agent.dm" #include "code\game\gamemodes\dynamic\dynamic.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_events.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm"