diff --git a/src/client/WebGLFrameBuilder.ts b/src/client/WebGLFrameBuilder.ts index e283e9f79..e7d99cc1f 100644 --- a/src/client/WebGLFrameBuilder.ts +++ b/src/client/WebGLFrameBuilder.ts @@ -134,10 +134,11 @@ export class WebGLFrameBuilder { const spawnTile = p.state.spawnTile; if (spawnTile === undefined) continue; const isSelf = me !== null && p.smallID() === me.smallID(); - // myPlayer reads as plain white so the local-player ring is visually - // distinct from any team color; everyone else uses their territory tint. + // myPlayer reads as a near-white with a faint gold/silver tint so the + // local-player ring is visually distinct from any team color; everyone + // else uses their territory tint. const c = isSelf - ? { r: 255, g: 255, b: 255 } + ? { r: 248, g: 218, b: 140 } : p.territoryColor().toRgb(); centers.push({ // spawnTile tracks the player's currently-selected spawn directly — diff --git a/src/client/render/gl/render-settings.json b/src/client/render/gl/render-settings.json index 6a50b7087..ecf9852af 100644 --- a/src/client/render/gl/render-settings.json +++ b/src/client/render/gl/render-settings.json @@ -286,11 +286,11 @@ "spawnOverlay": { "highlightRadius": 9, "highlightAlpha": 1.0, - "selfMinRad": 8, - "selfMaxRad": 24, + "selfMinRad": 10, + "selfMaxRad": 30, "mateMinRad": 5, "mateMaxRad": 14, - "animSpeed": 0.0035, + "animSpeed": 0.005, "gradientInnerEdge": 0.01, "gradientSolidEnd": 0.1 }, diff --git a/src/client/render/gl/shaders/spawn-overlay/spawn-overlay.frag.glsl b/src/client/render/gl/shaders/spawn-overlay/spawn-overlay.frag.glsl index 8e116ebd2..0fc7cba8a 100644 --- a/src/client/render/gl/shaders/spawn-overlay/spawn-overlay.frag.glsl +++ b/src/client/render/gl/shaders/spawn-overlay/spawn-overlay.frag.glsl @@ -80,7 +80,8 @@ void main() { float solidEnd = uGradientStops.y; float alpha = 0.0; if (dist < bMinR) { - // Inner glow: linear ramp from 0 at center to 1 at the ring's inner edge. + // Inner glow: transparent at the center (so your territory shows through) + // ramping up to fully solid at the ring's inner edge. alpha = dist / max(bMinR, 0.001); } else if (t < solidEnd) { alpha = 1.0; @@ -88,8 +89,8 @@ void main() { alpha = 1.0 - (t - solidEnd) / (1.0 - solidEnd); } if (alpha > 0.0) { - // Opacity pulses 35% → 100% in phase with the radius. - alpha *= 0.35 + 0.65 * uBreathRadius; + // Opacity pulses 65% → 100% in phase with the radius. + alpha *= 0.65 + 0.35 * uBreathRadius; result.rgb = mix(result.rgb, color, alpha * (1.0 - result.a)); result.a = result.a + alpha * (1.0 - result.a); }