MCPet
- mcpet
- src
// 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 |
| 🍌 |
\\_____/
`,
`
_____
/ \\
| - - |
| 🍌 |
\\_____/
`,
],
};