LANTERN P1 step 1b: per-socket effective-stats fold (additive)
Per Phase1_Combat_Gym_Build_Spec §7 (additive; legacy single EffectiveAbilityStats + its fold stay until steps 2/2.5 migrate readers, then retired): - EffectiveSocketStats: 4-wide derived (non-replicated) per-socket effective-stats buffer. - PlayerAuthoring bakes it (4 rows). - StatRecomputeSystem: a SECOND fold loop (separate query, under the 7-arg cap) folds each socket's SparkId blob base with the SHARED StatModifier band (uniform; per-Spark warping = Phase 4) into EffectiveSocketStats[i]; empty socket (SparkId 0) -> zeroed default. Fixed CS1654 by writing through a mutable local copy of the buffer handle. L1 clean; L2 489/489 (new SocketFold_Folds_Per_Socket_With_Uniform_Band). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -118,6 +118,11 @@ namespace ProjectM.Authoring
|
||||
sockets.Add(new AbilitySocket { SparkId = 0 });
|
||||
AddComponent<SocketCooldown>(entity);
|
||||
AddComponent<FrameId>(entity);
|
||||
// Step 1b: per-socket effective-stats buffer (4 rows), folded each predicted tick by
|
||||
// StatRecomputeSystem (additive; the legacy single EffectiveAbilityStats stays until steps 2/2.5).
|
||||
var effSockets = AddBuffer<EffectiveSocketStats>(entity);
|
||||
for (int sk2 = 0; sk2 < SocketId.Count; sk2++)
|
||||
effSockets.Add(new EffectiveSocketStats());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user