Migrate combat timer stack to a replaceable Lua HUD package
Move weapon attack/recharge, nano cast/recharge, queued item use, special-action, reload and equipment-change timer presentation into one replaceable Lua provider. Exclude logout progress. Reuse existing native timing snapshots and timer_bars character placement record. Lua owns row composition, labels, colors, visibility, progress presentation and layout-editor previews. Native code retains timing semantics, action state, movement pauses, saved placement, editor-only dragging and gameplay click-through. Acceptance: production uses one Lua timer stack without parallel C# presenters; provider selection/fallback and diagnostics follow existing patterns; running/waiting/expired/interrupted timers and editor transitions preserve behavior; existing placement and input semantics remain compatible; relevant client, Lua and Native AOT checks pass. No new gameplay commands or reverse-engineered implementation material. Implemented on feature/lua-combat-timer-stack, committed as e2992d08f. One TimerBars package owns presentation; TimerBarDataSource samples native states at one time without allocating row/ActionTimer objects per sample. ProgressBarLayout retains stable timer_bars identity and uses declared provider frame controls without widget-name assumptions. Native subtree click-through protects gameplay input, including custom capturing children; editor exit cancels native dragging. Existing presenter tests now drive real source/package components; old presenters/global XML removed. Verified: all 51 focused timer/layout/editor checks pass; complete client suite 4,399 passed/187 skipped using software Vulkan and validation layers; graphics suite 720 passed/1 skipped. Full native Lua, sanitizer, generator self-tests and Native AOT acceptance passed. New queue, specials, editor and paused-phase checks fail with Lua snapshot calls removed; custom input check separately fails without native root click-through. Source-linked adapter/layout AOT acceptance rejects broken recharge progress and passes after restoration. AOT does not source-link TimerBarDataSource; native sampling is covered by managed tests. Static feature review completed with no actionable findings. Package documentation updated. Live-client visual inspection and native Windows/macOS execution were not performed. PR #2936: https://git.project-rk.com/prk/engines/pulls/2936 (base: develop).
Checklist
3 of 3 complete- Replace timer presenters with one Lua provider driven by native action/timing facts, including queued items and paused weapon cycles.
- Preserve gameplay click-through, editor previews/dragging/reset, character placement restoration and session visibility with replaceable layouts.
- Show essential timer/provider regressions failing then passing; validate client, Lua/sanitizer/generator and Native AOT behavior and update package documentation.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Feature
- Task ID
tsk_s2q547tbqm- Updated