fix!(lua.endpoints): skip-opened tag packs are a dead zone — no-op picks, missing dealt hand, hangs that break the session

Đang mở
#233 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
lua, python
Lĩnh vực
api, backend, game-dev

Hướng nghiên cứu

Bắt đầu với pack endpoint và cách xử lý BLIND_SELECT của nó, sau đó so sánh skip-opened flow với shop pack flow xung quanh SMODS_BOOSTER_OPENED, dựa trên hành vi được mô tả trong #198, #199 và #202. Chạy lại các seeds được dẫn bằng differential harness hoặc repro bundles; hoàn thành nghĩa là các picks hợp lệ được áp dụng, Arcana/Spectral packs phát targeting hand của chúng hoặc thất bại một cách rõ ràng, và stacked tag packs không bị treo hoặc làm hỏng việc xử lý các event tiếp theo.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Description

Packs opened from skip tags at BLIND_SELECT misbehave over RPC in three ways.
All three are fine in the vanilla UI; all three were reproduced with a
differential harness replaying identical traces on a vanilla-faithful simulator.

  1. Silent no-op pick. pack returned success for a pick from a skip-opened
    Celestial pack, but nothing happened on live: the pack still had all its
    cards, the planet was unused, no hand was leveled (seed LS5HXL62, step 28).
  2. No dealt hand for Arcana/Spectral tag packs. Vanilla deals a targeting
    hand when these packs open; over RPC at blind select, both sides sit in
    SMODS_BOOSTER_OPENED but live's hand stays empty with an untouched deck
    (seeds LSMWZ3M4 step 21, LSDTVEW6 step 27). In our census across ~400
    organic games, every skip-opened tag pack either diverged or had to be
    truncated — the flow is a complete dead zone.
  3. Hang with lasting damage. Stacked tag packs (Double Tag + a pack tag)
    hang the pack endpoint — related to but distinct from the triggers in #198
    and #199. Worse, after the hang the game's event processing stays broken for
    the remainder of the run even though gamestate still reads consistent
    (probed directly: a round-end mechanic that reliably fired in a fresh session
    stopped firing after the hang, with all RNG streams still matching).

Suspected root cause: the SMODS booster flow at blind select diverges from the
shop pack flow the endpoints were built around (cf. #202, which covers use/sell
during SMODS_BOOSTER_OPENED).

Impact

Skipping a blind for a pack tag is one of the stronger lines in the game.
Over RPC it currently either loses the pack contents silently (worst case for a
bot: the pick "succeeds") or kills the session. Our harness had to veto all
pack-tag skips to keep runs alive, which removes a real strategy from any bot
that wants to be faithful.

Suggested Fix

  • pack should verify the pick actually applied (pack card count / target area
    changed) before reporting success, and return an error otherwise.
  • Deal the targeting hand for Arcana/Spectral tag packs the way the shop flow
    does, or reject the open with a clear error instead of hanging.

Repro bundles available for all seeds cited.

Ngôn ngữ chính
Python
Star
80
Fork
23
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của coder/balatrobot

Tất cả issue của coder/balatrobot

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.