Files
2025-02-05 06:19:18 +00:00

43 lines
45 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><base href="../../"><link rel="stylesheet" href="dmdoc.css"><title>/datum/game_mode/dynamic - /tg/ Station 13</title></head><body><header><a href="index.html">/tg/ Station 13</a> - <a href="index.html#modules">Modules</a> - <a href="index.html#types">Types</a><a href="datum/game_mode/dynamic.html#var">Var Details</a> - <a href="datum/game_mode/dynamic.html#proc">Proc Details</a></header><main><h1>dynamic <aside>/<a href="datum.html">datum</a>/<a href="datum/game_mode.html">game_mode</a>/<a href="datum/game_mode/dynamic.html">dynamic</a></aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L22"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 22"></a></h1><table class="summary" cellspacing="0"><tr><td colspan="2"><h2>Vars</h2></td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/candidates">candidates</a></th><td>List of candidates used on roundstart rulesets.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/configuration">configuration</a></th><td>Dynamic configuration, loaded on pre_setup</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/current_midround_rulesets">current_midround_rulesets</a></th><td>The last drafted midround rulesets (without the current one included).
Used for choosing different midround injections.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/current_rules">current_rules</a></th><td>Rules that are processed, rule_process is called on the rules in this list.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/executed_rules">executed_rules</a></th><td>List of executed rulesets.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/forced_injection">forced_injection</a></th><td>When TRUE GetInjectionChance returns 100.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/forced_latejoin_rule">forced_latejoin_rule</a></th><td>Forced ruleset to be executed for the next latejoin.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/high_impact_ruleset_executed">high_impact_ruleset_executed</a></th><td>If a high impact ruleset was executed. Only one will run at a time in most circumstances.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/higher_injection_chance">higher_injection_chance</a></th><td>The chance of injection increase when above higher_injection_chance_minimum_threat</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/higher_injection_chance_minimum_threat">higher_injection_chance_minimum_threat</a></th><td>If above this threat, increase the chance of injection</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/hijacked_random_event_injection_chance">hijacked_random_event_injection_chance</a></th><td>The amount to inject when a round event is hijacked</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/initial_round_start_budget">initial_round_start_budget</a></th><td>The initial round start budget for logging purposes, set once at the beginning of the round.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/last_midround_injection_attempt">last_midround_injection_attempt</a></th><td>The time when the last midround injection was attempted, whether or not it was successful</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/latejoin_delay_max">latejoin_delay_max</a></th><td>The maximum time the recurring latejoin ruleset timer is allowed to be.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/latejoin_delay_min">latejoin_delay_min</a></th><td>The minimum time the recurring latejoin ruleset timer is allowed to be.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/latejoin_injection_cooldown">latejoin_injection_cooldown</a></th><td>When world.time is over this number the mode tries to inject a latejoin ruleset.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/latejoin_rules">latejoin_rules</a></th><td>List of latejoin rules used for selecting the rules.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/lower_injection_chance">lower_injection_chance</a></th><td>The chance of injection decrease when above lower_injection_chance_minimum_threat</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/lower_injection_chance_minimum_threat">lower_injection_chance_minimum_threat</a></th><td>If below this threat, decrease the chance of injection</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/mid_round_budget">mid_round_budget</a></th><td>Set at the beginning of the round. Spent by midrounds and latejoins.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/midround_delay_max">midround_delay_max</a></th><td>The maximum time the recurring midround ruleset timer is allowed to be.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/midround_delay_min">midround_delay_min</a></th><td>The minimum time the recurring midround ruleset timer is allowed to be.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/midround_injection_cooldown">midround_injection_cooldown</a></th><td>When world.time is over this number the mode tries to inject a midround ruleset.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/midround_injection_timer_id">midround_injection_timer_id</a></th><td>The timer ID for the cancellable midround rule injection</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/midround_rules">midround_rules</a></th><td>List of midround rules used for selecting the rules.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/only_ruleset_executed">only_ruleset_executed</a></th><td>If a only ruleset has been executed.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/peaceful_percentage">peaceful_percentage</a></th><td>How many percent of the rounds are more peaceful.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/pop_per_requirement">pop_per_requirement</a></th><td></td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/random_event_hijack_maximum">random_event_hijack_maximum</a></th><td>The maximum amount of time for antag random events to be hijacked.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/random_event_hijack_minimum">random_event_hijack_minimum</a></th><td>The minimum amount of time for antag random events to be hijacked.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/random_event_hijacked">random_event_hijacked</a></th><td>Whether or not a random event has been hijacked this midround cycle</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/round_start_budget">round_start_budget</a></th><td>Set at the beginning of the round. Spent by the mode to &quot;purchase&quot; rules. Everything else goes in the postround budget.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/roundstart_pop_ready">roundstart_pop_ready</a></th><td>Number of players who were ready on roundstart.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/roundstart_split_curve_centre">roundstart_split_curve_centre</a></th><td>A number between -5 and +5.
Equivalent to threat_curve_centre, but for the budget split.
A negative value will weigh towards midround rulesets, and a positive
value will weight towards roundstart ones.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/roundstart_split_curve_width">roundstart_split_curve_width</a></th><td>A number between 0.5 and 4.
Equivalent to threat_curve_width, but for the budget split.
Higher value will favour more variance in splits and
lower value rounds closer to the average.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/shown_threat">shown_threat</a></th><td>The amount of threat shown on the piece of paper.
Can differ from the actual threat amount.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/snapshots">snapshots</a></th><td>A list of recorded &quot;snapshots&quot; of the round, stored in the dynamic.json log</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/threat_curve_centre">threat_curve_centre</a></th><td>A number between -5 and +5.
A negative value will give a more peaceful round and
a positive value will give a round with higher threat.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/threat_curve_width">threat_curve_width</a></th><td>A number between 0.5 and 4.
Higher value will favour extreme rounds and
lower value rounds closer to the average.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/threat_level">threat_level</a></th><td>The &quot;threat cap&quot;, threat shouldn't normally go above this and is used in ruleset calculations</td></tr><tr><th><a href="datum/game_mode/dynamic.html#var/threat_log">threat_log</a></th><td>Running information about the threat. Can store text or datum entries.</td></tr><tr><td colspan="2"><h2>Procs</h2></td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/admin_cancel_midround">admin_cancel_midround</a></th><td>Fired when an admin cancels the current midround injection.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/admin_different_midround">admin_different_midround</a></th><td>Fired when an admin requests a different midround injection.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/check_blocking">check_blocking</a></th><td>Checks if a type in blocking_list is in rule_list.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/configure_ruleset">configure_ruleset</a></th><td>Apply configurations to rule.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/create_threat">create_threat</a></th><td>Generate threat and increase the threat_level if it goes beyond, capped at 100</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/dynamic_log">dynamic_log</a></th><td>Log to messages and to the game</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/execute_midround_latejoin_rule">execute_midround_latejoin_rule</a></th><td>Mainly here to facilitate delayed rulesets. All midround/latejoin rulesets are executed with a timered callback to this proc.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/execute_midround_rule">execute_midround_rule</a></th><td>Fired after admins do not cancel a midround injection.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/execute_roundstart_rule">execute_roundstart_rule</a></th><td>Mainly here to facilitate delayed rulesets. All roundstart rulesets are executed with a timered callback to this proc.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/generate_budgets">generate_budgets</a></th><td>Generates the midround and roundstart budgets</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/generate_threat">generate_threat</a></th><td>Generates the threat level using lorentz distribution and assigns peaceful_percentage.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/get_injection_chance">get_injection_chance</a></th><td>Gets the chance for latejoin injection, the dry_run argument is only used for forced injection.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/get_midround_injection_chance">get_midround_injection_chance</a></th><td>Gets the chance for midround injection, the dry_run argument is only used for forced injection.
Usually defers to the latejoin injection chance.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/init_rulesets">init_rulesets</a></th><td>Returns a list of the provided rulesets.
Configures their variables to match config.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/lorentz_to_amount">lorentz_to_amount</a></th><td>Turns the value generated by lorentz distribution to number between 0 and 100.
Used for threat level and splitting the budgets.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/new_snapshot">new_snapshot</a></th><td>Creates a new snapshot with the given rulesets chosen, and writes to the JSON output.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/pick_latejoin_rule">pick_latejoin_rule</a></th><td>Executes a random latejoin ruleset from the list of drafted rules.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/pick_midround_rule">pick_midround_rule</a></th><td>Executes a random midround ruleset from the list of drafted rules.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/pick_ruleset">pick_ruleset</a></th><td>From a list of rulesets, returns one based on weight and availability.
Mutates the list that is passed into it to remove invalid rules.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/picking_roundstart_rule">picking_roundstart_rule</a></th><td>Initializes the round start ruleset provided to it. Returns how much threat to spend.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/picking_specific_rule">picking_specific_rule</a></th><td>An experimental proc to allow admins to call rules on the fly or have rules call other rules.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/refund_threat">refund_threat</a></th><td>Refund threat, but no more than threat_level.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/remove_from_list">remove_from_list</a></th><td>Removes type from the list</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/rigged_roundstart">rigged_roundstart</a></th><td>A simple roundstart proc used when dynamic_forced_roundstart_ruleset has rules in it.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/setup_rulesets">setup_rulesets</a></th><td>Initializes the internal ruleset variables</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/spend_midround_budget">spend_midround_budget</a></th><td>Expend midround threat, can't fall under 0.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/spend_roundstart_budget">spend_roundstart_budget</a></th><td>Expend round start threat, can't fall under 0.</td></tr><tr><th><a href="datum/game_mode/dynamic.html#proc/update_log">update_log</a></th><td>Updates the log for the current snapshots.</td></tr></table><h2 id="var">Var Details</h2><h3 id="var/candidates"><aside class="declaration">var </aside>candidates <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L58"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 58"></a></h3><p>List of candidates used on roundstart rulesets.</p><h3 id="var/configuration"><aside class="declaration">var </aside>configuration <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L74"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 74"></a></h3><p>Dynamic configuration, loaded on pre_setup</p><h3 id="var/current_midround_rulesets"><aside class="declaration">var </aside>current_midround_rulesets <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L151"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 151"></a></h3><p>The last drafted midround rulesets (without the current one included).
Used for choosing different midround injections.</p><h3 id="var/current_rules"><aside class="declaration">var </aside>current_rules <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L60"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 60"></a></h3><p>Rules that are processed, rule_process is called on the rules in this list.</p><h3 id="var/executed_rules"><aside class="declaration">var </aside>executed_rules <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L62"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 62"></a></h3><p>List of executed rulesets.</p><h3 id="var/forced_injection"><aside class="declaration">var </aside>forced_injection <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L64"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 64"></a></h3><p>When TRUE GetInjectionChance returns 100.</p><h3 id="var/forced_latejoin_rule"><aside class="declaration">var </aside>forced_latejoin_rule <aside> /<a href="datum.html">datum</a>/<a href="datum/dynamic_ruleset.html">dynamic_ruleset</a>/latejoin</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L66"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 66"></a></h3><p>Forced ruleset to be executed for the next latejoin.</p><h3 id="var/high_impact_ruleset_executed"><aside class="declaration">var </aside>high_impact_ruleset_executed <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L70"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 70"></a></h3><p>If a high impact ruleset was executed. Only one will run at a time in most circumstances.</p><h3 id="var/higher_injection_chance"><aside class="declaration">var </aside>higher_injection_chance <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L98"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 98"></a></h3><p>The chance of injection increase when above higher_injection_chance_minimum_threat</p><h3 id="var/higher_injection_chance_minimum_threat"><aside class="declaration">var </aside>higher_injection_chance_minimum_threat <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L95"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 95"></a></h3><p>If above this threat, increase the chance of injection</p><h3 id="var/hijacked_random_event_injection_chance"><aside class="declaration">var </aside>hijacked_random_event_injection_chance <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L141"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 141"></a></h3><p>The amount to inject when a round event is hijacked</p><h3 id="var/initial_round_start_budget"><aside class="declaration">var </aside>initial_round_start_budget <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L38"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 38"></a></h3><p>The initial round start budget for logging purposes, set once at the beginning of the round.</p><h3 id="var/last_midround_injection_attempt"><aside class="declaration">var </aside>last_midround_injection_attempt <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L138"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 138"></a></h3><p>The time when the last midround injection was attempted, whether or not it was successful</p><h3 id="var/latejoin_delay_max"><aside class="declaration">var </aside>latejoin_delay_max <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L83"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 83"></a></h3><p>The maximum time the recurring latejoin ruleset timer is allowed to be.</p><h3 id="var/latejoin_delay_min"><aside class="declaration">var </aside>latejoin_delay_min <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L80"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 80"></a></h3><p>The minimum time the recurring latejoin ruleset timer is allowed to be.</p><h3 id="var/latejoin_injection_cooldown"><aside class="declaration">var </aside>latejoin_injection_cooldown <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L77"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 77"></a></h3><p>When world.time is over this number the mode tries to inject a latejoin ruleset.</p><h3 id="var/latejoin_rules"><aside class="declaration">var </aside>latejoin_rules <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L43"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 43"></a></h3><p>List of latejoin rules used for selecting the rules.</p><h3 id="var/lower_injection_chance"><aside class="declaration">var </aside>lower_injection_chance <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L104"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 104"></a></h3><p>The chance of injection decrease when above lower_injection_chance_minimum_threat</p><h3 id="var/lower_injection_chance_minimum_threat"><aside class="declaration">var </aside>lower_injection_chance_minimum_threat <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L101"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 101"></a></h3><p>If below this threat, decrease the chance of injection</p><h3 id="var/mid_round_budget"><aside class="declaration">var </aside>mid_round_budget <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L35"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 35"></a></h3><p>Set at the beginning of the round. Spent by midrounds and latejoins.</p><h3 id="var/midround_delay_max"><aside class="declaration">var </aside>midround_delay_max <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L92"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 92"></a></h3><p>The maximum time the recurring midround ruleset timer is allowed to be.</p><h3 id="var/midround_delay_min"><aside class="declaration">var </aside>midround_delay_min <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L89"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 89"></a></h3><p>The minimum time the recurring midround ruleset timer is allowed to be.</p><h3 id="var/midround_injection_cooldown"><aside class="declaration">var </aside>midround_injection_cooldown <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L86"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 86"></a></h3><p>When world.time is over this number the mode tries to inject a midround ruleset.</p><h3 id="var/midround_injection_timer_id"><aside class="declaration">var </aside>midround_injection_timer_id <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L147"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 147"></a></h3><p>The timer ID for the cancellable midround rule injection</p><h3 id="var/midround_rules"><aside class="declaration">var </aside>midround_rules <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L45"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 45"></a></h3><p>List of midround rules used for selecting the rules.</p><h3 id="var/only_ruleset_executed"><aside class="declaration">var </aside>only_ruleset_executed <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L72"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 72"></a></h3><p>If a only ruleset has been executed.</p><h3 id="var/peaceful_percentage"><aside class="declaration">var </aside>peaceful_percentage <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L68"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 68"></a></h3><p>How many percent of the rounds are more peaceful.</p><h3 id="var/pop_per_requirement"><aside class="declaration">var </aside>pop_per_requirement <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L54"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 54"></a></h3><ul>
<li><h1 id="pop-range-per-requirement">Pop range per requirement.</h1>
<pre><code>* 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+
* If it is six the range is:
* 0-5, 6-11, 12-17, 18-23, 24-29, 30-35, 36-41, 42-47, 48-53, 54+
* If it is seven the range is:
* 0-6, 7-13, 14-20, 21-27, 28-34, 35-41, 42-48, 49-55, 56-62, 63+
</code></pre>
</li>
</ul><h3 id="var/random_event_hijack_maximum"><aside class="declaration">var </aside>random_event_hijack_maximum <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L132"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 132"></a></h3><p>The maximum amount of time for antag random events to be hijacked.</p><h3 id="var/random_event_hijack_minimum"><aside class="declaration">var </aside>random_event_hijack_minimum <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L129"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 129"></a></h3><p>The minimum amount of time for antag random events to be hijacked.</p><h3 id="var/random_event_hijacked"><aside class="declaration">var </aside>random_event_hijacked <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L144"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 144"></a></h3><p>Whether or not a random event has been hijacked this midround cycle</p><h3 id="var/round_start_budget"><aside class="declaration">var </aside>round_start_budget <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L32"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 32"></a></h3><p>Set at the beginning of the round. Spent by the mode to &quot;purchase&quot; rules. Everything else goes in the postround budget.</p><h3 id="var/roundstart_pop_ready"><aside class="declaration">var </aside>roundstart_pop_ready <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L56"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 56"></a></h3><p>Number of players who were ready on roundstart.</p><h3 id="var/roundstart_split_curve_centre"><aside class="declaration">var </aside>roundstart_split_curve_centre <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L120"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 120"></a></h3><p>A number between -5 and +5.
Equivalent to threat_curve_centre, but for the budget split.
A negative value will weigh towards midround rulesets, and a positive
value will weight towards roundstart ones.</p><h3 id="var/roundstart_split_curve_width"><aside class="declaration">var </aside>roundstart_split_curve_width <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L126"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 126"></a></h3><p>A number between 0.5 and 4.
Equivalent to threat_curve_width, but for the budget split.
Higher value will favour more variance in splits and
lower value rounds closer to the average.</p><h3 id="var/shown_threat"><aside class="declaration">var </aside>shown_threat <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L157"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 157"></a></h3><p>The amount of threat shown on the piece of paper.
Can differ from the actual threat amount.</p><h3 id="var/snapshots"><aside class="declaration">var </aside>snapshots <aside> /list/datum/dynamic_snapshot</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L135"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 135"></a></h3><p>A list of recorded &quot;snapshots&quot; of the round, stored in the dynamic.json log</p><h3 id="var/threat_curve_centre"><aside class="declaration">var </aside>threat_curve_centre <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L109"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 109"></a></h3><p>A number between -5 and +5.
A negative value will give a more peaceful round and
a positive value will give a round with higher threat.</p><h3 id="var/threat_curve_width"><aside class="declaration">var </aside>threat_curve_width <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L114"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 114"></a></h3><p>A number between 0.5 and 4.
Higher value will favour extreme rounds and
lower value rounds closer to the average.</p><h3 id="var/threat_level"><aside class="declaration">var </aside>threat_level <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L29"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 29"></a></h3><p>The &quot;threat cap&quot;, threat shouldn't normally go above this and is used in ruleset calculations</p><h3 id="var/threat_log"><aside class="declaration">var </aside>threat_log <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L41"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 41"></a></h3><p>Running information about the threat. Can store text or datum entries.</p><h2 id="proc">Proc Details</h2><h3 id="proc/admin_cancel_midround"><aside class="declaration">proc </aside>admin_cancel_midround<aside>(/<a href="mob.html">mob</a>/user, timer_id) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/ruleset_picking.dm#L95"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/ruleset_picking.dm 95"></a></aside></h3><p>Fired when an admin cancels the current midround injection.</p><h3 id="proc/admin_different_midround"><aside class="declaration">proc </aside>admin_different_midround<aside>(/<a href="mob.html">mob</a>/user, timer_id) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/ruleset_picking.dm#L106"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/ruleset_picking.dm 106"></a></aside></h3><p>Fired when an admin requests a different midround injection.</p><h3 id="proc/check_blocking"><aside class="declaration">proc </aside>check_blocking<aside>(/list/blocking_list, /list/rule_list) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L713"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 713"></a></aside></h3><p>Checks if a type in blocking_list is in rule_list.</p><h3 id="proc/configure_ruleset"><aside class="declaration">proc </aside>configure_ruleset<aside>(/<a href="datum.html">datum</a>/<a href="datum/dynamic_ruleset.html">dynamic_ruleset</a>/ruleset) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L767"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 767"></a></aside></h3><p>Apply configurations to rule.</p><h3 id="proc/create_threat"><aside class="declaration">proc </aside>create_threat<aside>(gain) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L784"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 784"></a></aside></h3><p>Generate threat and increase the threat_level if it goes beyond, capped at 100</p><h3 id="proc/dynamic_log"><aside class="declaration">proc </aside>dynamic_log<aside>(text) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L823"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 823"></a></aside></h3><p>Log to messages and to the game</p><h3 id="proc/execute_midround_latejoin_rule"><aside class="declaration">proc </aside>execute_midround_latejoin_rule<aside>(sent_rule) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/ruleset_picking.dm#L69"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/ruleset_picking.dm 69"></a></aside></h3><p>Mainly here to facilitate delayed rulesets. All midround/latejoin rulesets are executed with a timered callback to this proc.</p><h3 id="proc/execute_midround_rule"><aside class="declaration">proc </aside>execute_midround_rule<aside>(/<a href="datum.html">datum</a>/<a href="datum/dynamic_ruleset.html">dynamic_ruleset</a>/rule) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/ruleset_picking.dm#L51"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/ruleset_picking.dm 51"></a></aside></h3><p>Fired after admins do not cancel a midround injection.</p><h3 id="proc/execute_roundstart_rule"><aside class="declaration">proc </aside>execute_roundstart_rule<aside>(sent_rule) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L552"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 552"></a></aside></h3><p>Mainly here to facilitate delayed rulesets. All roundstart rulesets are executed with a timered callback to this proc.</p><h3 id="proc/generate_budgets"><aside class="declaration">proc </aside>generate_budgets<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L330"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 330"></a></aside></h3><p>Generates the midround and roundstart budgets</p><h3 id="proc/generate_threat"><aside class="declaration">proc </aside>generate_threat<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L317"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 317"></a></aside></h3><p>Generates the threat level using lorentz distribution and assigns peaceful_percentage.</p><h3 id="proc/get_injection_chance"><aside class="declaration">proc </aside>get_injection_chance<aside>(dry_run) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L667"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 667"></a></aside></h3><p>Gets the chance for latejoin injection, the dry_run argument is only used for forced injection.</p><h3 id="proc/get_midround_injection_chance"><aside class="declaration">proc </aside>get_midround_injection_chance<aside>(dry_run) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L697"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 697"></a></aside></h3><p>Gets the chance for midround injection, the dry_run argument is only used for forced injection.
Usually defers to the latejoin injection chance.</p><h3 id="proc/init_rulesets"><aside class="declaration">proc </aside>init_rulesets<aside>(ruleset_subtype) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L435"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 435"></a></aside></h3><p>Returns a list of the provided rulesets.
Configures their variables to match config.</p><h3 id="proc/lorentz_to_amount"><aside class="declaration">proc </aside>lorentz_to_amount<aside>(x) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L799"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 799"></a></aside></h3><p>Turns the value generated by lorentz distribution to number between 0 and 100.
Used for threat level and splitting the budgets.</p><h3 id="proc/new_snapshot"><aside class="declaration">proc </aside>new_snapshot<aside>(/<a href="datum.html">datum</a>/<a href="datum/dynamic_ruleset.html">dynamic_ruleset</a>/ruleset_chosen) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic_logging.dm#L87"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic_logging.dm 87"></a></aside></h3><p>Creates a new snapshot with the given rulesets chosen, and writes to the JSON output.</p><h3 id="proc/pick_latejoin_rule"><aside class="declaration">proc </aside>pick_latejoin_rule<aside>(/list/drafted_rules) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/ruleset_picking.dm#L59"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/ruleset_picking.dm 59"></a></aside></h3><p>Executes a random latejoin ruleset from the list of drafted rules.</p><h3 id="proc/pick_midround_rule"><aside class="declaration">proc </aside>pick_midround_rule<aside>(/list/drafted_rules) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/ruleset_picking.dm#L33"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/ruleset_picking.dm 33"></a></aside></h3><p>Executes a random midround ruleset from the list of drafted rules.</p><h3 id="proc/pick_ruleset"><aside class="declaration">proc </aside>pick_ruleset<aside>(/list/drafted_rules) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/ruleset_picking.dm#L5"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/ruleset_picking.dm 5"></a></aside></h3><p>From a list of rulesets, returns one based on weight and availability.
Mutates the list that is passed into it to remove invalid rules.</p><h3 id="proc/picking_roundstart_rule"><aside class="declaration">proc </aside>picking_roundstart_rule<aside>(/<a href="datum.html">datum</a>/<a href="datum/dynamic_ruleset.html">dynamic_ruleset</a>/<a href="datum/dynamic_ruleset/roundstart.html">roundstart</a>/ruleset, scaled_times, forced) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L533"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 533"></a></aside></h3><p>Initializes the round start ruleset provided to it. Returns how much threat to spend.</p><h3 id="proc/picking_specific_rule"><aside class="declaration">proc </aside>picking_specific_rule<aside>(ruletype, forced) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L565"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 565"></a></aside></h3><p>An experimental proc to allow admins to call rules on the fly or have rules call other rules.</p><h3 id="proc/refund_threat"><aside class="declaration">proc </aside>refund_threat<aside>(regain) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L780"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 780"></a></aside></h3><p>Refund threat, but no more than threat_level.</p><h3 id="proc/remove_from_list"><aside class="declaration">proc </aside>remove_from_list<aside>(/list/type_list, type) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L706"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 706"></a></aside></h3><p>Removes type from the list</p><h3 id="proc/rigged_roundstart"><aside class="declaration">proc </aside>rigged_roundstart<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L452"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 452"></a></aside></h3><p>A simple roundstart proc used when dynamic_forced_roundstart_ruleset has rules in it.</p><h3 id="proc/setup_rulesets"><aside class="declaration">proc </aside>setup_rulesets<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L429"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 429"></a></aside></h3><p>Initializes the internal ruleset variables</p><h3 id="proc/spend_midround_budget"><aside class="declaration">proc </aside>spend_midround_budget<aside>(cost) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L794"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 794"></a></aside></h3><p>Expend midround threat, can't fall under 0.</p><h3 id="proc/spend_roundstart_budget"><aside class="declaration">proc </aside>spend_roundstart_budget<aside>(cost) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic.dm#L790"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic.dm 790"></a></aside></h3><p>Expend round start threat, can't fall under 0.</p><h3 id="proc/update_log"><aside class="declaration">proc </aside>update_log<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/gamemodes/dynamic/dynamic_logging.dm#L72"><img src="git.png" width="16" height="16" title="code/game/gamemodes/dynamic/dynamic_logging.dm 72"></a></aside></h3><p>Updates the log for the current snapshots.</p></main><footer>tgstation.dme <a href="https://github.com/evilew/GS13-Citadel/tree/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e">e8e0068</a> (master) — <a href="https://github.com/SpaceManiac/SpacemanDMM/blob/master/crates/dmdoc/README.md">dmdoc 1.9.0</a></footer></body></html>