feat(diag): #266 - [stat-chain] apparatus across the vitae-to-movement chain
Three permanent low-volume probes: installed vitae record (id/type/key/ value) at ReplaceManifest, any vitae record dropped by GetMod's spell-table prepass (retail's _vitae singleton never runs family stacking - if this fires, hoist the Bucket-4 branch), and the full recompute state (base skills, runMod, effective skills, active count). One instrumented relog decides the break point. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
4880d7d9cf
commit
f6e895c06c
3 changed files with 42 additions and 0 deletions
|
|
@ -183,6 +183,18 @@ public sealed class RuntimeCharacterState : IDisposable
|
|||
int jump = _jumpSkillBase >= 0
|
||||
? ApplySkillEnchantments(_jumpSkillBase, JumpSkillId)
|
||||
: -1;
|
||||
// #266 apparatus (permanent, low-volume — fires only on skill-base or
|
||||
// enchantment changes, the [snap] class): the full stat-chain state at
|
||||
// each recompute. If vitae is active but runMod prints 1.0, the break
|
||||
// is in GetSkillMod's record handling; if runMod is right but the
|
||||
// felt speed doesn't change, the break is downstream of MovementSkills.
|
||||
EnchantmentMath.VitalMod runMod = Spellbook.GetSkillMod(RunSkillId);
|
||||
System.Console.WriteLine(
|
||||
System.FormattableString.Invariant(
|
||||
$"[stat-chain] base run={_runSkillBase} jump={_jumpSkillBase} "
|
||||
+ $"runMod={runMod.Multiplier:F4}x+{runMod.Additive:F1} "
|
||||
+ $"-> eff run={run} jump={jump} "
|
||||
+ $"(activeEnchantments={System.Linq.Enumerable.Count(Spellbook.ActiveEnchantments)})"));
|
||||
MovementSkills.Update(run, jump);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue