Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions docs/review/device-qa/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,5 +236,15 @@ Each note records one fact about bytes or draw calls already on main. None of th
| [title-type-2026-11-05.md](title-type-2026-11-05.md) | The headline size, and the button type |
| [grade-margin-2026-11-05.md](grade-margin-2026-11-05.md) | One fog tile past the arena, each side |
| [notch-seat-2026-11-05.md](notch-seat-2026-11-05.md) | Beside the camera line, one step down |
| [captain-mark-2026-11-05.md](captain-mark-2026-11-05.md) | The diamond, or the contracting ring |
| [extraction-brackets-2026-11-05.md](extraction-brackets-2026-11-05.md) | The zone corners, and the inward bits |
| [phase-slam-2026-11-05.md](phase-slam-2026-11-05.md) | The phase words, and the broken ring |
| [spawn-chevrons-2026-11-05.md](spawn-chevrons-2026-11-05.md) | Up to six marks, aimed at the sockets |
| [alert-mark-2026-11-05.md](alert-mark-2026-11-05.md) | The exclamation above the enemy |
| [caption-column-2026-11-05.md](caption-column-2026-11-05.md) | Safety with a bar, routine without |
| [outline-cache-2026-11-05.md](outline-cache-2026-11-05.md) | 128 entries, and the byte cap |
| [extraction-sweep-2026-11-05.md](extraction-sweep-2026-11-05.md) | The clockwise arc, and the numeral |
| [detection-ink-2026-11-05.md](detection-ink-2026-11-05.md) | Lockdown in the critical colour |
| [upgrade-badge-2026-11-05.md](upgrade-badge-2026-11-05.md) | The panel, the frame, and the glyph |

Next session: follow [retest-checklist.md](retest-checklist.md) (D-105 allows device checks on any build).
11 changes: 11 additions & 0 deletions docs/review/device-qa/alert-mark-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Alert mark

Read 2026-11-05 from `VFXRenderer.alertPop` on `c6da67e`. No awareness rule was changed.

The unaware marker and its lift stay in [world-shapes-2026-11-03.md](world-shapes-2026-11-03.md). The alert event stays in [awareness-alerts-2026-11-04.md](awareness-alerts-2026-11-04.md).

`enemyAlerted` draws `!` at the source actor, or at the player when that actor has no known position. The lift is the unaware marker's lift for the enemy's radius, or for 18 when the snapshot has no radius for that enemy. The label is Menlo Bold, size 20, red 0.98, green 0.62, blue 0.18, alpha 0.95, centred, with its bottom on that point. It sits on the world effect layer.

Reduced motion or reduced flash leaves the mark still. Otherwise it starts at scale 0.4, scales to 1.25 over 0.08 seconds and to 1 over the next 0.06 seconds, then waits. The wait is the presentation lifetime minus those 0.14 seconds and minus the 0.12 second fade, and it is never negative. The fade follows the wait.

This does not change an awareness rule.
13 changes: 13 additions & 0 deletions docs/review/device-qa/captain-mark-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Captain mark

Read 2026-11-05 from `VFXRenderer.captainAnticipation` on `c6da67e`. No telegraph length was changed.

The ground shape stays in [telegraph-shapes-2026-11-04.md](telegraph-shapes-2026-11-04.md). The boss ring stays in [telegraph-ring-2026-11-04.md](telegraph-ring-2026-11-04.md). The frame lifetime stays in [vfx-pool-2026-11-04.md](vfx-pool-2026-11-04.md).

`captainTelegraph` is drawn at the source actor, or at the boss, or at the player when neither position is known. It sits on the world effect layer.

Reduced motion or reduced flash draws a diamond at y 70, through (0, 10), (8, 0), (0, −10), and (−8, 0). The stroke is red 0.90, green 0.88, blue 0.80, alpha 0.95, at line width 2. The fill is that colour at alpha 0.4.

Otherwise a circle of radius 52, in that stroke, line width 3, starts at scale 1.4. It scales to 1 and fades to alpha 0.2 over the presentation lifetime.

