Reduced dynamic budget at low player count (#28300)

* Reduced dynamic budget at low player count

* Tests

* One linty boy

* I was, uh, making sure the test worked. That definitely wasn't a typo. <.<
This commit is contained in:
Charlie Nolan
2025-02-16 08:02:22 +00:00
committed by GitHub
parent 7721d032b8
commit 9d227fe4aa
3 changed files with 36 additions and 2 deletions
+1
View File
@@ -21,6 +21,7 @@
#include "test_components.dm"
#include "test_config_sanity.dm"
#include "test_crafting_lists.dm"
#include "test_dynamic_budget.dm"
#include "test_elements.dm"
#include "test_emotes.dm"
#include "test_init_sanity.dm"
+15
View File
@@ -0,0 +1,15 @@
/datum/game_test/dynamic_budget/Run()
var/datum/game_mode/dynamic/dynamic = new()
// If calculate_budgets updates, and these need to change to match, the pattern is to put an assert at the beginning and end of each distinct range of players (with 100 here standing in for a non-existent upper limit).
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(20), 15, "Lowpop budget incorrect.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(21), 16.5, "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.")
TEST_ASSERT_EQUAL(dynamic.calculate_budget(100), 100, "Highpop budget incorrect.")