Skip to content

fix(maps): hide overlays when native maps close - #431

Merged
Mat4m0 merged 1 commit into
feat/elite-skill-mapsfrom
fix/map-overlay-close
Sep 12, 2026
Merged

fix(maps): hide overlays when native maps close#431
Mat4m0 merged 1 commit into
feat/elite-skill-mapsfrom
fix/map-overlay-close

Conversation

@Mat4m0

@Mat4m0 Mat4m0 commented Sep 11, 2026

Copy link
Copy Markdown
Owner

What changed

Closing the World Map now removes elite skill and cartography overlays when native closing starts. Mission Map and Compass readers also reject frames being destroyed, and closing the Mission Map clears its skill preview.

Why

The native map could start fading without another projection event, leaving overlays visible over gameplay. Read the native display flag on every presentation read and wait for a fresh complete projection when reopening.

Invariant

Certify the native close routine that clears the display flag before its fade. Refuse a changed routine or mismatched operands and increment the transform ABI. The downloaded official client remains unchanged; optional Maps certification fails closed. This withdraws overlays immediately rather than synthesizing an opacity fade.

Delivery

Third layer of stack #432, targeting feat/elite-skill-maps (#430). Follow with #433#434. Recommend Beta consideration because this changes native certification and shared Maps visibility.

Verification

  • Exact-client transform and display-state mutation/refusal checks passed against the retained official artifact.

  • Executable WASM tests cover closing without another projection event, fresh geometry on reopening, and frame destruction before removal.

  • Matthias confirmed the closing fix works in-game.

  • pnpm check passed on the rebased complete stack.

  • Application verification passed on dcb8c9d3, including runtime and packaged-app checks.

  • I kept this pull request focused.

  • I ran the relevant checks.

  • I did not add game binaries, credentials, diagnostics, or private traffic.

  • I updated documentation when behavior or an invariant changed.

@Mat4m0
Mat4m0 force-pushed the fix/map-overlay-close branch from 7c1a2ee to dcb8c9d Compare September 12, 2026 08:50
@Mat4m0
Mat4m0 merged commit 7352ed1 into main Sep 12, 2026
11 checks passed
@Mat4m0
Mat4m0 deleted the fix/map-overlay-close branch September 12, 2026 09:13
Mat4m0 added a commit that referenced this pull request Sep 12, 2026
## What changed

Add a Toolbox-derived elite capture catalogue and a capture plan for
each character. The catalogue contains 925 capture entries for 302
skills; a plan stores saved skills and one selected boss.

## Why

The map planner needs one reproducible location source and one owner for
saved capture choices. Missing coordinates remain notes-only locations.

## Invariant

Named actions are validated and written atomically in order. Accounts
and characters stay separate. Learned status remains a live observation.
The importer pins the reviewed upstream sources and preserves their
attribution.

## Delivery

First layer of stack #432, targeting `main`. Merge before #430#431#433#434. Recommend Beta consideration for the complete feature
because it adds persisted player choices. This layer adds no map UI or
native observation.

## Verification

- Catalogue identity, tracking invariants, concurrent writes, character
isolation, corrupt-file recovery, and preload transport are covered by
executable tests.
- `pnpm check` passed on the rebased complete stack.
- Rebased onto `c04c7736`, including the website dependency audit fixes
from #436.

