- game/assets/store/{rack,crate,record}.glb from the 3D-STORE library
- _glb_piece(): instances a GLB as a Smashable's visual, auto-fits a box
collider to the mesh AABB, and drops it flush to the floor (no hardcoded dims)
- _build_rack now assembles two smashable racks + crates of records on the floor
- cascade preserved: smashing a crate spills the records stacked on it
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Juice.gd — the feel system, driven off Smashable.smashed (purely additive):
- Hitstop freeze-frame on every impact (time_scale dip, released in real time)
- Screenshake with quadratic trauma falloff, scaled by shard count
- Per-material GPU particle bursts, colored from the PROFILES table
- Procedural impact audio synthesized in code per material — no sound files,
the dig.js trick: wood crunch, cardboard rip, vinyl crack+warble, glass tinkle, steel ring
- Combo counter on the HUD
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>