Restore Arena Campaign scoring progression (#110) - #112
Merged
Conversation
This was referenced Aug 15, 2026
Pair disabled readiness with a zero threshold, refresh the casual typed-rule import for every campaign card, and restore the player's archived profile after play. Fixes #110
themuffinator
force-pushed
the
codex/issue-110-arena-warmup-scoring
branch
from
August 15, 2026 10:58
c5181ca to
712e4a3
Compare
Owner
Author
|
Final hosted validation for 712e4a3: 21 checks passed, 4 failed, 0 pending. Commit Validation and ARM64 Cross Build passed completely, including ASan/UBSan and both universal2 assembly/package/smoke jobs. The four red macOS Push Verification jobs exactly reproduce the renderer-default-safety baseline on main and are unrelated to the Arena campaign rule change. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
si_warmupReadyPercentagewhenever Arena disables ready-up.g_matchProfile, forced Arena through the casual authored-CVar adapter, and explicitly refreshed that import for every card.Root cause
Arena set
si_useReady=falsebut left the clean-profile ready threshold at0.51. The typed casual adapter therefore produced disabled readiness with a 5100-basis-point threshold. Validation rejected field 4/reason 17, and every WARMUP→COUNTDOWN transition was refused. The intro still unlocked combat, but the server remained in infinite WARMUP, where scoring is intentionally suppressed.A second lifecycle defect was adjacent: the multiplayer object survives map shutdown, so two consecutive DM-backed campaign cards could reuse the first card's committed rule snapshot unless the profile selector was explicitly refreshed.
Validation
python tools/tests/validation_hardening.pypython tools/tests/arena_campaign.pycompetitiveprofile was restored after both matchescompetitive rules rejecteddiagnostics and no fatal engine diagnosticsFixes #110