// Config values, don't change these randomly
/// Configuring "roundstart" type rulesets
#define ROUNDSTART "roundstart"
/// Configuring "light midround" type rulesets
#define LIGHT_MIDROUND "light_midround"
/// Configuring "heavy midround" type rulesets
#define HEAVY_MIDROUND "heavy_midround"
/// Configuring "latejoin" type rulesets
#define LATEJOIN "latejoin"
/// Lower end for how many of a ruleset type can be selected
#define LOW_END "low"
/// Upper end for how many of a ruleset type can be selected
#define HIGH_END "high"
/// Population threshold for ruleset types - below this, only a quarter of the low to high end is used
#define HALF_RANGE_POP_THRESHOLD "half_range_pop_threshold"
/// Population threshold for ruleset types - below this, only a half of the low to high end is used
#define FULL_RANGE_POP_THRESHOLD "full_range_pop_threshold"
/// Round time threshold for which a ruleset type will be selected
#define TIME_THRESHOLD "time_threshold"
/// Lower end for cooldown duration for a ruleset type
#define EXECUTION_COOLDOWN_LOW "execution_cooldown_low"
/// Upper end for cooldown duration for a ruleset type
#define EXECUTION_COOLDOWN_HIGH "execution_cooldown_high"
// Tiers, don't change these randomly
/// Tier 0, no antags at all
#define DYNAMIC_TIER_GREEN 0
/// Tier 1, low amount of antags
#define DYNAMIC_TIER_LOW 1
/// Tier 2, medium amount of antags
#define DYNAMIC_TIER_LOWMEDIUM 2
/// Tier 3, high amount of antags
#define DYNAMIC_TIER_MEDIUMHIGH 3
/// Tier 4, maximum amount of antags
#define DYNAMIC_TIER_HIGH 4
// Ruleset flags
/// Ruleset denotes that it involves an outside force spawning in to attack the station
#define RULESET_INVADER (1<<0)
/// Multiple high impact rulesets cannot be selected unless we're at the highest tier
#define RULESET_HIGH_IMPACT (1<<1)
/// Ruleset can be configured by admins (implements /proc/configure_ruleset)
/// Only implemented for midrounds currently
#define RULESET_ADMIN_CONFIGURABLE (1<<2)
/// Applied to rulesets which intentionally share a pref_flag with another rulesets
/// Denotes multiple rulesets which abide by the same preference, but are each a variation of some base ruleset
#define RULESET_VARIATION (1<<3)
/// Href for cancelling midround rulesets before execution
#define MIDROUND_CANCEL_HREF(...) "(CANCEL)"
/// Href for rerolling midround rulesets before execution
#define MIDROUND_REROLL_HREF(rulesets) "[length(rulesets) \
? "(SOMETHING ELSE)" \
: "([span_tooltip("There are no more rulesets to pick from!", "NOTHING ELSE")])"\
]"
#define RULESET_CONFIG_CANCEL "Cancel"
/// Used to easily get a config entry for a dynamic ruleset or tier
#define GET_DYNAMIC_CONFIG(some_typepath, var_name) SSdynamic.get_config_value(some_typepath, NAMEOF(some_typepath, ##var_name), some_typepath::##var_name)