/target, /assist and /follow, and right click opens a clam

- /target and /assist find units by name like the original, and /follow walks you behind your target
- right click opens clams and lockboxes, and the tooltip promises it
- the freeze thaws clean, poses release instead of sticking, and you drop to neutral standing before it grips
- unit frame art layers over the bars like the original

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Sam
2026-08-02 18:02:44 +07:00
co-authored by Claude Fable 5
parent 2f40b6a9a0
commit 94de741cb1
36 changed files with 2086 additions and 204 deletions
+6
View File
@@ -600,6 +600,12 @@ pub(crate) enum ClientCommand {
spell_index: u8,
go_target: Option<u64>,
},
/// Open a bag item (`CMSG_OPEN_ITEM`, same bag addressing) — the drain's fork for an
/// *openable* click (`ItemInfo::openable`): a clam, an unlocked lockbox, a wrapped gift. The
/// server answers `SMSG_LOOT_RESPONSE` on the **item's own guid**, so the ordinary loot feed
/// opens a window over a thing in the bag; a wrapped gift instead swaps entry in place and
/// sends no window. Refusals arrive as `InventoryFailure` (still locked, dead, flying).
OpenItem { bag_index: u8, slot: u8 },
/// Equip a bag item (`CMSG_AUTOEQUIP_ITEM`, same bag addressing) — the drain's fork for an
/// *equippable* click, mirroring the real client's equip-vs-use decision. Refusals come back
/// as `InventoryFailure` events onto the UI error line.