fix(ui-map): repaint fog as layered overpaint; rename to visibleHyperspace
Tests · UI / test (push) Waiting to run
Tests · UI / test (push) Waiting to run
The Phase 29 fog overlay rendered as a handful of random arc segments instead of a clean union of holes around LOCAL planets — Pixi v8's `Graphics.cut()` does not reliably subtract multiple overlapping circles from a base path. Replaced the cut-based approach with a layered overpaint: a fog-tinted rectangle fills the world, then opaque background- coloured circles are painted on top for every visibility circle. The natural rendering order unions overlapping circles for free — no geometry, no `cut()` quirks, one extra fill per circle. Renamed the toggle from `visibilityFog` to `visibleHyperspace` across the store, i18n strings, popover, tests, and docs. The overlay still implements the visual "fog" effect at the renderer level (FOG_COLOR, setVisibilityFog, getMapFog); the toggle is named after the player-facing concept it controls — the portion of the map that is visible (intelligence/scan coverage) — rather than the obscured part. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -185,11 +185,11 @@ bottom-tabs bar.
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
data-testid="map-toggles-visibility-fog"
|
||||
checked={store.mapToggles.visibilityFog}
|
||||
onchange={(e) => setFlag("visibilityFog", e)}
|
||||
data-testid="map-toggles-visible-hyperspace"
|
||||
checked={store.mapToggles.visibleHyperspace}
|
||||
onchange={(e) => setFlag("visibleHyperspace", e)}
|
||||
/>
|
||||
<span>{i18n.t("game.map.toggles.visibility_fog")}</span>
|
||||
<span>{i18n.t("game.map.toggles.visible_hyperspace")}</span>
|
||||
</label>
|
||||
<div class="wrap-row">
|
||||
<span class="wrap-label">{i18n.t("game.map.toggles.wrap.label")}</span>
|
||||
|
||||
Reference in New Issue
Block a user