mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 21:35:42 +00:00
ally-watcher-views
When a faction watched an ally's battle, the Eagle layer fell back to Shardok's generic observer (factionId == -1) view because Shardok only emitted filtered views for battle participants. The observer view treats every unit as an enemy, so visibility was knowledge-gated: battalion stats (threshold 50) usually crept above the floor while hero stats (threshold 75) lagged behind, leaving watchers with battalion data but no hero stats for their own allies' heroes. Eagle now sends the set of watcher faction IDs in NewGameRequest, and Shardok emits one filtered view per watcher in GetUpdates. Each watcher's view treats their allied participants' units as fully visible (hero stats, hidden actions like meteor casts, hidden-target coords) while non-allied units fall back to observer-style knowledge gating. The watcher path is implemented via new GameStateFilteredForPlayerWithAllies and ActionResultFilteredForPlayerWithAllies overloads that take alliedPids explicitly, plus a new ShardokEngine::FilterNewResultsForWatcher that drives them. The IsHiddenFromOpponents predicate now treats the actor's allies as self for visibility purposes. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…
The file is empty.
Languages
Scala
44.5%
C++
19.9%
C#
16.6%
Starlark
10.1%
Go
3.5%
Other
5.3%