Docs: 07-21 session I log (auto-recast diagnosis + ability-bar rework)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
# 2026-07-21 (I) — auto-recast diagnosis + the ability/cooldown bar rework
|
||||||
|
|
||||||
|
**Operator: "after casting an ability - it seems to auto recast - also I want to be able to see the cds of
|
||||||
|
socketed abilities + dash. do a rework of the ui."**
|
||||||
|
|
||||||
|
## Auto-recast: diagnosed NOT a sim bug — a telegraph misread (fixed)
|
||||||
|
|
||||||
|
- Static analysis: the gather is edge-clean (`Socket0 = default` + `.Set()` only on `wasPressedThisFrame`,
|
||||||
|
PlayerInputGatherSystem:180-186); the injection system self-expires. No sim path to a refire.
|
||||||
|
- **Live proof**: one injected socket-0 press → exactly ONE cooldown stamp (tick 1049 → 1469; Vortex cd = 420 t
|
||||||
|
= 7 s) and exactly ONE zone instantiate, then nothing over an 8 s guardian watch. The sim never recast.
|
||||||
|
- **Root cause**: the session-H zone telegraph re-GREW its fill from zero every 30-tick pulse — the exact visual
|
||||||
|
grammar of a fresh cast. **Fix (ZoneTelegraphSystem)**: the ARM phase (before the first pulse) still grows
|
||||||
|
0→1 (fill reaches the rim = first damage); the PERSISTENT phase now **DRAINS 1→0** toward each pulse — a
|
||||||
|
metronome read, not a cast — and the direction split IS the G6/R6 one-shot-vs-persistent fill encoding,
|
||||||
|
done properly this time.
|
||||||
|
|
||||||
|
## Ability bar (new `AbilityBarSystem`, Client/Presentation)
|
||||||
|
|
||||||
|
- B5 sibling pattern: own `~HUDAbilityBar` UIDocument (MenuUi.LoadPanelSettings, sortingOrder 49), observe-only
|
||||||
|
`SystemBase` in PresentationSystemGroup, build-once, root pickingMode Ignore; HudUi/HudTheme-factored so it
|
||||||
|
auto-skins.
|
||||||
|
- Bottom-center, 5 slots — sockets 1-4 (socket 0 labeled `1·RMB`) + `SHIFT` Dash: Spark initials + full name
|
||||||
|
from the AbilityDatabase blob, archetype tint (zones teal · movement cool-blue · cone lamp-amber · skillshots
|
||||||
|
warm-white · dash cyan), a bottom-anchored dark overlay that DRAINS as the cooldown recovers, a seconds
|
||||||
|
countdown (tenths under ~10 s), and a ready-flash border on the ready edge. Loadout changes (class swap)
|
||||||
|
re-resolve labels automatically. Empty socket = dimmed "—".
|
||||||
|
- Cooldown math: sockets = `SocketCooldown.Get(i)` vs `EffectiveSocketStats[i].CooldownTicks`; dash =
|
||||||
|
`DashCooldown.NextTick` vs `TuningConfig.DashCooldownTicks` with the `Defaults()` fallback (the release rule
|
||||||
|
from review wf_98bf1268). Owner cooldowns ride the PREDICTED tick (local-player state — deliberately unlike
|
||||||
|
the zone telegraph's interpolated read).
|
||||||
|
- **HudSystem**: the old single-socket-0 blue charge strip REMOVED from the vitals block (was the only cooldown
|
||||||
|
readout; misleading — it tracked one socket and looked like a weapon gauge).
|
||||||
|
|
||||||
|
## Validation
|
||||||
|
|
||||||
|
L1 console clean (edits + full Play session) · L2 429/429 (presentation-only; no sim surface) · L3 screenshot:
|
||||||
|
bar live with Vortex mid-cooldown ("2.7" countdown + drain overlay, matching a 168-tick probe read), all names/
|
||||||
|
tints correct, dash slot present; zone rim + draining fill reading as an ongoing effect.
|
||||||
|
|
||||||
|
**Next:** operator eyes-on the bar layout/tints + the drain-inward pulse read (details in the session report's
|
||||||
|
gate blocks); the standing eyes-on queue (finisher reach ×1.39 · player hurt flinch · Cone-spark loadout fork).
|
||||||
Reference in New Issue
Block a user