From 3c4304f74549ebf0a92244366da6325a1778ed3d Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Fri, 20 Feb 2026 19:04:00 +0100 Subject: [PATCH] fix(visual): address PR #48 review comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - sound-indicator-visual: D-069 → D-033/D-048 color reference, reconcile medium range S1 (3-8) vs S7 (3-20) contradiction, split dual values in quick-reference table - entity-color-system: D-046 → D-015 for peripheral rendering, tighten cognitive delay wording, add accessibility ticket tracking note - visual-grammar-v01: dialogue max-width corrected from ~70% to 640px per D-076 - the-friend-visual-treatment: D-063 citation title corrected - tell-visual-expression: soften D-024 attribution (axis, not categories) - environmental-text-standards: specify tile unit for terminal visibility - monologue-display-spec: header updated to reflect Sprint 14 inclusion - CHANGELOG: add entries for all 6 Sprint 14 design docs Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 9 +++++++++ docs/design/entity-color-system.md | 6 +++--- docs/design/environmental-text-standards.md | 2 +- docs/design/monologue-display-spec.md | 2 +- docs/design/sound-indicator-visual.md | 7 ++++--- docs/design/tell-visual-expression.md | 2 +- docs/design/the-friend-visual-treatment.md | 2 +- docs/design/visual-grammar-v01.md | 2 +- 8 files changed, 21 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20fd72592..077a89da1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,15 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). ### Added - Monologue display system visual spec — typography, positioning, stacking, priority, fade animation, character color differentiation, 80-char line constraint (#315) +- Entity color system spec — D-033 relationship-to-player mapping, transition animations, color blindness assessment (#304) +- Text display hierarchy spec — 4 content pipelines (dialogue, monologue, observation, environmental) with z-layers and positioning (#316) +- Sound indicator visual design — fog-edge pulse for D-018 three-range sound model with direction encoding and range differentiation (#317) +- THE FRIEND visual treatment spec — 3-phase earned visual detail for Kael Davan and Sera Venn (#318) +- Environmental text visual standards — signage, terminal, and news ticker rendering with bilingual Concordat/Krenn treatment (#334) +- Tell visual/behavioral expression spec — 5 tell categories mapped to 6 Tier 2 behaviors (#251) + +### Fixed +- Visual grammar dialogue max-width corrected from "~70% screen width" to 640px per D-076 ## [v0.1.13] — 2026-02-20 diff --git a/docs/design/entity-color-system.md b/docs/design/entity-color-system.md index e04d0408b..a35fc2021 100644 --- a/docs/design/entity-color-system.md +++ b/docs/design/entity-color-system.md @@ -96,7 +96,7 @@ See `docs/design/the-friend-visual-treatment.md` (#318) for staging details. **Entity in fog (recognized):** If the character recognizes an entity in fog (their knowledge graph identifies them), the insert overlay (z-layer 6) can show a D-033 color glow + faint silhouette feature at ±0.5 tile approximate position. This is insert data, not visual data — the character knows where they were, not where they are. -**Entity at periphery:** Per D-046 (three-reference lighting model), entities in the peripheral vision zone are rendered at reduced saturation and alpha. The `modulate.a` value is `Constants.PERIPHERAL_ALPHA` when `visibility == "Peripheral"`. This is already implemented in `entity_renderer.gd`. The D-033 color itself does not change — saturation reduction is handled via the visibility dimming, not a color override. +**Entity at periphery:** Per D-015 (forward/peripheral/blind vision sectors), entities in the peripheral vision zone are rendered at reduced saturation and alpha. The `modulate.a` value is `Constants.PERIPHERAL_ALPHA` when `visibility == "Peripheral"`. This is already implemented in `entity_renderer.gd`. The D-033 color itself does not change — saturation reduction is handled via the visibility dimming, not a color override. **Simultaneous transitions:** Two entities changing relationship state in the same tick each get independent 0.5s tweens. There is no synchronization between entity transitions. This is intentional. @@ -162,7 +162,7 @@ The current palette does not include a secondary differentiation signal beyond h **Recommended for v0.1.2+:** Add a shape or pattern secondary signal to entity sprites — border dash pattern or icon badge — that persists independently of hue. E.g., Hostile gets a diamond border, PersonOfInterest gets a cross-hatch border, Unknown gets no border treatment. This would not require changing the D-033 colors (which have been visually designed and approved) but would layer a non-color signal on top. -**Flag:** This is a known gap to be addressed before the game exits early access. Track as accessibility ticket. +**Flag:** This is a known gap to be addressed before the game exits early access. Tracked as future accessibility ticket (not yet created — flag during Sprint 15 planning). --- @@ -216,5 +216,5 @@ The core lookup table is already partially implemented. The complete client-side | Static object | `#8b8ba0` | Fixed — no transitions | | Player (detective) | `#e0e8ff` | Fixed — not subject to relationship | | Player (smuggler) | `#e8e0d0` | Fixed — not subject to relationship | -| Fog blob (unrecognized) | `#555566` | Transitions to D-033 over 0.3s at end of 0.6s cognitive delay | +| Fog blob (unrecognized) | `#555566` | Transitions to D-033 over 0.3s during 0.6s cognitive delay (D-060) | | Peripheral entities | Any D-033 color at reduced alpha | No separate color | diff --git a/docs/design/environmental-text-standards.md b/docs/design/environmental-text-standards.md index a48b3f194..9735582d9 100644 --- a/docs/design/environmental-text-standards.md +++ b/docs/design/environmental-text-standards.md @@ -85,7 +85,7 @@ The terminal sprite displays a short ambient identifier: equipment type + design | Color | `#8899aa` | | Opacity | 60% | | Z-layer | 4 (overhead, above terminal sprite) | -| Visibility range | Within LOS, up to ~4 visual tiles | +| Visibility range | Within LOS, up to ~4 visual tiles (~256px at 64px/tile) | **State 2 — Active (player adjacent, Observe/Interact triggered):** diff --git a/docs/design/monologue-display-spec.md b/docs/design/monologue-display-spec.md index 7821a6fd8..b241c2cd1 100644 --- a/docs/design/monologue-display-spec.md +++ b/docs/design/monologue-display-spec.md @@ -1,6 +1,6 @@ # Monologue Display System — Visual Specification -**Version:** v0.1 (Sprint 13) +**Version:** v0.1 (Sprint 13, updated Sprint 14) **Author:** Araminta (Visual Designer) **Date:** 2026-02-19 **Ticket:** #315 diff --git a/docs/design/sound-indicator-visual.md b/docs/design/sound-indicator-visual.md index 45cc49857..9302de4ff 100644 --- a/docs/design/sound-indicator-visual.md +++ b/docs/design/sound-indicator-visual.md @@ -15,13 +15,13 @@ Sound indicators are **complementary to audio, not a replacement for it.** They The v0.1 implementation uses **directional arrows at the viewport edge** as the indicator shape (already implemented in `sound_indicator_renderer.gd`). This spec defines the full intended visual design including the pulse behavior described in the ticket, and notes where the current implementation differs from the spec. -**D-018 scope:** Sound indicators cover the **medium-range tier only** (sounds outside LOS, within ~3–8 tiles). Close-range sounds (≤3 tiles, within LOS) are handled by positional 2D audio — no indicator needed. Long-range insert alerts (≥8 tiles) are a future sprint feature. +**D-018 scope:** Sound indicators cover the **medium-range tier** (sounds outside LOS, within ~3–20 tiles). Close-range sounds (≤3 tiles, within LOS) are handled by positional 2D audio — no indicator needed. Within medium range, three sub-tiers (close-medium, standard, far-medium) differentiate visual intensity — see §7 for the full breakdown. --- ## 2. Colors -Per D-018 three-range sound model and D-069 color codes: +Per D-018 three-range sound model and D-033/D-048 color vocabulary: | Sound category | Hex | Usage | |----------------|-----|-------| @@ -218,7 +218,8 @@ Because voices are the most important medium-range sound in the game. NPCs talki | Voice color | `#e8c547` | | Danger color | `#d45d5d` | | Max alpha | 90% | -| Total visible duration | 2.5s (target) / 3.5s (current) | +| Total visible duration (target) | 2.5s | +| Total visible duration (current) | 3.5s | | Fade duration | 1.0s ease-in | | Deduplication | Reset timer on same-tile re-trigger | | Range alpha levels | Close-medium 90% / standard 70% / far-medium 45% | diff --git a/docs/design/tell-visual-expression.md b/docs/design/tell-visual-expression.md index 209e25124..91877c5d4 100644 --- a/docs/design/tell-visual-expression.md +++ b/docs/design/tell-visual-expression.md @@ -25,7 +25,7 @@ The tell system (D-024 axis: Tell System) defines behavioral signals that NPCs e ## 2. Tell Categories and Animation Tier Mapping -D-024 specifies 5 tell categories. Each maps to one or more Tier 2 behavioral expressions (D-047 animation tier system). The mapping is based on what the tell would look like from a top-down view on a character operating in a public space. +D-024 defines the tell system axis on the NPC model. This spec identifies 5 tell categories derived from the axis. Each maps to one or more Tier 2 behavioral expressions (D-047 animation tier system). The mapping is based on what the tell would look like from a top-down view on a character operating in a public space. | Tell category | Internal state | Primary Tier 2 behavior | Secondary behavior | Notes | |---------------|---------------|------------------------|-------------------|-------| diff --git a/docs/design/the-friend-visual-treatment.md b/docs/design/the-friend-visual-treatment.md index 7d2ca26fc..eafcf2aa7 100644 --- a/docs/design/the-friend-visual-treatment.md +++ b/docs/design/the-friend-visual-treatment.md @@ -206,4 +206,4 @@ The visual spec obligation is: ensure the staging conditions are met so that THE | D-044 | Visual hierarchy. Entity always dominant. Silhouette feature as recognition signal. | | D-047 | Two-tier animation system. Tier 1/Tier 2 boundary, invisible to player. | | D-052 | Character favorite colors — object-layer identification. Phase 2 earned visual detail. | -| D-063 | Confrontation as cognitive weight. Post-discovery monologue behavior (not visual, but contextually related). | +| D-063 | Confrontation text styling — italic first-person options, 1.5s monologue beat. Post-discovery monologue behavior (not visual, but contextually related). | diff --git a/docs/design/visual-grammar-v01.md b/docs/design/visual-grammar-v01.md index 31a1d04c2..0be5a9127 100644 --- a/docs/design/visual-grammar-v01.md +++ b/docs/design/visual-grammar-v01.md @@ -234,7 +234,7 @@ All sizes are in pixels at 1080p (1920×1080) base resolution. Godot 4 handles D | Text role | Size | Opacity | Color | Z-layer | Notes | |-----------|------|---------|-------|---------|-------| -| Dialogue — NPC speech | 16px | 100% | `#e8eaf0` | 7 | Max width ~70% screen width. Left-aligned. | +| Dialogue — NPC speech | 16px | 100% | `#e8eaf0` | 7 | Max width 640px (~33% at 1080p, per D-076). Left-aligned. | | Dialogue — player response | 14px | 90% | `#c0c8d8` | 7 | Below NPC speech. Up to 3 options visible. | | Monologue (standard) | 13px | 85% | `#d0d4e0` | 7 | Floats above dialogue box. Inner voice — slightly dimmer than dialogue. | | Monologue (urgent) | 13px | 100% | `#e0e8f8` | 7 | Same size, full opacity, slight bloom pulse. Urgent chime accompanies. |