Files
Project-M/Assets/_Project/Scripts/Simulation/Player
kronic 12f86c86de LANTERN P1 step 2: AbilityFireSystem socket restructure + SpawnId repack
The netcode core of the 4-socket kit (Phase1_Combat_Gym_Build_Spec §1,§2,§5; review NP-1/
RS-1/DB-1/DB-3):
- PlayerInput: +4 Socket0..3 InputEvents + Burst-safe GetSocket(i); legacy Fire kept vestigial.
- PlayerInputGatherSystem: gather sockets from keyboard 1..4 (+gamepad RT/LB/RB); socket 0 also
  fires on the legacy primary (right-click / pad LT) as a bridge.
- AbilityFireSystem: query dropped to 4 type args (PlayerInput/PlayerFacing/LocalTransform/
  GhostOwner) + BufferLookup<AbilitySocket>/ComponentLookup<SocketCooldown>/BufferLookup<
  EffectiveSocketStats> (the 7-arg-cap fix); loops 4 sockets; per-socket cooldown + per-socket
  effective stats; Cone + Projectile dispatch per socket (predict-spawn Projectile-only).
- ProjectileSpawnId.Pack: pure Burst-safe key owner14|socket2|fireCount12|fork4 so same-tick
  multi-socket projectiles never collide; AbilityFireSystem uses it.
L1 clean; L2 494/494 (+5 ProjectileSpawnId tests: distinct-per-socket, fork, owner, bit-ranges,
count-wrap). L3 two-player + rollback is the group-A gate (after step 2.5). Note: the client
feel layer (muzzle/anim) still reads the legacy cooldown until step 2.5; sockets bake empty
until content (step 4), so nothing fires in-game yet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 10:59:45 -07:00
..
2026-06-03 13:46:13 -07:00
2026-06-03 13:46:13 -07:00
2026-07-02 20:41:43 -07:00
2026-07-02 20:41:43 -07:00
2026-06-02 08:56:26 -07:00
2026-06-09 23:26:20 -07:00
2026-06-09 23:26:20 -07:00
2026-06-09 23:26:20 -07:00
2026-06-09 23:26:20 -07:00
2026-06-09 23:26:20 -07:00
2026-07-13 18:30:41 -07:00
2026-07-13 18:30:41 -07:00
2026-06-03 13:46:13 -07:00
2026-06-03 13:46:13 -07:00
2026-07-13 18:30:41 -07:00
2026-06-03 18:35:05 -07:00
2026-05-31 14:27:52 -07:00
2026-05-31 14:27:52 -07:00
2026-05-31 14:27:52 -07:00
2026-05-31 14:27:52 -07:00
2026-07-02 20:41:43 -07:00
2026-07-02 20:41:43 -07:00
2026-05-31 14:27:52 -07:00
2026-05-31 14:27:52 -07:00