Files
benilla-octo/crates/benilla-ui/src/script/unit
Sam SungandClaude Opus 5.5 4573596e27 UnitIsConnected answers 1 for every held unit: snapshot sets it, so the pet frame's power bar reads the pet's power instead of a grey maximum (#651)
`ui_unit::snapshot` builds a held unit's view and left `is_connected` at its default, false. Each feed that calls it had to set the field afterwards. The pet feed did not, so `UnitIsConnected("pet")` answered nil for a live pet. The stock `UnitFrameManaBar_Update` (`UnitFrame.lua`) then took its disconnected branch, and the pet frame's mana, focus or energy bar read full and grey. The mouseover feed had the same gap.

`UnitIsConnected` (`0x517d50`) looks the unit up in the object manager (`0x517da6`, typemask 8), and any held unit answers 1 (`0x517daf`). The roster record's online bit is read only when no object is held.

- `snapshot` now sets `is_connected` itself.
- The per-feed overrides for player, target, targettarget, npc, our own raid row and the held party pet go.
- The party feed's record-derived value for its members stays.
- The pet frame tests build their pet through the real `snapshot` rather than pushing the flag by hand.

Test: `a_held_pet_reads_connected_and_its_stock_power_bar_shows_its_power` loads the default UI and runs the real `feed_pet_unit` with a held focus pet. It checks that `UnitIsConnected("pet")` is 1 and that `PetFrameManaBar` reads 45 of 80 in the focus colour.

Fixes #642

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 01:49:11 +07:00
..