This does not change a telegraph.
11 changes: 11 additions & 0 deletions docs/review/device-qa/caption-column-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Caption column

Read 2026-11-05 from `HUDRenderer.drawCaptions` on `c6da67e`. No cue was reclassified.

Which captions show, and in what order, stays in [caption-board-2026-11-04.md](caption-board-2026-11-04.md). The framing scale stays in [hud-shapes-2026-11-03.md](hud-shapes-2026-11-03.md).

The column is the rectangle at x 596, y 112, width 224, height 110, mapped as an informational element. Each line is Menlo Bold, size 8, right aligned, and the size is multiplied by the framing scale. The first line sits on the column's top-right. Each next line is 13 points lower.

A safety caption is drawn in white 0.95 with a leading `▌ `. A routine caption is drawn in white 0.68, with no bar. The text is uppercased.

This does not reclassify a cue.
9 changes: 9 additions & 0 deletions docs/review/device-qa/detection-ink-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Detection ink

Read 2026-11-05 from `HUDRenderer.drawDetection` on `c6da67e`. No glyph was changed.

The five glyphs stay in [hud-bindings-2026-11-04.md](hud-bindings-2026-11-04.md). The framing scale stays in [hud-shapes-2026-11-03.md](hud-shapes-2026-11-03.md).

The label is the glyph, a space, and the detection state in capitals. It is Menlo Bold, size 10, and the size is multiplied by the framing scale. Lockdown uses red 0.95, green 0.42, blue 0.32, alpha 0.95. Every other state uses white 0.95.

This does not change a glyph.
13 changes: 13 additions & 0 deletions docs/review/device-qa/extraction-brackets-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Extraction brackets

Read 2026-11-05 from `VFXRenderer.extractionBrackets` on `c6da67e`. No zone was moved.

The zone box stays in [world-shapes-2026-11-03.md](world-shapes-2026-11-03.md). The countdown stays in [hud-bindings-2026-11-04.md](hud-bindings-2026-11-04.md). The angle step stays in [camera-follow-2026-11-03.md](camera-follow-2026-11-03.md).

The brackets sit at the extraction zone's centre, on the world effect layer. Each side is that zone's full width or height. Each arm is 18. The stroke is red 0.35, green 0.85, blue 0.60, alpha 0.9, at line width 3.

Reduced motion or reduced flash adds a fill of that colour at alpha 0.15, with a clear stroke. Its horizontal scale starts at 0 and runs to 1 over the presentation lifetime.

Otherwise each of the variant's particles is a 4 by 4 square of the stroke colour. It starts at half the zone's width and height along the shake note's angle step, and it travels to the centre, fading over the lifetime.

This does not move the zone.
9 changes: 9 additions & 0 deletions docs/review/device-qa/extraction-sweep-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Extraction sweep

Read 2026-11-05 from `HUDRenderer.drawExtraction` on `c6da67e`. No countdown was changed.

The remaining ratio and the seconds formula stay in [hud-bindings-2026-11-04.md](hud-bindings-2026-11-04.md). The ring's stroke and radius stay in [hud-shapes-2026-11-03.md](hud-shapes-2026-11-03.md).

The ring is drawn while extraction is armed. The arc starts at π/2 and runs clockwise through a full turn times the remaining ratio. The numeral is `extractionSeconds`, Menlo Bold, size 18, white 0.95, at the ring's centre. The size is multiplied by the framing scale.

This does not change the countdown.
13 changes: 13 additions & 0 deletions docs/review/device-qa/outline-cache-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Outline cache

Read 2026-11-05 from `OutlineTextures` on `c6da67e`. No outline weight was changed.

The faction colours and the dash stay in [faction-outline-2026-11-04.md](faction-outline-2026-11-04.md). Ordinary play stays at sampling scale 1, as that note records.

The cache holds 128 entries, or `4 * 1024 * 1024` bytes of stored masks, whichever limit is reached first. A hit moves that key to the newest end. While the next mask would pass either limit, the oldest key leaves. A mask whose own cost is already over the byte cap is returned and not stored. A miss is stored, including a failed build.

