From 6f3249524e9775d45c8f8657208bf4b887de2f59 Mon Sep 17 00:00:00 2001 From: goetchstone Date: Sat, 1 Aug 2026 06:23:56 -0400 Subject: [PATCH] Sea + land palette matched to the original (owner's gameplay screenshots) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The owner supplied screenshots of real BattleShips Pro play. Against them our sea was a uniform mid-blue and our land an olive slate; the original is HIGH CONTRAST — near-black navy in the deep channels against bright teal-green shoals ringing every island, over lush green land. That contrast is what makes the lanes legible at a glance in the original, and it only became worth doing now that the true per-cell seabed ships (WaterMask.depth): with real deep/shallow/pink bands to paint, a wider value range finally has structure to describe. - WATER_RAMP spans a much wider range (shoal 0x3f8f7d -> deep 0x102a44 -> abyss 0x06121f) while staying desaturated, so hulls still out-saturate the sea (the competitive-readability rule is unchanged). - LAND_BASE to the original's grass green (0x2f5730). - Seabed band alphas raised so the bands read through the base grade. Render-only; no sim or determinism impact. 1,249 tests green; lint clean. Co-Authored-By: Claude Fable 5 --- packages/client/src/render/land.ts | 7 ++++--- packages/client/src/render/theme.ts | 21 +++++++++++++-------- packages/client/src/render/world.ts | 6 +++--- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/packages/client/src/render/land.ts b/packages/client/src/render/land.ts index 1fe24ed..36d8ad4 100644 --- a/packages/client/src/render/land.ts +++ b/packages/client/src/render/land.ts @@ -54,12 +54,13 @@ import { COAST_ROCK, COAST_SAND, SHADOW, mix, scale, shade } from './theme.js'; // --------------------------------------------------------------------------- /** - * Base land color (a warm, slightly green earth tone, darker than the bright - * lanes so the water reads as the playfield and the land as the backdrop). + * Base land color — the original's lush grass green (owner's screenshots of + * real play show green islands with rock cliffs, not the olive-slate we had). + * Kept darker than the shoal band so water still reads as the playfield. * The lit/shade variants come from theme.shade so the land obeys the same * top-left key light as every structure. */ -export const LAND_BASE = 0x3c4a3a; +export const LAND_BASE = 0x2f5730; /** * Width (world units) of the sand/rock coast band drawn along the waterline. diff --git a/packages/client/src/render/theme.ts b/packages/client/src/render/theme.ts index 051b034..cc0d8ca 100644 --- a/packages/client/src/render/theme.ts +++ b/packages/client/src/render/theme.ts @@ -48,16 +48,21 @@ export const GOLD = 0xf4c95c; /** * Water depth ramp, shallowest (coast) -> deepest (open sea). The world * renderer interpolates along this by a per-pixel/per-band "depth" value so - * the sea reads as layered rather than a single flat fill. All cool navies, - * deliberately DESATURATED and a touch darker than the old ramp so the warm - * red / cool blue team hulls read as the brightest, most saturated things on - * screen (competitive readability: the eye goes to the ships, not the sea). + * the sea reads as layered rather than a single flat fill. + * + * Retuned 2026-07-31 against the owner's gameplay screenshots of the ORIGINAL: + * the real map is HIGH CONTRAST — near-black navy in the deep channels against + * bright teal-green shoals ringing every island — not the uniform mid-blue we + * had. That contrast is what makes the lanes legible at a glance, and it only + * became worth doing once the true per-cell seabed shipped (WaterMask.depth). + * Hulls still out-saturate the sea: the ramp stays desaturated, it just spans + * a much wider value range. */ export const WATER_RAMP: readonly number[] = [ - 0x2c7e9e, // shallow / near coast — muted teal - 0x1f6c8c, // mid - 0x16526f, // deep open sea (where ships sail — a real blue, not a void) - 0x0b3047, // abyss / map edge + 0x3f8f7d, // shallow / near coast — the original's bright teal-green shoal + 0x24606a, // mid + 0x102a44, // deep open sea — the original reads near-black navy here + 0x06121f, // abyss / map edge ]; /** Foam / wave-crest highlight stroked on the lighter water bands. */ diff --git a/packages/client/src/render/world.ts b/packages/client/src/render/world.ts index d70ebc3..54b7adb 100644 --- a/packages/client/src/render/world.ts +++ b/packages/client/src/render/world.ts @@ -144,11 +144,11 @@ export function waterDepth01( export function seabedBandTint(band: number): { color: number; alpha: number } | null { switch (band) { case 1: - return { color: WATER_RAMP[2] ?? 0x16526f, alpha: 0.5 }; // deep channel + return { color: WATER_RAMP[2] ?? 0x102a44, alpha: 0.72 }; // deep channel — near-black navy case 2: - return { color: WATER_RAMP[0] ?? 0x2c7e9e, alpha: 0.42 }; // shoal / shallow + return { color: WATER_RAMP[0] ?? 0x3f8f7d, alpha: 0.6 }; // shoal — bright teal-green case 3: - return { color: 0x6f7fa8, alpha: 0.34 }; // pink passable shallows + return { color: 0x5f7fa0, alpha: 0.45 }; // pink passable shallows default: return null; }