Finish Lua migration of inspection, maps and remaining gameplay HUD
Final migration pass explicitly requested for nine families: Info/Inspect; Planet Map; Local/Playfield Map; Compass; Cloaked/sneak indicator; Logout progress; Telegraph announcements; overhead nameplates/target indicators; floating combat text positioning, animation and rendering (wording/formatting already Lua). Scope excludes Options, diagnostic/developer windows, login/character creation/loading and generic dialogs/tooltips unless directly needed for these migrations. Outcome: Lua owns presentation composition, layout, styling, display lifecycle/animation policy and relevant local navigation for all nine families, not merely wrappers around existing C# presenters. Native code retains authoritative game facts, world projection/visibility queries, resource decoding, renderer primitives, validated gameplay actions, physical-input provenance, session/window lifecycle and persistence. Retain existing game information, interactions, map behavior, inspect links/history, placement preferences and click-through behavior. Reuse existing package/provider catalog, Core components, typed projections, isolated interaction runtime and renderer/map primitives. Extend generic capabilities only where evidence shows existing ones insufficient; do not expose arbitrary world/game authority or duplicate the Lua package foundation. No stock-client translated code or reverse-engineering artifacts in shipped dependencies. Acceptance: each family has a complete Lua-owned presentation and coherent provider/session/failure/disposal behavior; no duplicate native presentation fallback. Native map/nameplate drawing primitives may remain, but presentation policy must move out of C#. Focused regression checks cover essential player-visible behavior, actual native rendering is inspected, relevant builds/tests and Lua/API validation pass. Explicitly distinguish static inspection, automated checks and live gameplay/platform validation. The implementation request did not authorize commits, push, PR or game launch. The user subsequently authorized branch preparation, committing, pushing and opening a PR through /open-pr; no game launch requested. Initial source inventory: CharacterInterface.cs builds native InfoWindow.xml, PlanetMap.xml, PlayfieldMap.xml, Compass.xml, LogoutProgress.xml, CloakedIndicator.xml and Telegraph.xml; FloatingCombatTextPresenter owns native overhead placement/animation; NameplatePainter/NameplateScene own overhead rendering paths. ClientUiComposition wires common services. Existing UI/Packages and LuaUiPackageCatalog provide reusable production package foundation. Repository develop working tree clean at intake. Implemented fully, committed as 9ec24c802 (feature: Migrate inspection, maps and remaining HUD to Lua) and pushed on feature/finish-lua-gameplay-ui. All nine families have production Lua packages/provider roles and normal session wiring. Lua owns window/HUD composition, Info history/scroll/columns/Impact sizing, map menus/zoom/centering/follow/availability/marker styling, compass/sneak/logout/telegraph presentation, nameplate captions/colors/layout/brackets/health/backing/scaling/anchoring and floating text positioning/animation/lifetime. Native code retains game facts, decoded map/room resources, raw projection/visibility/depth, bounded drawing primitives, physical input provenance and validated actions. Nameplate runtime is character-session owned and included in diagnostics. Obsolete global layouts, native nameplate painter, native map menu composition and replaced native presentation policy are removed. Verified behavior corrections: renamed-provider Planet Map destination hit-testing reproduced red, then fixed to use the attached surface instead of a built-in widget name. Native context routing delegates to Lua menus through bounded show_at. Correct scale-aware native text measurement and Lua column refitting fix comparison-note overflow at 150% and live scale changes; regression demonstrated red then green. Custom floating-text lifetime override, native coordinate validation/removal, map access/areas behavior, Info navigation/selection, nameplate captions and projection are exercised through real Lua/native components. Both static patch-review findings addressed; the second concerned needless GPU setup/mask passes in caption/color tests. Native captures now reuse a per-test growable target and skip masks only where no mask assertion exists; dedicated pixel/backing/frame-loop checks remain. Same 19 nameplate tests pass; isolated control was 3 seconds and reused-target run 1 second (coarse test-run timings, not a general performance claim). Final validation: warning-as-error client/test builds pass with existing NU1903 exemption and prepared target-native package overrides. Complete client suite 4,856 total: 4,704 pass, 152 explicit environment-dependent skips, zero failures; renderer suite 743 total: 742 pass, one explicit install-data skip, zero failures. Native Lua release and sanitizer CTests (8 each), generator self-test, actual published native scripting/UI AOT acceptance executables all pass. The UI AOT acceptance project exercises its existing source-linked roles/shared host, not dedicated new-family acceptance cases. The full production client including all new adapters successfully publishes as Linux x64 Native AOT (latest log /tmp/prk-final-lua/client-aot-done.log; output .dev-data/final-lua-ui/publish). All 80 package Lua files pass syntax checking; all 147 package XML files parse; git diff whitespace check clean. 48 current native captures cover normal/minimum windows and 100/125/150% UI scale, Info page positions, maps/markers/unavailable state, small HUD and scene-aware nameplate frame-loop rendering. Captures copied to .dev-data/final-lua-ui/captures and visually inspected, with Info captures regenerated after scale measurement correction. Nameplate bright/dark backgrounds are synthetic overlay specimens, not proof of adaptive backdrop sampling against a live bright zone. Native frame-loop tests used hidden isolated render windows, not a game/session launch. No live gameplay/server session or Windows/macOS validation performed. Those limitations do not represent unfinished implementation. Final logs /tmp/prk-final-lua/full-client-done.log, renderer-final.log, lua-aot-final.log and client-aot-done.log; TRX PRK.Client/PRK.Client.Tests/TestResults/final-lua-client-done.trx. Pull request #3029: https://git.project-rk.com/prk/engines/pulls/3029 Title: feature: Migrate inspection, maps and remaining HUD to Lua Head feature/finish-lua-gameplay-ui; base develop; open, not draft. Remote default and fetched base both resolve to develop at implementation baseline 38a90f4cc, so the complete branch contains only the session's single migration commit. Intended files staged explicitly; no unrelated changes or private artifacts included. Branch pushed with upstream, no force-push/history rewrite. Worktree clean at PR preparation. Existing successful validation applies to the committed tree; no new test execution or CI result claimed solely from opening the PR.
Checklist
4 of 4 complete- Migrate Info/Inspect and both maps with existing navigation, interaction and persistence preserved.
- Migrate Compass, sneak indicator, logout progress and telegraph presentation and lifecycle policy.
- Migrate overhead nameplate/target-indicator and floating-combat-text presentation, positioning and animation policy without moving native world/render authority into Lua.
- Verify essential behavior, provider/session cleanup, native rendered output and relevant build/test/Lua/API checks; remove replaced native presenters and document validation limits.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Feature
- Task ID
tsk_nyt98bmmhc- Updated