mechanic: use upstream's exponential level curve

This commit is contained in:
Dash committed 2026-10-17 15:55:43 +02:00
1 parent f03394f680
commit bec6171483
5 files changed
+3526 -3500

No files matched your search

+3 -2
View File
@@ -59,8 +59,9 @@ class SignalMixin:
def level_up_time(level: int) -> int:
# seconds
return 20 * level * 60
# seconds: 20 minutes for level 1, exponential increase after that.
# floor(x + 0.5) mirrors JS Math.round, unlike Python's round().
return math.floor((20 + 1.15**level) * 60 + 0.5)
class Bar(SignalMixin):
+1173 -1166
View File
File diff suppressed because it is too large. Load diff
+1180 -1173
View File
File diff suppressed because it is too large. Load diff
+1161 -1159
View File
File diff suppressed because it is too large. Load diff
+9
View File
@@ -0,0 +1,9 @@
from pqcli.mechanic import level_up_time
def test_level_up_time_matches_upstream() -> None:
# Math.round((20 + Math.pow(1.15, level)) * 60), pq-web 5cd39f1
assert level_up_time(1) == 1269
assert level_up_time(10) == 1443
assert level_up_time(30) == 5173
assert level_up_time(100) == 70460007