Present landed impacts: shield ripple, hull reaction and camera kick through one ImpactPresenter
ImpactPresenter (bound on every EntityInstance by SetEntity through the one CapabilityPresentationBinder) renders feedback-1's absorbs: Feedback.Cue decides intensity and shake, DrawAhead.Carried the drawn point; a hull absorb spawns ImpactFeedback's pooled effect under the instance, and a cue with shake raises a Cinemachine impulse. ShieldManager ripples on a Shield-layer absorb. MainMenu gains a Screen Shake slider that persists on Back. Editor: WireImpactFeedback (scene wiring, scene diff in the next commit) and ImpactPresenterSmoke. Unity batchmode compile 0 error CS; ImpactPresenterSmoke exit 0. The scene is not yet wired in this commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
789fe9fcdc
commit
97d94ecfae
11 changed files with 310 additions and 1 deletions
|
|
@ -167,6 +167,13 @@ public class EntityInstance : MonoBehaviour
|
|||
|
||||
if(Shield)
|
||||
Shield.Entity = entity;
|
||||
|
||||
// Landed impacts reach the screen through the entity's one binding: the shield ripple (ShieldManager) and the
|
||||
// hull reaction and camera kick (ImpactPresenter) subscribe to the Absorb stream the simulation publishes.
|
||||
var impacts = gameObject.GetComponent<ImpactPresenter>() ?? gameObject.AddComponent<ImpactPresenter>();
|
||||
impacts.Entity = entity;
|
||||
(gameObject.GetComponent<CapabilityPresentationBinder>() ?? gameObject.AddComponent<CapabilityPresentationBinder>())
|
||||
.Bind(entity.Capabilities);
|
||||
foreach (var hullCollider in HullColliders) hullCollider.Entity = entity;
|
||||
|
||||
foreach (var item in entity.Equipment)
|
||||
|
|
|
|||
Loading…
Reference in a new issue