From 5de1f3e7b886ec2fdd8b83f8032908e693a8e407 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 7 Aug 2026 15:58:23 +0700 Subject: [PATCH] feign death plays dead everywhere, and the attack keys go exclusive - feign death plays dead for real: the body collapses and stays down, both bars read 0 and DEAD, the nameplate drops, the combat hum goes quiet - melee and Auto Shot are exclusive now: starting one stops the other, even mid-swing - another client's addon chatter no longer prints as party chat - right-click presses look pressed, rage and happiness read on their real scale, and the login boxes blink their caret Co-Authored-By: Claude Fable 5 --- Cargo.lock | 1 + crates/benilla-app/Cargo.toml | 4 + crates/benilla-app/assets/ui/StanceBar.xml | 13 +- crates/benilla-app/assets/ui/UnitPopup.xml | 16 + crates/benilla-app/src/creature_anim.rs | 42 ++ .../benilla-app/src/creature_anim/driver.rs | 26 +- crates/benilla-app/src/login/mod.rs | 62 ++- crates/benilla-app/src/net/apply/chat.rs | 123 +++++ crates/benilla-app/src/player/drunk.rs | 11 +- crates/benilla-app/src/sound/creature.rs | 13 +- crates/benilla-app/src/sound/kit.rs | 28 +- crates/benilla-app/src/sound/mixer.rs | 175 ++++++- crates/benilla-app/src/sound/mod.rs | 76 ++- crates/benilla-app/src/sound/zone.rs | 8 +- crates/benilla-app/src/target/mod.rs | 6 +- crates/benilla-app/src/target/scan.rs | 251 ++++++++- crates/benilla-app/src/ui_action/cast_send.rs | 221 +++++++- crates/benilla-app/src/ui_cast.rs | 15 +- crates/benilla-app/src/ui_chat/feed.rs | 7 + crates/benilla-app/src/ui_pet.rs | 480 ++++++++++++++---- .../src/ui_script/multibar_stance_tests.rs | 33 ++ .../src/ui_script/pet_bar_tests.rs | 53 ++ .../src/ui_script/shipped_xml_tests.rs | 31 ++ .../src/ui_script/unit_frame_tests.rs | 87 ++++ crates/benilla-app/src/ui_unit.rs | 85 +++- crates/benilla-app/src/vplates.rs | 11 +- .../examples/addon_chat_probe.rs | 387 ++++++++++++++ crates/benilla-protocol/src/messages/chat.rs | 22 + crates/benilla-protocol/src/messages/mod.rs | 26 + .../messages/update_object/fields/tests.rs | 118 +++++ .../src/messages/update_object/fields/unit.rs | 110 +++- crates/benilla-protocol/src/world/session.rs | 73 +++ crates/benilla-protocol/tests/chat.rs | 61 +++ crates/benilla-ui/src/script/button.rs | 58 ++- crates/benilla-ui/src/script/extract.rs | 6 +- crates/benilla-ui/src/script/tests/button.rs | 64 +++ 36 files changed, 2615 insertions(+), 188 deletions(-) create mode 100644 crates/benilla-protocol/examples/addon_chat_probe.rs diff --git a/Cargo.lock b/Cargo.lock index bb4f2b2e..0c72824c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -596,6 +596,7 @@ dependencies = [ "bevy_egui", "bytemuck", "cosmic-text", + "cpal 0.17.1", "crossbeam-channel", "fontdb", "half", diff --git a/crates/benilla-app/Cargo.toml b/crates/benilla-app/Cargo.toml index 69ffa096..b43c8112 100644 --- a/crates/benilla-app/Cargo.toml +++ b/crates/benilla-app/Cargo.toml @@ -71,6 +71,10 @@ cosmic-text = "0.16" # public-in-crate types). Pinned to the exact version `cosmic-text` 0.16 depends on so there's one # `fontdb` in the graph. fontdb = "0.23" +# kira's own backend dependency, named directly so the mixer can hand cpal an explicit device buffer +# size instead of accepting `BufferSize::Default` (decision 1026). `CpalBackendSettings`' fields ARE +# cpal types, so this must stay the exact version kira resolves — one cpal in the graph. +cpal = "0.17" kira = { version = "0.12", default-features = false, features = ["cpal", "mp3", "wav", "pcm", "adpcm"] } mint = "0.5" # The gossip greeting is a weighted random DRAW per menu-open, not a fixed pick (wow-re diff --git a/crates/benilla-app/assets/ui/StanceBar.xml b/crates/benilla-app/assets/ui/StanceBar.xml index 1dc805f1..58f43bed 100644 --- a/crates/benilla-app/assets/ui/StanceBar.xml +++ b/crates/benilla-app/assets/ui/StanceBar.xml @@ -27,6 +27,15 @@