A sampling scale outside 1, 2, or 3 returns nil. Each logical side must be finite, positive, and at most 256. The mask side is that side rounded to the nearest whole pixel, then multiplied by the scale, and it must still be at most 256. The source image side must be at most 1024, and the mask must be at most `256 * 256` pixels.

A source pixel counts as body at alpha 64 or above. The pad is 1 logical pixel times the scale. A clear pixel within that pad of a body pixel is a candidate, and the faction test decides it. The outline texture is built with smoothing off.

This does not select another sampling scale.
13 changes: 13 additions & 0 deletions docs/review/device-qa/phase-slam-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Phase slam

Read 2026-11-05 from `VFXRenderer.phaseBreak` on `c6da67e`. No phase name was changed.

The four phase words stay in [boss-bar-2026-11-04.md](boss-bar-2026-11-04.md). The frame lifetime stays in [vfx-pool-2026-11-04.md](vfx-pool-2026-11-04.md). The effect layers stay in [world-layer-order-2026-11-03.md](world-layer-order-2026-11-03.md).

The projector emits `bossPhaseBreak` when a phase-change event has a before value and an after value. The label splits that after string where an uppercase letter starts a new word, uppercases each word, and joins the words with a space. A change with no before is not drawn.

The label is Menlo Bold, size 30, red 0.90, green 0.88, blue 0.80, alpha 0.95, centred at y 70, on the screen effect layer. Reduced motion or reduced flash holds it at alpha 1 and draws no ring.

Otherwise it starts at scale 2.2 and alpha 0, scales to 1 and fades in over 0.09 seconds, waits 0.6 of the presentation lifetime, and fades out over 0.3 of the lifetime. When the boss position is known, a broken ring at that point uses the same colour, radius 40, 8 segments, and line width 4. The caps are round. Each segment draws 0.62 of its share of the circle. The ring scales to 5.5 and fades out over the lifetime.

This does not change a phase name.
13 changes: 13 additions & 0 deletions docs/review/device-qa/spawn-chevrons-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Spawn chevrons

Read 2026-11-05 from `VFXRenderer.reinforcementChevrons` on `c6da67e`. No reinforcement count was changed.

The count and the 300-tick caption stay in [heat-caption-2026-11-04.md](heat-caption-2026-11-04.md). The sockets stay in [world-shapes-2026-11-03.md](world-shapes-2026-11-03.md). The visible size stays in [camera-follow-2026-11-03.md](camera-follow-2026-11-03.md).

The projector emits `heatReinforcements` when that tick's reinforcement count is above 0. The marks sit on the screen effect layer. They use the snapshot's spawn sockets, up to six. A socket at the camera centre is skipped.

Each mark is the path (−8, 10), (4, 0), (−8, −10). The stroke is red 0.98, green 0.62, blue 0.18, alpha 0.95, at line width 4. Its rotation is the direction from the camera centre to the socket. Its place is that offset, pulled in so it stays 22 inside the visible frame, and never enlarged past the offset itself.

Reduced motion or reduced flash leaves the mark still. Otherwise it travels 6 points along its rotation over a quarter of the presentation lifetime, returns over the next quarter, and does that pair twice.

This does not change a count.
9 changes: 9 additions & 0 deletions docs/review/device-qa/upgrade-badge-2026-11-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Upgrade badge

Read 2026-11-05 from `HUDRenderer.drawUpgradeBadge` on `c6da67e`. No upgrade was added.

The rounded square stays in [hud-shapes-2026-11-03.md](hud-shapes-2026-11-03.md). The three glyphs stay in [hud-bindings-2026-11-04.md](hud-bindings-2026-11-04.md). The spoken card stays in [upgrade-choice-layout-2026-11-04.md](upgrade-choice-layout-2026-11-04.md).

The badge is drawn while an upgrade is equipped. Its fill is white 0.16 at alpha 0.92. Its stroke is white 0.80 at alpha 0.75. The function does not assign a line width. The glyph is Menlo Bold, size 14, white 0.95, and the size is multiplied by the framing scale. The badge's accessibility label is that card's voice-over label.

This does not add an upgrade.
Loading