fix!: --fast corrupts deck order after a Tarot/Spectral pack closes — every later deal silently wrong
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Riproduci il problema con il differential harness descritto nel report, confrontando tracce di azioni identiche a velocità normale e con --fast. Ispeziona la sequenza di chiusura del pack e restituzione della mano e confrontane l’ordine con il riferimento vanilla in misc_functions.lua:209. Il lavoro è completato quando i deal successivi rimangono fedeli al seed dopo i pack Tarot o Spectral e l’ordine di visualizzazione dei pack non risulta alterato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Under --fast (10× speed), SMODS deal events race. When an Arcana or Spectral
pack's dealt targeting hand returns to the deck at pack close, the live deck
order ends up permuted relative to vanilla. From that point on, every
subsequent deal in the run is silently wrong — no error, no visible glitch,
just different cards drawn than the seed should produce.
We caught this with a differential harness replaying identical action traces on
a vanilla-faithful simulator: divergence always appeared at the first re-deal
after a pack close, and the same traces replay byte-exact at normal speed. A
cosmetic form of the same race also shows up as scrambled pack display order
(contents correct as a multiset, order permuted).
Note the corruption usually hides: the game's seeded shuffles re-sort by
sort_id before shuffling (misc_functions.lua:209 in the vanilla dump), which
heals most deck-order drift — so the bug only bites between pack close and the
next full shuffle, which is exactly when it's hardest to notice.
Impact
Any run made with --fast stops being vanilla-faithful at its first tarot or
spectral pack: draws after the pack differ from what the seed produces at normal
speed, so results are not comparable across speed settings and not reproducible
against the real game. For benchmark data this is a silent validity problem.
We retired --fast entirely for validation work and run --no-audio only.
Suggested Fix
Sequence the pack-close hand-return like vanilla regardless of G.SETTINGS.GAMESPEED
(the return events need to complete in deck order before control returns), or —
as a stopgap — document that --fast is not seed-faithful once a Tarot/Spectral
pack has been opened.
- Lingua principale
- Python
- Stelle
- 80
- Fork
- 23
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di coder/balatrobot
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
coder/balatrobot#244 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
coder/balatrobot#243 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
coder/balatrobot#235 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
coder/balatrobot#233 ·
-
fix!(lua): G.GAME state survives menu+start — a previous run's won flag marks later losses as winsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
coder/balatrobot#232 ·
Tutte le issue di coder/balatrobot
Issue simili
-
[MOVIE]: Airport '77 (1977)Apertarequest-theme
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
LizardByte/ThemerrDB#9883 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Project-MONAI/MONAI#9258 ·
I maintainer di solito rispondono entro 3 giorni
-
catalog:deprecation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
surendranb/free-inference#31 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
fritzprix/libr-agent#2612 ·
I maintainer di solito rispondono entro 1 giorno
-
needs-triage presubmit-gate
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
gke-labs/kube-agents#5001 ·
I maintainer di solito rispondono entro 1 giorno