- [Application
verification](https://github.com/Mat4m0/gwonmac/actions/runs/34684307645)
passed on `04ce3689`, including runtime and packaged-app checks.

- [x] I kept this pull request focused.
- [x] I ran the relevant checks.
- [x] I did not add game binaries, credentials, diagnostics, or private
traffic.
- [x] I updated documentation when behavior or an invariant changed.
Mat4m0 added a commit that referenced this pull request Sep 12, 2026
## What changed

Find an elite skill, choose a boss, and see its known capture locations
on the World Map and supported Mission Map. The planner adds search,
filters, skill previews, tracking, and a capture-location entry point
from Builds.

## Why

Players can plan a capture without switching between a build inspector,
a wiki list, and the map. This layer uses individual skill markers and
explicit navigation between results and details; #434 refines that
interface into inline details and character-specific filters.

## Invariant

Boss coordinates are static capture references, never live boss
tracking. Missing coordinates do not create guessed markers. Native
projection remains within the existing certified Maps boundary;
unsupported readings hide markers. Skill descriptions and artwork come
from the installed client.

## Delivery

Second layer of stack #432, targeting `feat/elite-capture-data` (#429).
Follow with #431#433#434. Recommend Beta consideration for the
complete Maps integration before release.

## Verification

- Projection, tracking, keyboard navigation, and UI tests cover the map
planner.
- Browser exploration covered filtering, tracking, previews, and marker
navigation; Matthias exercised the real-game feature.
- `pnpm check` passed on the rebased complete stack.
- Rebased onto `c04c7736`, including the dependency audit fixes.

- [Application
verification](https://github.com/Mat4m0/gwonmac/actions/runs/34684307411)
passed on `30208d00`, including runtime and packaged-app checks.

- [x] I kept this pull request focused.
- [x] I ran the relevant checks.
- [x] I did not add game binaries, credentials, diagnostics, or private
traffic.
- [x] I updated documentation when behavior or an invariant changed.
Mat4m0 added a commit that referenced this pull request Sep 12, 2026
## What changed

Builds and Elite Skills show familiar energy, adrenaline, activation,
recharge, sacrifice, and overcast icons in one compact cost row. Hover
labels and accessible names preserve the meaning of each value.

## Why

Large text blocks made skill costs and timings harder to scan. Both
interfaces reuse the same skill detail component and locally bundled
Guild Wars Wiki Tango icons, with source attribution and the complete
GFDL notice in the packaged notices.

## Invariant

Fractional timings, health percentages, zero values, unavailable
descriptions, and player-only restrictions keep their meaning. Skill
artwork and descriptions still come from the installed client; this adds
no remote asset request.

## Delivery

Fourth layer of stack #432, targeting `fix/map-overlay-close` (#431).
Follow with #434. Include in the feature Developer Build; no separate
app release is needed for this presentation layer.

## Verification

- Component tests cover icon labels and numeric values; the catalogue
browser test covers accessible recharge information.
- Browser exploration covered both visual themes.
- `pnpm check` passed on the rebased complete stack.

- [Application
verification](https://github.com/Mat4m0/gwonmac/actions/runs/34684309363)
passed on `485f2416`, including runtime and packaged-app checks.

- [x] I kept this pull request focused.
- [x] I ran the relevant checks.
- [x] I did not add game binaries, credentials, diagnostics, or private
traffic.
- [x] I updated documentation when behavior or an invariant changed.
Mat4m0 added a commit that referenced this pull request Sep 12, 2026
## What changed

Find and save elite skills without losing the map or opening a separate
details screen. Ten profession icons toggle classes individually; Select
all, Deselect all, Current class (primary and secondary), and Hide
already learned provide quick filtering. A star saves a matching skill
directly from its result row.

## Why

The previous panel hid too much context, repeated nearby icons, and
could let filters or results consume all available space. Details now
expand within the list. The panel starts at roughly 80% screen height,
resizes from its bottom grip, reserves visible skill rows, and collapses
to one small control row.

## Invariant

- Search, professions, region, saved/learned filters, explicit skill
focus, map visibility, panel expansion, and height belong to the
existing per-character capture plan. Current class follows
secondary-profession changes; manual selections and an empty selection
stay fixed.
- Ordered saves preserve rapid edits and cannot replace another
character's state. Existing plans keep their saved skills and boss; an
absent height uses the default. Learned status remains a live
observation.
- Inspection and quick saving do not filter markers or select a boss.
Show only this skill and Set target remain explicit actions. Both maps
share filters and retain independent visibility switches.
- Touching copies of the same skill in the same map area share one icon
and list all possible bosses. Different skills and distant locations
remain separate. The active boss retains its source position.
- Map icons display the inner artwork with a thin edge; client assets
remain unchanged. Hover cards support nearby skill choices, keyboard
focus, reduced motion, and immediate removal on native map close.

## Delivery

Final layer of stack #432, targeting `feat/skill-detail-icons` (#433).
Merge order: #429#430#431#433#434. Recommend Beta
consideration for persisted preferences and the full native Maps
integration before release; no release is requested here.

## Verification

- `pnpm check` passed after rebasing onto main `c04c7736`.
- Focused tests cover restart, character isolation, secondary
professions, empty selections, queued saves, quick saving, inline
details, resizing/cancellation, shared-spawn deduplication, and native
preview removal.
- Real browser exploration used 301 fixture skills, both themes, small
windows, dragging, keyboard resizing, independent scrolling, and all
four Sorrow's Furnace boss names. The production app was built and
opened using the existing game cache; Matthias approved the in-game
result.
- Main now includes #436, which fixes the dependency audit blocker from
the earlier runs.

- [Application
verification](https://github.com/Mat4m0/gwonmac/actions/runs/34684312052)
passed on `496b27c2`, including runtime and packaged-app checks.

- [x] I kept this pull request focused.
- [x] I ran the relevant checks.
- [x] I did not add game binaries, credentials, diagnostics, or private
traffic.
- [x] I updated documentation when behavior or an invariant changed.
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.

1 participant