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....................",
|
||||
"........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
|
||||
// between this and walkA is the wag.
|
||||
readonly property var wag: [
|
||||
|
|
@ -1310,8 +1356,12 @@ in
|
|||
readonly property real roamL: Theme.barWidth + 12
|
||||
readonly property real roamR: Math.max(roamL,
|
||||
archie.width - Theme.frameWidth - cols * cell - 12)
|
||||
readonly property real bowlX: Math.max(roamL, roamR - 120)
|
||||
readonly property real bedX: Math.max(roamL, Math.min(bowlX - 500, roamL + 300))
|
||||
// Bed tucked into the bottom right corner, bowl beside it —
|
||||
// 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.
|
||||
readonly property real bowlStandX: bowlX - 32 * cell
|
||||
// Lying down, centred on the cushion.
|
||||
|
|
@ -1481,15 +1531,21 @@ in
|
|||
archie.arrive();
|
||||
} else {
|
||||
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.px += dir * 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.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 {
|
||||
archie.frame = archie.mode === "eat" ? archie.eat
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue