// animations.ts
export type PetType = "cat" | "dog" | "dragon" | "alien";
export type ActionType =
| "idle"
| "eating"
| "snack"
| "feast"
| "bath"
| "playing_ball"
| "playing_chase"
| "playing_puzzle"
| "sleeping"
| "sick"
| "banana_eating";
// Cat animations
export const catAnimations: Record<ActionType, string[]> = {
idle: [
`
/\\_/\\
( o.o )
> ^ <
`,
`
/\\_/\\
( -.- )
> ^ <
`,
`
/\\_/\\
( o.o )
> ^
`,
`
/\\_/\\
( -.- )
> ^ <
`,
`
/\\_/\\
( o.o )
> ^ <
`,
],
eating: [
`
/\\_/\\
( o.o )
(>^๐<)
`,
`
/\\_/\\
( -.- )
(>^๐<)
`,
`
/\\_/\\
( o.o )
(>^๐<)
`,
`
/\\_/\\
( -.- )
(>^๐<)
`,
`
๐/\\_/\\๐
( o.o )
(>^โค๏ธ<)
`,
],
feast: [
`
/\\_/\\
( o.o )
(>^๐<)
`,
`
/\\_/\\
( -.- )
(>^๐<)
`,
`
/\\_/\\
( o.o )
(>^๐<)
`,
`
๐/\\_/\\๐
( o.o )
(>^โค๏ธ<)
`,
`
๐/\\_/\\๐
( -.- )
(>^โค๏ธ<)
`,
],
snack: [
`
/\\_/\\
( o.o )
(>^๐ช<)
`,
`
/\\_/\\
( -.- )
(>^๐ช<)
`,
`
/\\_/\\
( o.o )
(>^๐ช<)
`,
`
/\\_/\\
( -.- )
(>^๐ช<)
`,
`
/\\_/\\
( o.o )
(>^ ^<)
`,
],
bath: [
`
/\\_/\\
( o.o )
> ^ < o
\\___/ oo
`,
`
/\\_/\\
( -.- )
> ^ < o
\\___/oo
`,
`
/\\_/\\
( o.o )
> ^ <o
\\___/ oo
`,
`
/\\_/\\
( -.- )
> ^ <o
\\___/oo
`,
`
/\\_/\\
( o.o )
> ^ < o
\\___/ o
`,
],
playing_ball: [
`
/\\_/\\
( o.o )
>โฝ<
`,
`
/\\_/\\
( o.o )
>โฝ<
`,
`
/\\_/\\
( o.o )
>โฝ<
`,
`
/\\_/\\
( o.o )
>โฝ<
`,
`
/\\_/\\
( o.o )
>โฝ<
`,
],
playing_chase: [
`
/\\_/\\
( o.o )
>๐<
`,
`
/\\_/\\
( o.o )
>๐<
`,
`
/\\_/\\
( o.o )
>๐<
`,
`
/\\_/\\
( o.o )
>๐<
`,
`
/\\_/\\
( o.o )
>๐<
`,
],
playing_puzzle: [
`
/\\_/\\
( o.o )
>๐งฉ<
`,
`
/\\_/\\
( -.- )
>๐งฉ<
`,
`
/\\_/\\
( o.o )
>๐งฉ<
`,
`
/\\_/\\
(๐ฎ.๐ฎ)
>๐งฉ<
`,
`
/\\_/\\
(๐.๐)
>๐งฉ<
`,
],
sleeping: [
`
/\\_/\\
( -.- )
> ^ <
๐ค
`,
`
/\\_/\\
( -.- )
> ^ <
๐ค
`,
`
/\\_/\\
( -.- )
> ^ <
๐ค
`,
`
/\\_/\\
( -.- )
> ^ <
๐ค
`,
`
/\\_/\\
( -.- )
> ^ <
๐ค
`,
],
sick: [
`
/\\_/\\
( o.o )
> ^ <
๐`,
`
/\\_/\\
( -.- )
> <
๐`,
`
/\\_/\\
( T.T )
> ^ <
๐`,
`
/\\_/\\
( -.- )
> <
๐`,
`
/\\_/\\
( T.T )
> ^ <
๐`,
],
banana_eating: [
`
/\\_/\\
( o.o )
> ^ <
๐
`,
`
/\\_/\\
( o.o )
>๐<
`,
`
/\\_/\\
( -.- )
>๐<
`,
`
/\\_/\\
( o.o )
>๐<
`,
`
/\\_/\\
( -.- )
>๐<
`,
],
};
// Dog animations
export const dogAnimations: Record<ActionType, string[]> = {
idle: [
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
`,
],
eating: [
`
/^\\___/^\\
/ o o \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ ๐ ๐ \\
V ๐ V
\\ ___ /
\\/ \\/
`,
],
snack: [
`
/^\\___/^\\
/ o o \\
V ๐ช V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V ๐ช V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\
V ๐ช V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V ๐ช V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ ๐ ๐ \\
V ๐ช V
\\ ___ /
\\/ \\/
`,
],
feast: [
`
/^\\___/^\\
/ o o \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ ๐ ๐ \\
V ๐ V
\\ ___ /
\\/ \\/
`,
],
bath: [
`
/^\\___/^\\ o
/ o o \\
V V V o
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\ o
V V V
\\ ___ / o
\\/ \\/
`,
`
/^\\___/^\\ o
/ o o \\
V V V o
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\ o
V V V
\\ ___ / o
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\ o
V V V
\\ ___ /
\\/ \\/
`,
],
playing_ball: [
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
โฝ
`,
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
โฝ
`,
`
/^\\___/^\\
/ o o \\
V V V โฝ
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\ โฝ
V V V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\ โฝ
/ o o \\
V V V
\\ ___ /
\\/ \\/
`,
],
playing_chase: [
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
๐
`,
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
๐
`,
`
/^\\___/^\\
/ o o \\
V V V ๐
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\ ๐
V V V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\ ๐
/ o o \\
V V V
\\ ___ /
\\/ \\/
`,
],
playing_puzzle: [
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
๐งฉ
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
๐งฉ
`,
`
/^\\___/^\\
/ o o \\
V V V ๐งฉ
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ ๐ฎ ๐ฎ \\
V V V
\\ ___ /
\\/ \\/
๐งฉ
`,
`
/^\\___/^\\
/ ๐ ๐ \\
V V V
\\ ___ /
\\/ \\/
๐งฉ
`,
],
sleeping: [
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
๐ค
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
๐ค
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
๐ค
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
๐ค
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
๐ค
`,
],
sick: [
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
๐ค
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
๐ค
`,
`
/^\\___/^\\
/ T T \\
V V V
\\ ___ /
\\/ \\/
๐ค
`,
`
/^\\___/^\\
/ - - \\
V V V
\\ ___ /
\\/ \\/
๐
`,
`
/^\\___/^\\
/ T T \\
V V V
\\ ___ /
\\/ \\/
๐
`,
],
banana_eating: [
`
/^\\___/^\\
/ o o \\
V V V
\\ ___ /
\\/ \\/
๐
`,
`
/^\\___/^\\
/ o o \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ o o \\
V ๐ V
\\ ___ /
\\/ \\/
`,
`
/^\\___/^\\
/ - - \\
V ๐ V
\\ ___ /
\\/ \\/
`,
],
};
// Dragon animations
export const dragonAnimations: Record<ActionType, string[]> = {
idle: [
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
`,
],
eating: [
`
/\\
/ \\
/ ^^ \\ ๐ฅ
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\ ๐ฅ
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\ ๐ฅ
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\ ๐ฅ
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\ ๐ฅ
/ \\
/ \\
`,
],
snack: [
`
/\\
/ \\
/ ^^ \\ ๐ช
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\ ๐ช
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\ ๐ช
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\ ๐ช
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
`,
],
feast: [
`
/\\
/ \\
/ ^^ \\ ๐ฅ๐
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\ ๐ฅ๐
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\ ๐ฅ๐
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\ ๐ฅ
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\ ๐ฅ
/ \\
/ \\
`,
],
bath: [
`
/\\ o
/ \\ o
/ ^^ \\
/ \\
/ \\
`,
`
/\\ o
/ \\ o
/ -- \\
/ \\
/ \\
`,
`
/\\ o
/ \\ o
/ ^^ \\
/ \\
/ \\
`,
`
/\\ o
/ \\o
/ -- \\
/ \\
/ \\
`,
`
/\\ o
/ \\
/ ^^ \\
/ \\
/ \\
`,
],
playing_ball: [
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
โฝ
`,
`
/\\
/ \\
/ ^^ \\
/ \\ โฝ
/ \\
`,
`
/\\
/ \\
/ ^^ \\ โฝ
/ \\
/ \\
`,
`
/\\
/ \\ โฝ
/ ^^ \\
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
โฝ
`,
],
playing_chase: [
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
๐
`,
`
/\\
/ \\
/ ^^ \\
/ \\ ๐
/ \\
`,
`
/\\
/ \\
/ ^^ \\ ๐
/ \\
/ \\
`,
`
/\\
/ \\ ๐
/ ^^ \\
/ \\
/ \\
`,
`
/\\ ๐
/ \\
/ ^^ \\
/ \\
/ \\
`,
],
playing_puzzle: [
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
๐งฉ
`,
`
/\\
/ \\
/ -- \\
/ \\ ๐งฉ
/ \\
`,
`
/\\
/ \\
/ ^^ \\ ๐งฉ
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
๐งฉ
`,
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
๐งฉ
`,
],
sleeping: [
`
/\\
/ \\
/ -- \\
/ \\
/ \\
๐ค
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
๐ค
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
๐ค
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
๐ค
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
๐ค
`,
],
sick: [
`
/\\
/ \\
/ xx \\
/ \\
/ \\
๐ค
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
๐ค
`,
`
/\\
/ \\
/ xx \\
/ \\
/ \\
๐
`,
`
/\\
/ \\
/ -- \\
/ \\
/ \\
๐
`,
`
/\\
/ \\
/ xx \\
/ \\
/ \\
๐ค
`,
],
banana_eating: [
`
/\\
/ \\
/ ^^ \\ ๐
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\ ๐
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\ ๐
/ \\
/ \\
`,
`
/\\
/ \\
/ -- \\ ๐
/ \\
/ \\
`,
`
/\\
/ \\
/ ^^ \\
/ \\
/ \\
`,
],
};
// Alien animations
export const alienAnimations: Record<ActionType, string[]> = {
idle: [
`
_____
/ \\
| o o |
| v |
\\_____/
`,
`
_____
/ \\
| - - |
| v |
\\_____/
`,
`
_____
/ \\
| o o |
| v |
\\_____/
`,
`
_____
/ \\
| - - |
| v |
\\_____/
`,
`
_____
/ \\
| o o |
| v |
\\_____/
`,
],
feast: [
`
_____
/ \\
| o o |
| ๐ |
\\_____/
`,
`
_____
/ \\
| - - |
| ๐ |
\\_____/
`,
`
_____
/ \\
| o o |
| ๐ |
\\_____/
`,
`
_____
/ \\
| - - |
| ๐ |
\\_____/
`,
`
_____
/ \\
| ๐ ๐ |
| ๐ |
\\_____/
`,
],
eating: [
`
_____
/ \\
| o o |
| ๐ |
\\_____/
`,
`
_____
/ \\
| - - |
| ๐ |
\\_____/
`,
`
_____
/ \\
| o o |
| ๐ |
\\_____/
`,
`
_____
/ \\
| - - |
| ๐ |
\\_____/
`,
`
_____
/ \\
| ๐ ๐ |
| ๐ |
\\_____/
`,
],
snack: [
`
_____
/ \\
| o o |
| ๐ช |
\\_____/
`,
`
_____
/ \\
| - - |
| ๐ช |
\\_____/
`,
`
_____
/ \\
| o o |
| ๐ช |
\\_____/
`,
`
_____
/ \\
| - - |
| ๐ช |
\\_____/
`,
`
_____
/ \\
| ๐ ๐ |
| ๐ช |
\\_____/
`,
],
bath: [
`
_____ o
/ \\ o
| o o |
| v |
\\_____/
`,
`
_____ o
/ \\
| - - | o
| v |
\\_____/
`,
`
_____ o
/ \\
| o o |
| v | o
\\_____/
`,
`
_____
/ \\ o
| - - |
| v | o
\\_____/
`,
`
_____
/ \\
| o o | o
| v |
\\_____/ o
`,
],
playing_ball: [
`
_____
/ \\
| o o |
| v |
\\_____/
โฝ
`,
`
_____
/ \\
| o o |
| v |
\\_____/ โฝ
`,
`
_____
/ \\
| o o | โฝ
| v |
\\_____/
`,
`
_____
/ \\ โฝ
| o o |
| v |
\\_____/
`,
`
_____ โฝ
/ \\
| o o |
| v |
\\_____/
`,
],
playing_chase: [
`
_____
/ \\
| o o |
| v |
\\_____/
๐
`,
`
_____
/ \\
| o o |
| v |
\\_____/ ๐
`,
`
_____
/ \\
| o o | ๐
| v |
\\_____/
`,
`
_____
/ \\ ๐
| o o |
| v |
\\_____/
`,
`
_____ ๐
/ \\
| o o |
| v |
\\_____/
`,
],
playing_puzzle: [
`
_____
/ \\
| o o |
| v |
\\_____/
๐งฉ
`,
`
_____
/ \\
| - - |
| v |
\\_____/
๐งฉ
`,
`
_____
/ \\
| o o |
| v |
\\_____/
๐งฉ
`,
`
_____
/ \\
| ๐ฎ ๐ฎ |
| v |
\\_____/
๐งฉ
`,
`
_____
/ \\
| ๐ ๐ |
| v |
\\_____/
๐งฉ
`,
],
sleeping: [
`
_____
/ \\
| - - |
| v |
\\_____/
๐ค
`,
`
_____
/ \\
| - - |
| v |
\\_____/
๐ค
`,
`
_____
/ \\
| - - |
| v |
\\_____/
๐ค
`,
`
_____
/ \\
| - - |
| v |
\\_____/
๐ค
`,
`
_____
/ \\
| - - |
| v |
\\_____/
๐ค
`,
],
sick: [
`
_____
/ \\
| x x |
| v |
\\_____/
๐ค
`,
`
_____
/ \\
| - - |
| v |
\\_____/
๐ค
`,
`
_____
/ \\
| x x |
| v |
\\_____/
๐
`,
`
_____
/ \\
| - - |
| v |
\\_____/
๐
`,
`
_____
/ \\
| x x |
| v |
\\_____/
๐ค
`,
],
banana_eating: [
`
_____
/ \\
| o o |
| v |
\\_____/
๐
`,
`
_____
/ \\
| o o |
| ๐ |
\\_____/
`,
`
_____
/ \\
| - - |
| ๐ |
\\_____/
`,
`
_____
/ \\
| o o |
| ๐ |
\\_____/
`,
`
_____
/ \\
| - - |
| ๐ |
\\_____/
`,
],
};