Alliance frames, crafting tooltips, visibility: fix display and tooltips

- Alliance Frames: Populate other alliances (A/B) via GetAllianceMemberByIndex flat indices (0-7, 8-15) instead of GetAllianceMemberByGroupAndIndex which returns empty in-instance; keep own party from GetPartyMemberByIndex.
- Alliance Frames: Visibility: do not apply HideInDuty to Alliance Frames so they show in alliance raids when visibility rules are enabled.
- Hotbars: Crafting action tooltips: fallback Action sheet lookup with +100000 offset when hotbar stores CraftAction row ID.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-07 22:34:10 -05:00
parent 57d1bc5c0f
commit 3b5ddbe2f9
3 changed files with 63 additions and 28 deletions
@@ -96,6 +96,9 @@ namespace HSUI.Interface
if (element != null && element.GetType() == typeof(PlayerCastbarHud)) { return true; }
if (element != null && !element.GetConfig().Enabled) { return false; }
// Alliance frames only matter in alliance raids (duty). HideInDuty would hide them exactly when needed.
bool isAllianceFrames = element != null && element.GetType() == typeof(AllianceFramesHud);
bool isInIslandSanctuary = IsInIslandSanctuary();
bool isInDuty = IsInDuty() && !isInIslandSanctuary;
IPlayerCharacter? player = Plugin.ObjectTable.LocalPlayer;
@@ -127,7 +130,8 @@ namespace HSUI.Interface
if (HideOnFullHP && player != null && player.CurrentHp == player.MaxHp) { return false; }
if (HideInDuty && isInDuty) { return false; }
// Alliance frames only matter in alliance raids (duty). Skip HideInDuty for them.
if (HideInDuty && isInDuty && !isAllianceFrames) { return false; }
if (HideInIslandSanctuary && isInIslandSanctuary) { return false; }