diff --git a/Docs/Vault/07_Sessions/2026/2026-07-14_Lantern_Phase1_GroupA_Combat_Sockets.md b/Docs/Vault/07_Sessions/2026/2026-07-14_Lantern_Phase1_GroupA_Combat_Sockets.md index a58db27b9..ffcdeacb1 100644 --- a/Docs/Vault/07_Sessions/2026/2026-07-14_Lantern_Phase1_GroupA_Combat_Sockets.md +++ b/Docs/Vault/07_Sessions/2026/2026-07-14_Lantern_Phase1_GroupA_Combat_Sockets.md @@ -46,9 +46,14 @@ essence (one atlas, ~3 materials, zero per-asset texturing). The in-engine style ## Open / deferred (surfaced, NOT silent) -- **Group-A L3 gate (NEXT):** two-player Play + induced-rollback for the predicted `SocketCooldown` (NP-4 - gate) + the operator's eyes on muzzle/anim/HUD. Needs a socketed Spark (sockets bake empty) — a default gym - loadout (socket0=Primary projectile, socket1=Cone) makes firing testable. +- **Group-A L3 gate — NETCODE HALF: PASS.** Live instant-play validation (guardian over ServerWorld + + ClientWorld; socket-fire injection added to `DebugInputInjectionSystem`): socket 0&1 = a projectile Spark, + fired same-frame → `maxSrvProj=2 maxCliProj=2` (server==client parity), `distinctSpawnIds=2` + + `distinctSocketBits=2` (the SpawnId desync fix confirmed LIVE), both per-socket cooldowns advanced. **FEEL + HALF deferred to post-Group-B** (operator's choice — the visual muzzle/anim/HUD read is meaningful against + real Sparks). **Induced-rollback (NP-4 belt-and-suspenders)** still wants a 2-instance/packet-loss session; + the predicted `SocketCooldown` is a `[GhostField]` scalar (proven rollback shape) + the fire path is + server==client, so the core is sound. - **AbilityRef-removal cleanup:** the `FrameId` server-writer + the 2 class-HUD re-points + `HudSystem`'s ability bar + removing legacy `AbilityRef`/`AbilityCooldown`/`EffectiveAbilityStats` — deferred because `AbilityRef` still works as the class signal through the transition (no feel regression).