R2: the shield is an interceptor. ShieldInterceptor implements IAbsorbPresenter and converts each AbsorbEvent into a pose (intercept point projected onto the ShieldEnvelope, normal from SurfaceNormal, size from the item's PanelRadius) and a strike, deciding nothing else. It reuses Assets/Scripts/Prototype.cs rather than writing a second pool. Reuse: a second hit landing within PanelRadius*ReuseFraction of a live panel strikes that panel (Hit only, no ResetSim) instead of spawning a new one -- this is what makes ShieldSim.compute's temper erosion observable across multiple hits. Pool exhaustion: when MaxLivePanels is already live, the oldest live panel (by spawn order) is recycled in place -- reposed and re-armed for the new intercept point -- rather than dropping the strike or growing past the §2.3 frame budget. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 lines
60 B
Text
2 lines
60 B
Text
fileFormatVersion: 2
|
|
guid: fdca6a832d764b6e89fc83fdcf7b42d7
|