Implements dynamic latespawns (#31005)

* first pass

* Latespawning now works for implied rulesets

* Prevent team antags from getting latespawns.

* calculate_budget() formula no longer gives half-points

* fix mindflayer ruleset not updating banned_jobs

* update dynamic budget unit test for new formula

* tweak latespawn budget threshold

* remove autotraitor ruleset

* use the right logging proc this time

* oops

* Logging tweaks. log_dynamic can now output to log_debug.

* Logging tweaks. Don't log crew join/cryo when latespawns are disabled.

* Fix rare double antag spawn with implied ruleset trigger.

* add heretic ruleset

* prevent dynamic antag_budget from going negative.

* implement add/remove_owner_to_gamemode() for changeling datum
This commit is contained in:
chuga-git
2026-02-17 21:16:19 +00:00
committed by GitHub
parent cc8da4d650
commit 1391e4ff4a
5 changed files with 138 additions and 81 deletions
+2 -2
View File
@@ -5,10 +5,10 @@
TEST_ASSERT_EQUAL(dynamic.calculate_budget(0), 7, "Flat budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(4), 7, "Flat budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(5), 7.5, "Lowpop budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(5), 8, "Lowpop budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(20), 15, "Lowpop budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(21), 16.5, "Midpop budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(21), 17, "Midpop budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(30), 30, "Midpop budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(31), 31, "Highpop budget incorrect.")