diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-23 13:58:18 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-23 13:58:18 +0200 |
| commit | 2b2e8a0ea6345cbf16741154dc326bf8c7ba312a (patch) | |
| tree | 8991e06939e940319984f836d699890f91b27f1d /docs/superpowers/plans/2026-10-23-companion.md | |
| parent | 14a2c755d6b4488c8572dcfa5d64f673fae9cedc (diff) | |
| download | quickshell-2b2e8a0ea6345cbf16741154dc326bf8c7ba312a.tar.gz quickshell-2b2e8a0ea6345cbf16741154dc326bf8c7ba312a.zip | |
companion: the dress set, a shoved frame, several references per frame
The dress frames are made. What the tries taught is in frames.txt beside
each line: klein turns the blindfold into an eye mask under strong
expressions, so those take it off (BARE) and the rest name it as one solid
band (EYES); standing "shoved" read as walking in four seeds, so it is
airborne, edited from the seed-7 attempt kept in candidates/; a back view
fits "watch", her watching the screen while the user types; klein would
neither draw the game's Virtuous Treaty nor move a sword, nor turn her
three-quarters, so muse takes only the arms of her official art.
gen-frames now takes several references per frame (a + b): the first is
edited, the rest are images the prompt points at. The leotard set loses
the blindfold too. shoved gets a frame of its own instead of mad: in the
spec's table and the plan's Mood.js and its test.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/superpowers/plans/2026-10-23-companion.md')
| -rw-r--r-- | docs/superpowers/plans/2026-10-23-companion.md | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/docs/superpowers/plans/2026-10-23-companion.md b/docs/superpowers/plans/2026-10-23-companion.md index 371e9fa..3543b88 100644 --- a/docs/superpowers/plans/2026-10-23-companion.md +++ b/docs/superpowers/plans/2026-10-23-companion.md @@ -281,6 +281,9 @@ for (let i = 0; i < ladder.length; i++) { assert.strictEqual(state(all), ladder[i][0], "everything from " + ladder[i][0] + " down"); } +// Shoved has a frame of its own: knocked off balance, glaring at the balloon. +assert.deepStrictEqual(M.pick(calm({ shoved: true })), { state: "shoved", frame: "shoved" }); + // Idle levels and their frames. assert.deepStrictEqual(M.pick(calm({ idle: 1 })), { state: "bored", frame: "sleepy" }); assert.deepStrictEqual(M.pick(calm({ idle: 2 })), { state: "yawn", frame: "yawn" }); @@ -396,7 +399,7 @@ function pick(s) { if (since < T.destruct) return st("destruct", "base"); if (since < T.destruct + T.scorched) return st("scorched", "scorched"); if (s.dodging) return st("dodge", "base"); - if (s.shoved) return st("shoved", "mad"); + if (s.shoved) return st("shoved", "shoved"); if (s.recording) return st("listen", "listen"); if (s.busy) return st("think", "think"); if (s.now - s.repliedAt < T.waveHold) return st("wave", "wave"); |
