From 5e506270a8e5c891070672b60b7a397a4b1aec1e Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 23 Oct 2026 15:10:19 +0200 Subject: companion: shoved for a moment, then mad beside the balloon The shoved frame held for as long as a balloon stayed, which read as her stumbling for ten seconds. It now lasts T.shoveHold (1.2 s), then she is mad beside the balloon until it goes. shovedAt is reset to 0 when the shove ends and 0 reads as the shove's first instant, so the binding cannot show mad for a tick before the handler stamps the time. Co-Authored-By: Claude Opus 5.5 --- desktop/companion/Companion.qml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'desktop/companion/Companion.qml') diff --git a/desktop/companion/Companion.qml b/desktop/companion/Companion.qml index 7f740a3..0a1360f 100644 --- a/desktop/companion/Companion.qml +++ b/desktop/companion/Companion.qml @@ -143,12 +143,17 @@ PanelWindow { return (Notify.queue || []).some(n => NC.shown(Notify.config, n, Notify.dnd, Notify.drawerOpen, Notify.snoozeUntil, root.now)); } - onShovedChanged: if (root.shoved) root.say("shoved") + property double shovedAt: 0 + onShovedChanged: { + root.shovedAt = root.shoved ? Date.now() : 0; + if (root.shoved) root.say("shoved"); + } // --- state ---------------------------------------------------------- readonly property var mood: Mood.pick({ now: root.now, destructAt: root.destructAt, dodging: root.dodging, shoved: root.shoved, + shovedAt: root.shovedAt, recording: root.asst.recording, busy: root.asst.busy, repliedAt: root.repliedAt, clicks: root.clicks, mockAt: root.mockAt, typingAt: root.typingAt, wakeAt: root.wakeAt, monologue: root.monologue, idle: root.idle, -- cgit v1.2.3