quickshell: give Archie a gallop for the ball, move his bed next to the bowl
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
36360544ee
commit
8eda5c82b5
1 changed files with 61 additions and 5 deletions
|
|
@ -1206,6 +1206,52 @@ in
|
||||||
"........TTT..........TTT....................",
|
"........TTT..........TTT....................",
|
||||||
"........TTTTT........TTTTT.................."
|
"........TTTTT........TTTTT.................."
|
||||||
]
|
]
|
||||||
|
// Galloping for the ball. A bound, not a trot: reaching, with
|
||||||
|
// the hind legs thrown back and the front legs stretched out
|
||||||
|
// ahead — then everything gathered under him. Same body and
|
||||||
|
// tail as walkB; it is entirely in the legs.
|
||||||
|
readonly property var runA: [
|
||||||
|
"...............................KKKKKKKK.....",
|
||||||
|
"..............................KKKKKKKKKK....",
|
||||||
|
"KKKK..........................KKKKKKKKKKK...",
|
||||||
|
"KKKK..........................KKKKK.KKKKK...",
|
||||||
|
"..KKKKKKKKKKKKKKKKKKKKKKKKKKRRKKKK..TTKKKKK.",
|
||||||
|
".KKKKKKKKKKKKKKKKKKKKKKKKKKKRRKKKKTTTTTTTTT.",
|
||||||
|
"..KKKKKKKKKKKKKKKKKKKKKKKKKKRRKKKKTTTTTTTT..",
|
||||||
|
"..KKKKKKKKKKKKKKKKKKKKKKKKKKRRKKKKTTTTT.....",
|
||||||
|
"...KKKKKKKKKKKKKKKKKKKKKKKKKTTKKKK..........",
|
||||||
|
"...KKKKKKKKKKKKKKKKKKKKKKKKKTTTKKK..........",
|
||||||
|
"...KKKKKKKKKKKKKKKKKKKKKKKKTTTT.............",
|
||||||
|
".....KKKKKKKKKKKKKKKKKKKKKTTTT..............",
|
||||||
|
"....TTKKKKKKKKKKKKKKKKKKKTTTT...............",
|
||||||
|
".....TTTTT..............TTTT................",
|
||||||
|
"....TTTTT................TTTT...............",
|
||||||
|
"...TTTTT..................TTTT..............",
|
||||||
|
"..TTTTT....................TTTT.............",
|
||||||
|
"..TTTTT....................TTTT.............",
|
||||||
|
".TTTTTT....................TTTTTT..........."
|
||||||
|
]
|
||||||
|
readonly property var runB: [
|
||||||
|
"...............................KKKKKKKK.....",
|
||||||
|
"..............................KKKKKKKKKK....",
|
||||||
|
"KKKK..........................KKKKKKKKKKK...",
|
||||||
|
"KKKK..........................KKKKK.KKKKK...",
|
||||||
|
"..KKKKKKKKKKKKKKKKKKKKKKKKKKRRKKKK..TTKKKKK.",
|
||||||
|
".KKKKKKKKKKKKKKKKKKKKKKKKKKKRRKKKKTTTTTTTTT.",
|
||||||
|
"..KKKKKKKKKKKKKKKKKKKKKKKKKKRRKKKKTTTTTTTT..",
|
||||||
|
"..KKKKKKKKKKKKKKKKKKKKKKKKKKRRKKKKTTTTT.....",
|
||||||
|
"...KKKKKKKKKKKKKKKKKKKKKKKKKTTKKKK..........",
|
||||||
|
"...KKKKKKKKKKKKKKKKKKKKKKKKKTTTKKK..........",
|
||||||
|
"...KKKKKKKKKKKKKKKKKKKKKKKKTTTT.............",
|
||||||
|
".....KKKKKKKKKKKKKKKKKKKKKTTTT..............",
|
||||||
|
"....TTKKKKKKKKKKKKKKKKKKKTTTT...............",
|
||||||
|
".........TTTTT........TTTT..................",
|
||||||
|
"..........TTTTT......TTTT...................",
|
||||||
|
"...........TTTTT....TTTT....................",
|
||||||
|
"............TTTTT..TTTT.....................",
|
||||||
|
"............TTTTT..TTTT.....................",
|
||||||
|
"............TTTTTTTTTTTT...................."
|
||||||
|
]
|
||||||
// Standing: walkA's planted legs, walkB's tail. Flipping
|
// Standing: walkA's planted legs, walkB's tail. Flipping
|
||||||
// between this and walkA is the wag.
|
// between this and walkA is the wag.
|
||||||
readonly property var wag: [
|
readonly property var wag: [
|
||||||
|
|
@ -1310,8 +1356,12 @@ in
|
||||||
readonly property real roamL: Theme.barWidth + 12
|
readonly property real roamL: Theme.barWidth + 12
|
||||||
readonly property real roamR: Math.max(roamL,
|
readonly property real roamR: Math.max(roamL,
|
||||||
archie.width - Theme.frameWidth - cols * cell - 12)
|
archie.width - Theme.frameWidth - cols * cell - 12)
|
||||||
readonly property real bowlX: Math.max(roamL, roamR - 120)
|
// Bed tucked into the bottom right corner, bowl beside it —
|
||||||
readonly property real bedX: Math.max(roamL, Math.min(bowlX - 500, roamL + 300))
|
// his corner of the room. The bowl derives from the bed so
|
||||||
|
// they cannot drift into each other.
|
||||||
|
readonly property real bedX: Math.max(roamL,
|
||||||
|
archie.width - Theme.frameWidth - 54 * cell - 8)
|
||||||
|
readonly property real bowlX: Math.max(roamL, bedX - 16 * cell - 26)
|
||||||
// Stand so his muzzle lands in the bowl, not his shoulder.
|
// Stand so his muzzle lands in the bowl, not his shoulder.
|
||||||
readonly property real bowlStandX: bowlX - 32 * cell
|
readonly property real bowlStandX: bowlX - 32 * cell
|
||||||
// Lying down, centred on the cushion.
|
// Lying down, centred on the cushion.
|
||||||
|
|
@ -1481,15 +1531,21 @@ in
|
||||||
archie.arrive();
|
archie.arrive();
|
||||||
} else {
|
} else {
|
||||||
let dir = archie.targetX > archie.px ? 1 : -1;
|
let dir = archie.targetX > archie.px ? 1 : -1;
|
||||||
let sp = archie.errand === "ball" ? 3.0 : 1.5;
|
let run = archie.errand === "ball";
|
||||||
|
let sp = run ? 3.0 : 1.5;
|
||||||
archie.facing = dir;
|
archie.facing = dir;
|
||||||
archie.px += dir * sp;
|
archie.px += dir * sp;
|
||||||
archie.stride += sp;
|
archie.stride += sp;
|
||||||
if (archie.stride >= 3 * archie.cell) {
|
// A gallop covers more ground per stride than
|
||||||
|
// a trot, so the frames hold longer even though
|
||||||
|
// he is moving faster.
|
||||||
|
if (archie.stride >= (run ? 6 : 3) * archie.cell) {
|
||||||
archie.stride = 0;
|
archie.stride = 0;
|
||||||
archie.stepped = !archie.stepped;
|
archie.stepped = !archie.stepped;
|
||||||
}
|
}
|
||||||
archie.frame = archie.stepped ? archie.walkB : archie.walkA;
|
archie.frame = run
|
||||||
|
? (archie.stepped ? archie.runB : archie.runA)
|
||||||
|
: (archie.stepped ? archie.walkB : archie.walkA);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
archie.frame = archie.mode === "eat" ? archie.eat
|
archie.frame = archie.mode === "eat" ? archie.eat
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue