- Introduce a canvas-based audio visualizer overlay on opponent portraits that activates during speech playback - Update `SpeechQueue` to support `onStart` and `onEnd` callbacks for hooking into audio events - Modify `Portrait` to trigger the visualizer with emotion-specific colors (blue for intro, green for happy, red for upset) - Add `speech` metadata to `opponents.json` for Ethel and Bernie, defining available intro/happy/upset audio clips - Ensure proper cleanup of visualizer state and resources on portrait destruction |
||
|---|---|---|
| .. | ||
| assets | ||
| data | ||
| src | ||
| index.html | ||
| styles.css | ||