342a39a540d66e09f00dcd79388cf2c525c0aa7b
FrameId (replicated frame/class signal) now WRITTEN server-side at spawn for all players; the two class-HUD readers (ClassPrepPortal, MetaShop) read FrameId (with an AbilityRef fallback for pre-FrameId players) instead of ClassForAbility. The gym seeds a PER-FRAME default Spark loadout via ClassTraits.FrameLoadout — Harpooner (Ranger slot): reel/mobility/skillshots; Bathynaut (Warrior slot): pull-in/dash/zone-control. FrameId uses ecb.AddComponent (baked on the real player; absent on the minimal MetaSeeding test prefab). 497 EditMode green. Deferred to a focused pass (risky wholesale refactor, "still works" via the transition): full removal of legacy AbilityRef/AbilityCooldown/EffectiveAbility Stats (woven through equip/class/meta/StatRecompute + tests) and the CharacterId Bathynaut/Harpooner rename. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
yaml
98.9%
json
0.8%
C#
0.3%