using Unity.Entities; namespace ProjectM.Simulation { /// /// Per-SOCKET effective ability stats for the LANTERN 4-socket kit — one row per socket (buffer index = /// socket 0..3), each the authored base of that socket's (from the /// AbilityDatabase blob) folded with the player's shared band by /// StatRecomputeSystem every predicted tick. The 4-wide analog of the single /// (which is retired once AbilityFireSystem + the feel layer /// migrate to this in steps 2/2.5). Derived/local, NOT replicated — both worlds recompute it /// deterministically from the replicated socket loadout + modifier band, so it matches under prediction /// without being in the snapshot. The per-player stays single. /// Band semantics (Phase 1): the single per-player band (class traits + /// boons) applies UNIFORMLY to all 4 sockets; per-socket/per-Spark warping is Phase 4. /// [InternalBufferCapacity(4)] public struct EffectiveSocketStats : IBufferElementData { public float Damage; public float ProjectileSpeed; public float Range; public float AutoTargetRange; public float AutoTargetConeRadians; public int CooldownTicks; } }