Context
From the same GTM sync: a Capitals campaign where players buy pixels near a country's real capital city, and whoever holds the pixel closest to the true capital's coordinate when the round closes wins. This is a distinct mode from Connection Campaigns (#266) — #266 connects two cities across a live sports fixture; this scores a single fixed target by distance, not a connection between two points.
Proposed approach
Reuses the pixel-to-coordinate math already built for geoToPixel (apps/web/src/lib/pixelMath.ts) — no new geographic infra needed. Add a distance formula: for each player's held pixel(s) in the round, compute distance from that pixel's real-world coordinate to the true capital's coordinate; smallest distance wins.
Likely needs the same (gameId, pixelId) ephemeral-ownership approach being proposed in the War game mode issue (#277), rather than the persistent Mondeto.sol contracts — same "starts from zero, nobody owns it after" requirement probably applies here too.
Acceptance criteria
Context
From the same GTM sync: a Capitals campaign where players buy pixels near a country's real capital city, and whoever holds the pixel closest to the true capital's coordinate when the round closes wins. This is a distinct mode from Connection Campaigns (#266) — #266 connects two cities across a live sports fixture; this scores a single fixed target by distance, not a connection between two points.
Proposed approach
Reuses the pixel-to-coordinate math already built for
geoToPixel(apps/web/src/lib/pixelMath.ts) — no new geographic infra needed. Add a distance formula: for each player's held pixel(s) in the round, compute distance from that pixel's real-world coordinate to the true capital's coordinate; smallest distance wins.Likely needs the same (gameId, pixelId) ephemeral-ownership approach being proposed in the War game mode issue (#277), rather than the persistent Mondeto.sol contracts — same "starts from zero, nobody owns it after" requirement probably applies here too.
Open questions — for @GigaHierz and @ghozzza
Acceptance criteria