Skip to content

v1.6.6 — Visibility Parity: forest concealment (#153) - #154

Merged
CosmicCEO merged 1 commit into
mainfrom
v1.6.6-visibility-parity
Sep 24, 2026
Merged

CosmicCEO merged 1 commit into
mainfrom
v1.6.6-visibility-parity

Conversation

@CosmicCEO

Copy link
Copy Markdown
Owner

Summary

  • Fixes Forest concealment (calcVis) wired behind wrong hiddenMines gate; guest never gets it at all #153: calcVis/forestVis (forest concealment) were already a faithful oracle port and already wired into rendering, but gated behind hiddenMines/fogState, which forest concealment has nothing to do with in the oracle -- so it never fired by default, and never fired at all for a joined guest regardless of settings.
  • calcVis now accepts fogState: FogState?; a missing one means "no fog contribution," not "skip forest concealment." Fixes host, solo, and join uniformly through the shared visFraction/calcVis render call sites.
  • Also softens the sea/river water textures (too bold/high-contrast per live feedback).

Fifth 1.6.x theme (man/tank/boat/sound + now visibility), milestone 27.

Test plan

  • swift test -- 956/956 (known pre-existing timing/port-contention flakes, confirmed unrelated)
  • xcodebuild test -scheme "Bolo 2026" -- 148/148
  • New: 4 calcVis-with-nil-fogState differential unit tests
  • New: 2 offscreen pixel-diff render tests confirming the actual reported symptom (graduated concealment, working with no fogState)

🤖 Generated with Claude Code

https://claude.ai/code/session_01XdDqxCXosBhuFQWVkuCzrz

calcVis/forestVis were already a faithful oracle port, wired into rendering,
but visFraction short-circuited to 1.0 unless hiddenMines was on and a
fogState existed -- forest concealment is core, always-on oracle gameplay,
unrelated to the separate Hidden Mines fog-of-war feature. Compounding it,
only the host render path ever supplied a fogState at all, so a joined
guest never got any concealment even when the host did.

Fix: calcVis accepts fogState: FogState?, treating a missing one as "no fog
contribution" while still applying the forest term and distance floor.
visFraction's useForestTerm path (tank + walking builder, matching the
oracle's own per-sprite-kind calcvis() choice) always calls calcVis now.
Fixes host, solo, and join uniformly through the same call sites.

Also softens the sea/river water textures (too bold/high-contrast per live
feedback) -- halved each texture's color delta from its base fill.

148/148 Bolo 2026Tests, 956/956 SwiftPM tests green (known pre-existing
timing/port-contention flakes, confirmed unrelated and pass in isolation).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XdDqxCXosBhuFQWVkuCzrz
@CosmicCEO
CosmicCEO merged commit 47b437c into main Sep 24, 2026
0 of 2 checks passed
@CosmicCEO
CosmicCEO deleted the v1.6.6-visibility-parity branch September 28, 2026 13: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.

Forest concealment (calcVis) wired behind wrong hiddenMines gate; guest never gets it at all

2 participants