Skip to content

feat(ocr): read the completion card with layout 1280x720-v10 - #50

Merged
Teakowa merged 2 commits into
mainfrom
feat/settlement-card-layout-v10
Oct 29, 2026
Merged

Teakowa merged 2 commits into
mainfrom
feat/settlement-card-layout-v10

Conversation

@e54-bot

@e54-bot e54-bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Why

The new Bastion HUD (release 26.1030.1) moves clear time, run code, map, difficulty, version, deaths, skips and earned titles onto a 20-second card at the top centre, and hides the right column during it. Measured on development-build screenshots: the in-game HUD still reads, but no ROI covered the card, so completion evidence came back empty. The stock RapidOCR model reads the card crop at 0.999 confidence, so this change adds no model training.

Change

  • Layout 1280x720-v10 adds the settlement_card ROI (16:9 only). 1280x800-v4 is unchanged: there is no 16:10 sample yet, and its card fields stay missing.
  • New parser settlement_card.py: clear time (HH:MM:SS), player, deaths, skips, map and classic variant, difficulty, version, earned titles. An empty — title line gives no titles.
  • Run code accepts the 通关代码 label.
  • Merge order: older sources (stats panel, banner, right panel) win when read; the card fills what they leave empty. real_player falls back to the card's player line.
  • resolve_map is now public in right_panel.py so the card reuses the map matching.
  • Compatibility matrix: v9 replaced by v10, new settlement-card fixture set and settlement-card-v1 producer revision (its minimum game version is recorded when the HUD is released).

Dependencies

Verification

  • pytest: 433 passed. Layout manifest --check and Rust tests pass.
  • compatibility_gate.py: ok. The settlement-card set matches all 9 critical fields, including real_player.
  • With the card parser disabled, the card fixture fails 7 of its fields.

Not covered

  • The only card sample shows 00:00:00, so duration_seconds is proven only for zero. A non-zero real card is needed.
  • Long title lines (up to eight titles) may exceed the ROI width; no sample.
  • real_player comes from the card's localPlayer, which may be a streamer-mode name. It is evidence only.
  • No model retrain or publication.

Adds the settlement_card ROI and parser for the new Bastion HUD: clear time, deaths, skips, map, difficulty, version, run code and earned titles. The stock recognition model reads the card crop at 0.999 confidence, so no model change is made. The 16:10 layout is unchanged until a sample exists.
The new HUD no longer prints the in-game name above the server load, so real_player falls back to the card's player line.
@Teakowa
Teakowa merged commit 3e6e0a2 into main Oct 29, 2026
4 checks passed
@Teakowa
Teakowa deleted the feat/settlement-card-layout-v10 branch October 29, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants