@euhenio/pi-buddy 1.0.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -3
- package/extensions/buddy.ts +308 -17
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -17,13 +17,22 @@ pi install npm:@euhenio/pi-buddy # из npm
|
|
|
17
17
|
> Если раньше расширение лежало файлом в `~/.pi/agent/extensions/buddy.ts` — удалите тот файл,
|
|
18
18
|
> иначе будут две команды `/buddy`. Питомец сохранится: его состояние в `~/.pi/agent/buddy.json`.
|
|
19
19
|
|
|
20
|
+
## Анимация
|
|
21
|
+
|
|
22
|
+
У каждого питомца — пиксельный спрайт и 16 кадров: моргание, свои «фирменные» движения в простое
|
|
23
|
+
(кот машет хвостом и умывается, утка кивает, сова подмигивает, дракон пускает дымок…), ходьба,
|
|
24
|
+
пока агент работает, прыжки от радости, позы «лежит», «грустит» и «спит» с дыханием.
|
|
25
|
+
Смена анимаций идёт через базовую стойку, без резких скачков. В простое питомец иногда
|
|
26
|
+
сам берёт любимую игрушку.
|
|
27
|
+
|
|
20
28
|
## Команды
|
|
21
29
|
|
|
22
30
|
| Команда | Что делает |
|
|
23
31
|
|---|---|
|
|
24
32
|
| `/buddy` | показать / спрятать |
|
|
25
|
-
| `/buddy choose [вид]` | выбрать
|
|
26
|
-
| `/buddy feed` `pet` `
|
|
33
|
+
| `/buddy choose [вид]` | выбрать питомца: ВЕО (пиксели), немецкая овчарка, блоб, кот, утка, призрак, сова, аксолотль, дракон — все пиксельные, с анимацией |
|
|
34
|
+
| `/buddy feed` `pet` `nap` | покормить, погладить, уложить |
|
|
35
|
+
| `/buddy play [предмет]` | поиграть любимой игрушкой: у каждого их две (мячик и косточка, клубок и мышка, фрисби и канат…) |
|
|
27
36
|
| `/buddy name <кличка>` | дать имя |
|
|
28
37
|
| `/buddy stats` | статистика |
|
|
29
38
|
| `/buddy dock` `compact` `big` `top` | где и как показывать |
|
|
@@ -31,7 +40,7 @@ pi install npm:@euhenio/pi-buddy # из npm
|
|
|
31
40
|
| `/buddy anim on\|off\|auto` | анимация (auto — не мешает прокрутке вне fullscreen) |
|
|
32
41
|
| `/buddy pxcolor fg\|bg\|auto` | отрисовка пиксельного пса (fg — для терминала IntelliJ) |
|
|
33
42
|
| `/buddy learn [тема\|пожелание]` | модель pi придумает новые фразы |
|
|
34
|
-
| `/buddy phrases` / `phrases clean` | файл своих фраз / убрать
|
|
43
|
+
| `/buddy phrases` / `phrases clean` | файл своих фраз / убрать те, что не прозвучат (длинные, не та поза) |
|
|
35
44
|
|
|
36
45
|
В чате можно попросить агента: «добавь питомцу фраз про Kafka» — он вызовет инструмент `buddy_phrases`.
|
|
37
46
|
|
package/extensions/buddy.ts
CHANGED
|
@@ -352,6 +352,7 @@ interface Species {
|
|
|
352
352
|
miniGrown?: string;
|
|
353
353
|
say?: Partial<Record<Topic, string[]>>;
|
|
354
354
|
px?: Record<PxFrame, string[]>; // пиксельные кадры (полублоки, truecolor); art — ASCII-запаска
|
|
355
|
+
items?: PxItem[]; // два любимых предмета
|
|
355
356
|
}
|
|
356
357
|
|
|
357
358
|
/**
|
|
@@ -366,6 +367,28 @@ const PX_PAL: Record<string, [number, number, number]> = {
|
|
|
366
367
|
N: [8, 8, 10],
|
|
367
368
|
P: [232, 120, 140],
|
|
368
369
|
p: [180, 80, 100],
|
|
370
|
+
// остальные питомцы
|
|
371
|
+
"E": [18, 18, 22],
|
|
372
|
+
"e": [240, 240, 236],
|
|
373
|
+
"w": [240, 240, 236],
|
|
374
|
+
"g": [190, 190, 196],
|
|
375
|
+
"Y": [250, 208, 60],
|
|
376
|
+
"y": [205, 150, 35],
|
|
377
|
+
"O": [240, 128, 40],
|
|
378
|
+
"C": [80, 205, 175],
|
|
379
|
+
"c": [35, 140, 125],
|
|
380
|
+
"B": [150, 98, 55],
|
|
381
|
+
"b": [95, 60, 32],
|
|
382
|
+
"k": [245, 160, 190],
|
|
383
|
+
"m": [205, 95, 145],
|
|
384
|
+
"V": [95, 185, 85],
|
|
385
|
+
"v": [45, 115, 55],
|
|
386
|
+
"R": [225, 70, 60],
|
|
387
|
+
"T": [205, 145, 75],
|
|
388
|
+
"t": [150, 98, 48],
|
|
389
|
+
"L": [120, 190, 255],
|
|
390
|
+
"s": [110, 110, 118],
|
|
391
|
+
"S": [160, 160, 168],
|
|
369
392
|
};
|
|
370
393
|
type PxFrame = "S" | "SB" | "SP" | "SE" | "WM" | "WU" | "WA" | "WB" | "L" | "LB" | "LP" | "LT" | "SAD" | "SADB" | "Z" | "ZB";
|
|
371
394
|
/** Кадры пиксельного ВЕО, 24×16 пикселей → 24 колонки × 8 строк */
|
|
@@ -680,7 +703,7 @@ const VEO_PX: Record<PxFrame, string[]> = {
|
|
|
680
703
|
* Анимация по состоянию: every — каждые N тиков по 500 мс, seq — кадры по кругу.
|
|
681
704
|
* В простое редко и в основном «стоит», чтобы не отвлекать; в работе — шаг.
|
|
682
705
|
*/
|
|
683
|
-
type PxState = "work" | "happy" | "love" | "eat" | "idle" | "rest" | "sad" | "sleep";
|
|
706
|
+
type PxState = "work" | "happy" | "love" | "eat" | "idle" | "rest" | "sad" | "sleep" | "toss" | "chew";
|
|
684
707
|
const PX_ANIM: Record<PxState, { every: number; seq: PxFrame[] }> = {
|
|
685
708
|
work: { every: 1, seq: ["S", "WA", "S", "WB"] }, // идёт
|
|
686
709
|
happy: { every: 1, seq: ["S", "WM", "WU", "WM"] }, // виляет хвостом
|
|
@@ -690,6 +713,190 @@ const PX_ANIM: Record<PxState, { every: number; seq: PxFrame[] }> = {
|
|
|
690
713
|
rest: { every: 2, seq: ["L", "L", "L", "LB", "L", "LP", "L", "LP", "L", "L", "LT", "L"] }, // прилёг
|
|
691
714
|
sad: { every: 2, seq: ["SAD", "SAD", "SAD", "SADB", "SAD", "SAD"] },
|
|
692
715
|
sleep: { every: 3, seq: ["Z", "ZB"] }, // дышит во сне
|
|
716
|
+
toss: { every: 1, seq: ["S", "WM", "WU", "WM"] }, // играет: подпрыгивает за предметом
|
|
717
|
+
chew: { every: 2, seq: ["L", "LP", "L", "LP", "L", "LB"] }, // лёжа возится с предметом
|
|
718
|
+
};
|
|
719
|
+
/** Состояния «лёжа»: переход между ними идёт через L, а не через стойку */
|
|
720
|
+
const PX_LYING = new Set<PxState>(["rest", "sad", "sleep", "chew"]);
|
|
721
|
+
|
|
722
|
+
/**
|
|
723
|
+
* Любимые предметы. toss — прыгает в руки (мячик скачет), chew — лежит у лап.
|
|
724
|
+
* Рисуются поверх кадра у земли рядом с питомцем; say — дежурные фразы, пока идёт игра.
|
|
725
|
+
*/
|
|
726
|
+
interface PxItem {
|
|
727
|
+
name: string;
|
|
728
|
+
mode: "toss" | "chew";
|
|
729
|
+
art: string[];
|
|
730
|
+
say: string[];
|
|
731
|
+
}
|
|
732
|
+
const IT: Record<string, PxItem> = {
|
|
733
|
+
ball: { name: "мячик", mode: "toss", art: [".RR.", "RwRR", "RRRR", ".RR."], say: ["гоняет мячик", "ловит мячик", "апорт!", "мячик! мячик!"] },
|
|
734
|
+
bone: { name: "косточка", mode: "chew", art: ["g...g", "wwwww", "g...g"], say: ["грызёт косточку", "охраняет косточку", "хрум-хрум"] },
|
|
735
|
+
frisbee: { name: "фрисби", mode: "toss", art: [".RRR.", "ROOOR", ".RRR."], say: ["ловит фрисби", "фрисби! ещё!", "прыжок за тарелкой"] },
|
|
736
|
+
rope: { name: "канат", mode: "chew", art: ["T.T.T.", "wTwTwT", ".T.T.T"], say: ["треплет канат", "тянет канат", "рррр, канат!"] },
|
|
737
|
+
cherry: { name: "вишенка", mode: "toss", art: ["..v", ".v.", "RvR", "RR."], say: ["подбрасывает вишенку", "ням, вишенка"] },
|
|
738
|
+
sugar: { name: "сахарок", mode: "chew", art: ["ww", "wg"], say: ["тает от сахарка", "облизывает сахарок"] },
|
|
739
|
+
yarn: { name: "клубок", mode: "toss", art: [".mm.", "mkmm", "mmkm", ".mm."], say: ["гоняет клубок", "запутался в нитках", "катает клубок"] },
|
|
740
|
+
mouse: { name: "мышка", mode: "chew", art: ["..gg", "gEgg", "sggg"], say: ["охотится на мышку", "мышка моя!", "трогает мышку лапкой"] },
|
|
741
|
+
rubber: { name: "уточка-пищалка", mode: "toss", art: [".YO", "YYY", "YY."], say: ["пищит уточкой", "играет с пищалкой"] },
|
|
742
|
+
bread: { name: "хлебушек", mode: "chew", art: [".TT.", "TTTT", "tTTt"], say: ["клюёт хлебушек", "крошки!", "ням-ням хлеб"] },
|
|
743
|
+
lantern: { name: "фонарик", mode: "toss", art: [".b.", "YYY", "YOY", "bbb"], say: ["светит фонариком", "парит с фонариком"] },
|
|
744
|
+
cookie: { name: "печенька", mode: "chew", art: [".TT.", "TtTT", "TTtT", ".TT."], say: ["хрустит печенькой", "призрачная печенька"] },
|
|
745
|
+
feather: { name: "пёрышко", mode: "toss", art: ["..w", ".w.", ".w.", "w.."], say: ["ловит пёрышко", "чистит пёрышко"] },
|
|
746
|
+
book: { name: "книжка", mode: "chew", art: ["RRRR", "Rwww", "RRRR"], say: ["читает книжку", "изучает документацию", "листает страницы"] },
|
|
747
|
+
bubbles: { name: "пузырьки", mode: "toss", art: ["L..", "..L", ".L."], say: ["пускает пузырьки", "буль-буль"] },
|
|
748
|
+
shell: { name: "ракушка", mode: "chew", art: [".k.", "kwk", "kkk"], say: ["любуется ракушкой", "слушает ракушку"] },
|
|
749
|
+
coin: { name: "монетка", mode: "toss", art: [".Y.", "YyY", ".Y."], say: ["подкидывает монетку", "орёл или решка?"] },
|
|
750
|
+
gold: { name: "сокровище", mode: "chew", art: ["..Y...", ".YyY..", "YyYyYy"], say: ["лежит на сокровищах", "пересчитывает золото", "моё золото!"] },
|
|
751
|
+
};
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
/** Пиксельные кадры остальных питомцев (те же 16 кадров, что у Сальсы) */
|
|
755
|
+
const ZOO_PX: Record<string, Record<PxFrame, string[]>> = {
|
|
756
|
+
blob: {
|
|
757
|
+
S: ["........................", "........................", "........................", "........................", "..........cccc..........", "........ccCCCCcc........", ".......cCCwCCCCCc.......", "......cCCwCCCCCCCc......", "......cCCCECCCECCc......", ".....cCCCCECCCECCCc.....", ".....cCCCCCCCCCCCCc.....", ".....cCCCCCkCkCCCCc.....", ".....cCCCCCCCCCCCCc.....", "......cCCCCCCCCCCc......", ".......cccccccccc.......", "........................"],
|
|
758
|
+
SB: ["........................", "........................", "........................", "........................", "..........cccc..........", "........ccCCCCcc........", ".......cCCwCCCCCc.......", "......cCCwCCCCCCCc......", "......cCCCCCCCCCCc......", ".....cCCCCCCCCCCCCc.....", ".....cCCCCCCCCCCCCc.....", ".....cCCCCCkCkCCCCc.....", ".....cCCCCCCCCCCCCc.....", "......cCCCCCCCCCCc......", ".......cccccccccc.......", "........................"],
|
|
759
|
+
SP: ["........................", "........................", "........................", "........................", "...........cccc.........", "........ccCCCCcc........", "........cCCwCCCCCc......", "......cCCwCCCCCCCc......", ".......cCCCECCCECCc.....", ".....cCCCCECCCECCCc.....", "......cCCCCCCCCCCCCc....", ".....cCCCCCkCkCCCCc.....", "......cCCCCCCCCCCCCc....", "......cCCCCCCCCCCc......", "........cccccccccc......", "........................"],
|
|
760
|
+
SE: ["........................", "........................", "..........cccc..........", ".........cCCCCc.........", "........cCwCCCCc........", "........cCwCCCCc........", ".......cCCCCCCCCc.......", ".......cCCECCECCc.......", ".......cCCECCECCc.......", ".......cCCCCCCCCc.......", ".......cCCCkkCCCc.......", ".......cCCCCCCCCc.......", ".......cCCCCCCCCc.......", "......cCCCCCCCCCCc......", "......cccccccccccc......", "........................"],
|
|
761
|
+
WM: ["........................", "..........cccc..........", ".........cCCCCc.........", "........cCwCCCCc........", "........cCwCCCCc........", ".......cCCCCCCCCc.......", ".......cCCECCECCc.......", ".......cCCECCECCc.......", ".......cCCCCCCCCc.......", ".......cCCCkkCCCc.......", ".......cCCCCCCCCc.......", ".......cCCCCCCCCc.......", "......cCCCCCCCCCCc......", "......cccccccccccc......", "........................", "........................"],
|
|
762
|
+
WU: ["..........cccc..........", ".........cCCCCc.........", "........cCwCCCCc........", "........cCwCCCCc........", ".......cCCCCCCCCc.......", ".......cCCECCECCc.......", ".......cCCECCECCc.......", ".......cCCCCCCCCc.......", ".......cCCCkkCCCc.......", ".......cCCCCCCCCc.......", ".......cCCCCCCCCc.......", "......cCCCCCCCCCCc......", "......cccccccccccc......", "........................", "........................", "........................"],
|
|
763
|
+
WA: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", ".......ccCCCCCCcc.......", "......cCCwCCCCCCCc......", ".....cCCCCECCCECCCc.....", ".....cCCCCCCCCCCCCc.....", "....cCCCCCCkCkCCCCCc....", "....cCCCCCCCCCCCCCCc....", ".....cccccccccccccc.....", "........................"],
|
|
764
|
+
WB: ["........................", "........................", "..........cccc..........", ".........cCCCCc.........", "........cCwCCCCc........", "........cCwCCCCc........", ".......cCCCCCCCCc.......", ".......cCCECCECCc.......", ".......cCCECCECCc.......", ".......cCCCCCCCCc.......", ".......cCCCkkCCCc.......", ".......cCCCCCCCCc.......", ".......cCCCCCCCCc.......", "......cCCCCCCCCCCc......", "......cccccccccccc......", "........................"],
|
|
765
|
+
L: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", ".......ccCCCCCCcc.......", "......cCCwCCCCCCCc......", ".....cCCCCECCCECCCc.....", ".....cCCCCCCCCCCCCc.....", "....cCCCCCCkCkCCCCCc....", "....cCCCCCCCCCCCCCCc....", ".....cccccccccccccc.....", "........................"],
|
|
766
|
+
LB: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", ".......ccCCCCCCcc.......", "......cCCwCCCCCCCc......", ".....cCCCCCCCCCCCCc.....", ".....cCCCCCCCCCCCCc.....", "....cCCCCCCkCkCCCCCc....", "....cCCCCCCCCCCCCCCc....", ".....cccccccccccccc.....", "........................"],
|
|
767
|
+
LP: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", "........ccCCCCCCcc......", "......cCCwCCCCCCCc......", "......cCCCCECCCECCCc....", ".....cCCCCCCCCCCCCc.....", ".....cCCCCCCkCkCCCCCc...", "....cCCCCCCCCCCCCCCc....", "......cccccccccccccc....", "........................"],
|
|
768
|
+
LT: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", ".......ccCCCCCCcc.......", "......cCCwCCCCCCCc......", ".....cCCCCECCCECCCc.....", ".....cCCCCCCCCCCCCc.....", "....cCCCCCCkCkCCCCCc....", "....cCCCCCCCCCCCCCCc....", ".....cccccccccccccc.....", "........................"],
|
|
769
|
+
SAD: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", ".......ccCCCCCCcc.......", "......cCCwCCCCCCCc......", ".....cCCCCECCCECCCc.....", ".....cCCCCLCCCLCCCc.....", "....cCCCCCCkCkCCCCCc....", "....cCCCCCCCCCCCCCCc....", ".....cccccccccccccc.....", "........................"],
|
|
770
|
+
SADB: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", ".......ccCCCCCCcc.......", "......cCCwCCCCCCCc......", ".....cCCCCCCCCCCCCc.....", ".....cCCCCCCCCCCCCc.....", "....cCCCCCCkCkCCCCCc....", "....cCCCCCCCCCCCCCCc....", ".....cccccccccccccc.....", "........................"],
|
|
771
|
+
Z: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", ".......ccCCCCCCcc.......", "......cCCwCCCCCCCc......", ".....cCCCCCCCCCCCCc.....", ".....cCCCCCCCCCCCCc.....", "....cCCCCCCkCkCCCCCc....", "....cCCCCCCCCCCCCCCc....", ".....cccccccccccccc.....", "........................"],
|
|
772
|
+
ZB: ["........................", "........................", "........................", "........................", "........................", "........................", "..........cccc..........", ".........Ccccc..........", ".......ccCCCCCCcc.......", "......cCCwCCCCCCCc......", ".....cCCCCCCCCCCCCc.....", ".....cCCCCCCCCCCCCc.....", "....cCCCCCCkCkCCCCCc....", "....cCCCCCCCCCCCCCCc....", ".....cccccccccccccc.....", "........................"],
|
|
773
|
+
},
|
|
774
|
+
cat: {
|
|
775
|
+
S: ["........................", "........................", "......s......s..........", "......sS....sS..........", "......sSS..sSS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSESSSSESs.........", ".....sSSSkkSSSs.........", "......sSSSSSSs..........", "......sSSSSSSs....s.....", ".....sSSSwwSSSs...sS....", ".....sSSwwwwSSs..sS.....", ".....sSSwwwwSSssSS......", ".....sSSSSSSSSSSs.......", "......ss.ss.ss.........."],
|
|
776
|
+
SB: ["........................", "........................", "......s......s..........", "......sS....sS..........", "......sSS..sSS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSSSSSSSSs.........", ".....sSSSkkSSSs.........", "......sSSSSSSs..........", "......sSSSSSSs....s.....", ".....sSSSwwSSSs...sS....", ".....sSSwwwwSSs..sS.....", ".....sSSwwwwSSssSS......", ".....sSSSSSSSSSSs.......", "......ss.ss.ss.........."],
|
|
777
|
+
SP: ["........................", "........................", "......s......s..........", "......sS....sS..........", "......sSS..sSS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSESSSSESs.........", ".....sSSSkkSSSs..s......", "......sSSSSSSs...sS.....", "......sSSSSSSs...sS.....", ".....sSSSwwSSS..sS......", ".....sSSwwwwSS.sS.......", ".....sSSwwwwSSss........", ".....sSSSSSSSSSSs.......", "......ss.ss.ss.........."],
|
|
778
|
+
SE: ["........................", "........................", "......s.......s.........", "......sS....sSS.........", "......sSS..sSS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSESSSSESs.........", ".....sSSSkkSSSs.........", "......sSSSSSSs..........", "......sSSSSSSs....s.....", ".....sSSSwwSSSs...sS....", ".....sSSwwwwSSs..sS.....", ".....sSSwwwwSSssSS......", ".....sSSSSSSSSSSs.......", "......ss.ss.ss.........."],
|
|
779
|
+
WM: ["........................", "......s......s..........", "......sS....sS..........", "......sSS..sSS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSESSSSESs.........", ".....sSSSkkSSSs..s......", "......sSSSSSSs...sS.....", "......sSSSSSSs...sS.....", ".....sSSSwwSSS..sS......", ".....sSSwwwwSS.sS.......", ".....sSSwwwwSSss........", ".....sSSSSSSSSSSs.......", "......ss.ss.ss..........", "........................"],
|
|
780
|
+
WU: ["......s......s..........", "......sS....sS..........", "......sSS..sSS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSESSSSESs.........", ".....sSSSkkSSSs..s......", "......sSSSSSSs...sS.....", "......sSSSSSSs...sS.....", ".....sSSSwwSSS..sS......", ".....sSSwwwwSS.sS.......", ".....sSSwwwwSSss........", ".....sSSSSSSSSSSs.......", "......ss.ss.ss..........", "........................", "........................"],
|
|
781
|
+
WA: ["........................", "........................", "......s......s..........", "......sS....sS..........", "......sSS..sSS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSESSSSESs.........", ".....sSSSkkSSSs..s......", "......sSSSSSSs...sS.....", "......sSSSSSSs...sS.....", ".....sSSSwwSSS..sS......", ".....sSSwwwwSS.sS.......", ".....sSSwwwwSSss........", ".....sSSSSSSSSSSs.......", "......ss.ss.ss.........."],
|
|
782
|
+
WB: ["........................", "........................", "......s......s..........", "......sS....sS..........", "......sSS..sSS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSESSSSESs.........", ".....sSwSkkSSSs.........", "......swwSSSSs..........", "......sSSSSSSs....s.....", ".....sSSSwwSSSs...sS....", ".....sSSwwwwSSs..sS.....", ".....sSSwwwwSSssSS......", ".....sSSSSSSSSSSs.......", "......ss.ss.ss.........."],
|
|
783
|
+
L: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "......s......s..........", "......sS....sS..........", "......sSSSSSSS..........", ".....sSESSSSESs.........", ".....sSSSkkSSSssssss....", "....sSSSSSSSSSSSSSSSs...", "....sSSSSSSSSSSSSSSSs...", ".....ssssssssssssss.....", "........................"],
|
|
784
|
+
LB: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "......s......s..........", "......sS....sS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSSSkkSSSssssss....", "....sSSSSSSSSSSSSSSSs...", "....sSSSSSSSSSSSSSSSs...", ".....ssssssssssssss.....", "........................"],
|
|
785
|
+
LP: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "......s......s..........", "......sS....sS..........", "......sSSSSSSS..........", ".....sSESSSSESs...s.....", ".....sSSSkkSSSssssSs....", "....sSSSSSSSSSSSSSSSs...", "....sSSSSSSSSSSSSSSSs...", ".....ssssssssssssss.....", "........................"],
|
|
786
|
+
LT: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "......s......s..........", "......sS....sS..........", "......sSSSSSSS..........", ".....sSESSSSESs.........", ".....sSSSkkSSSssssss....", "....sSSSSSSSSSSSSSSSs...", "....sSSSSSSSSSSSSSSSs...", ".....ssssssssssssss.....", "........................"],
|
|
787
|
+
SAD: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "......s......s..........", "......sS....sS..........", "......sSSSSSSS..........", ".....sSESSSSESs.........", ".....sSLSkkSLSssssss....", "....sSSSSSSSSSSSSSSSs...", "....sSSSSSSSSSSSSSSSs...", ".....ssssssssssssss.....", "........................"],
|
|
788
|
+
SADB: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "......s......s..........", "......sS....sS..........", "......sSSSSSSS..........", ".....sSSSSSSSSs.........", ".....sSSSkkSSSssssss....", "....sSSSSSSSSSSSSSSSs...", "....sSSSSSSSSSSSSSSSs...", ".....ssssssssssssss.....", "........................"],
|
|
789
|
+
Z: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "........................", "........ss..ss..........", ".......sSSssSSs.........", "......sSSSSSSSSs........", "......sSsSSsSSSSs.......", ".....sSSSSkSSSSSSs......", ".....sSSSSSSSSSSSSs.....", "......ssSSSSSSSSSss.....", "........ssssssssss......"],
|
|
790
|
+
ZB: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", ".........s..ss..........", "........ssssss..........", ".......sSSssSSs.........", "......sSSSSSSSSs........", "......sSsSSsSSSSs.......", ".....sSSSSkSSSSSSs......", ".....sSSSSSSSSSSSSs.....", "......ssSSSSSSSSSss.....", "........ssssssssss......"],
|
|
791
|
+
},
|
|
792
|
+
duck: {
|
|
793
|
+
S: ["........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", "............YYYY........", ".......Y...YYYYY........", ".......YYYYYYYYYY.......", ".......YYYyyyyYYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "...........O..O.........", "..........OO.OO........."],
|
|
794
|
+
SB: ["........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYYYYOO.....", "...........YYYYYOOOO....", "............YYYY........", ".......Y...YYYYY........", ".......YYYYYYYYYY.......", ".......YYYyyyyYYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "...........O..O.........", "..........OO.OO........."],
|
|
795
|
+
SP: ["........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", ".......Y...YYYYY........", ".......YYYYYYYYYY.......", ".......YYYyyyyYYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "...........O..O.........", "..........OO.OO........."],
|
|
796
|
+
SE: ["........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", ".........yy.YYYY........", ".......YyyyYYYYY........", ".......YYYYYYYYYY.......", ".......YYYyyyyYYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "...........O..O.........", "..........OO.OO........."],
|
|
797
|
+
WM: ["........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", ".........yy.YYYY........", ".......YyyyYYYYY........", ".......YYYYYYYYYY.......", ".......YYYyyyyYYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "...........O..O.........", "..........OO.OO.........", "........................"],
|
|
798
|
+
WU: ["........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", ".........yy.YYYY........", ".......YyyyYYYYY........", ".......YYYYYYYYYY.......", ".......YYYyyyyYYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "...........O..O.........", "..........OO.OO.........", "........................", "........................"],
|
|
799
|
+
WA: ["........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", "............YYYY........", ".......Y...YYYYY........", ".......YYYYYYYYYY.......", ".......YYYyyyyYYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "..........O....O........", ".........OO....OO......."],
|
|
800
|
+
WB: ["........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", ".......Y...YYYYY........", ".......YYYYYYYYYY.......", ".......YYYyyyyYYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "...........O..O.........", "..........OO.OO........."],
|
|
801
|
+
L: ["........................", "........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", ".......Y....YYYY........", ".......YYYYYYYYYYY......", ".......YYYyyyyyYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "........................"],
|
|
802
|
+
LB: ["........................", "........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYYYYOO.....", "...........YYYYYOOOO....", ".......Y....YYYY........", ".......YYYYYYYYYYY......", ".......YYYyyyyyYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "........................"],
|
|
803
|
+
LP: ["........................", "........................", "........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", ".......Y...YYYYYOOOO....", ".......YYYYYYYYYYY......", ".......YYYyyyyyYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "........................"],
|
|
804
|
+
LT: ["........................", "........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYYYOOOO....", ".......Y....YYYY........", ".......YYYYYYYYYYY......", ".......YYYyyyyyYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "........................"],
|
|
805
|
+
SAD: ["........................", "........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYEYYOO.....", "...........YYYLYOOOO....", ".......Y....YYYY........", ".......YYYYYYYYYYY......", ".......YYYyyyyyYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "........................"],
|
|
806
|
+
SADB: ["........................", "........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYYYYOO.....", "...........YYYYYOOOO....", ".......Y....YYYY........", ".......YYYYYYYYYYY......", ".......YYYyyyyyYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "........................"],
|
|
807
|
+
Z: ["........................", "........................", "........................", "........................", "........................", "............YYYY........", "...........YYYYYY.......", "...........YYYYYY.......", "...........YYYYYO.......", ".......Y....YYYYyy......", ".......YYYYYYYYYYY......", ".......YYYyyyyyYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "........................"],
|
|
808
|
+
ZB: ["........................", "........................", "........................", "........................", "............YY..........", "...........YYYYY........", "...........YYYYYY.......", "...........YYYYYY.......", "...........YYYYYO.......", ".......Y..Y.YYYYyy......", ".......YYYYYYYYYYY......", ".......YYYyyyyyYYY......", ".......YYYyyyyyYYY......", "........YYYYYYYYY.......", ".........YYYYYYY........", "........................"],
|
|
809
|
+
},
|
|
810
|
+
ghost: {
|
|
811
|
+
S: ["........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw.......", ".......g.g.gg.g.g.......", "........................"],
|
|
812
|
+
SB: ["........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwgwwgwwg.......", ".......gwwgwwgwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw.......", ".......g.g.gg.g.g.......", "........................"],
|
|
813
|
+
SP: ["........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw.......", ".......g.g.gg.g.g.......", "........................", "........................"],
|
|
814
|
+
SE: ["........................", "........................", "........................", ".........gggggg.........", "........gggggggg........", ".......gggggggggg.......", ".......gggEggEggg.......", ".......gggEggEggg.......", ".......gggggggggg.......", ".......ggggkkgggg.......", ".......gggggggggg.......", ".......gggggggggg.......", ".......gggggggggg.......", ".......gggggggggg.......", ".......g.g.gg.g.g.......", "........................"],
|
|
815
|
+
WM: ["........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwEEwwwg.......", ".......gwwwEEwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw.......", ".......g.g.gg.g.g.......", "........................", "........................"],
|
|
816
|
+
WU: ["........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwEEwwwg.......", ".......gwwwEEwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw.......", ".......g.g.gg.g.g.......", "........................", "........................", "........................"],
|
|
817
|
+
WA: ["........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......wgwwgwwgwg.......", "........g.gg.g.g........", "........................"],
|
|
818
|
+
WB: ["........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......wgwwgwwgwg.......", "........g.gg.g.g........", "........................", "........................"],
|
|
819
|
+
L: ["........................", "........................", "........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw......."],
|
|
820
|
+
LB: ["........................", "........................", "........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwgwwgwwg.......", ".......gwwgwwgwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw......."],
|
|
821
|
+
LP: ["........................", "........................", "........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......wgwwgwwgwg......."],
|
|
822
|
+
LT: ["........................", "........................", "........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw......."],
|
|
823
|
+
SAD: ["........................", "........................", "........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwEwwEwwg.......", ".......gwwEwwEwwg.......", ".......gwwLwwLwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw......."],
|
|
824
|
+
SADB: ["........................", "........................", "........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwgwwgwwg.......", ".......gwwgwwgwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw......."],
|
|
825
|
+
Z: ["........................", "........................", "........................", "........................", "........................", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwgwwgwwg.......", ".......gwwgwwgwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw......."],
|
|
826
|
+
ZB: ["........................", "........................", "........................", "........................", "..........www...........", ".........gwwwwg.........", "........gwwwwwwg........", ".......gwwwwwwwwg.......", ".......gwwgwwgwwg.......", ".......gwwgwwgwwg.......", ".......gwwwwwwwwg.......", ".......gwwwkkwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwwwwwwwwg.......", ".......gwgwwgwwgw......."],
|
|
827
|
+
},
|
|
828
|
+
owl: {
|
|
829
|
+
S: ["........................", "........................", ".......b........b.......", ".......bB......Bb.......", ".......bBBBBBBBBb.......", "......bBeeeBBeeeBb......", "......bBeEeBBeEeBb......", "......bBeeeOOeeeBb......", "......bBBBBOOBBBBb......", "......bBTTTTTTTTBb......", "......bBTtTTtTTTBb......", "......bBTTTtTTtTBb......", "......bBTTTTTTTTBb......", ".......bBBBBBBBBb.......", "........OO....OO........", "........................"],
|
|
830
|
+
SB: ["........................", "........................", ".......b........b.......", ".......bB......Bb.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", "......bBBBBBBBBBBb......", "......bBBBBOOBBBBb......", "......bBBBBOOBBBBb......", "......bBTTTTTTTTBb......", "......bBTtTTtTTTBb......", "......bBTTTtTTtTBb......", "......bBTTTTTTTTBb......", ".......bBBBBBBBBb.......", "........OO....OO........", "........................"],
|
|
831
|
+
SP: ["........................", "........................", "........b........b......", "........bB......Bb......", "........bBBBBBBBBb......", ".......bBeeeBBeeeBb.....", ".......bBeEeBBeEeBb.....", ".......bBeeeOOeeeBb.....", ".......bBBBBOOBBBBb.....", "......bBTTTTTTTTBb......", "......bBTtTTtTTTBb......", "......bBTTTtTTtTBb......", "......bBTTTTTTTTBb......", ".......bBBBBBBBBb.......", "........OO....OO........", "........................"],
|
|
832
|
+
SE: ["........................", "........................", ".......b........b.......", ".......bB......Bb.......", ".......bBBBBBBBBb.......", "......bBBBBBBeeeBb......", "......bBBBBBBeEeBb......", "......bBBBBOOeeeBb......", "......bBBBBOOBBBBb......", "......bBTTTTTTTTBb......", "......bBTtTTtTTTBb......", "......bBTTTtTTtTBb......", "......bBTTTTTTTTBb......", ".......bBBBBBBBBb.......", "........OO....OO........", "........................"],
|
|
833
|
+
WM: ["........................", ".......b........b.......", ".......bB......Bb.......", ".......bBBBBBBBBb.......", "....b.bBeeeBBeeeBb.b....", "....bbbBeEeBBeEeBbbb....", ".....bbBeeeOOeeeBbb.....", "......bBBBBOOBBBBb......", "......bBTTTTTTTTBb......", "......bBTtTTtTTTBb......", "......bBTTTtTTtTBb......", "......bBTTTTTTTTBb......", ".......bBBBBBBBBb.......", "........OO....OO........", "........................", "........................"],
|
|
834
|
+
WU: [".......b........b.......", ".......bB......Bb.......", ".......bBBBBBBBBb.......", "....b.bBeeeBBeeeBb.b....", "....bbbBeEeBBeEeBbbb....", ".....bbBeeeOOeeeBbb.....", "......bBBBBOOBBBBb......", "......bBTTTTTTTTBb......", "......bBTtTTtTTTBb......", "......bBTTTtTTtTBb......", "......bBTTTTTTTTBb......", ".......bBBBBBBBBb.......", "........OO....OO........", "........................", "........................", "........................"],
|
|
835
|
+
WA: ["........................", "........................", ".......b........b.......", ".......bB......Bb.......", ".......bBBBBBBBBb.......", "......bBeeeBBeeeBb......", "......bBeEeBBeEeBb......", "......bBeeeOOeeeBb......", "......bBBBBOOBBBBb......", "......bBTTTTTTTTBb......", "......bBTtTTtTTTBb......", "......bBTTTtTTtTBb......", "......bBTTTTTTTTBb......", ".......bBBBBBBBBb.......", ".......OO......OO.......", "........................"],
|
|
836
|
+
WB: ["........................", "........................", "........b........b......", "........bB......Bb......", "........bBBBBBBBBb......", ".......bBeeeBBeeeBb.....", ".......bBeEeBBeEeBb.....", ".......bBeeeOOeeeBb.....", ".......bBBBBOOBBBBb.....", "......bBTTTTTTTTBb......", "......bBTtTTtTTTBb......", "......bBTTTtTTtTBb......", "......bBTTTTTTTTBb......", ".......bBBBBBBBBb.......", "........OO....OO........", "........................"],
|
|
837
|
+
L: ["........................", "........................", "........................", "........................", ".......b........b.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", ".....bBeEeBBBeEeBBb.....", ".....bBBBBBOOBBBBBb.....", ".....bBTTTTTTTTTTBb.....", ".....bBTtTTtTTtTTBb.....", ".....bBTTTtTTtTTTBb.....", ".....bBTTTTTTTTTTBb.....", "......bBBBBBBBBBBb......", "........OO....OO........", "........................"],
|
|
838
|
+
LB: ["........................", "........................", "........................", "........................", ".......b........b.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", ".....bBBBBBBBBBBBBb.....", ".....bBBBBBOOBBBBBb.....", ".....bBTTTTTTTTTTBb.....", ".....bBTtTTtTTtTTBb.....", ".....bBTTTtTTtTTTBb.....", ".....bBTTTTTTTTTTBb.....", "......bBBBBBBBBBBb......", "........OO....OO........", "........................"],
|
|
839
|
+
LP: ["........................", "........................", "........................", "........................", ".......b.BBBBB..b.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", ".....bBeEeBBBeEeBBb.....", ".....bBBBBBOOBBBBBb.....", ".....bBTTTTTTTTTTBb.....", ".....bBTtTTtTTtTTBb.....", ".....bBTTTtTTtTTTBb.....", ".....bBTTTTTTTTTTBb.....", "......bBBBBBBBBBBb......", "........OO....OO........", "........................"],
|
|
840
|
+
LT: ["........................", "........................", "........................", "........................", ".......b........b.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", ".....bBeEeBBBeEeBBb.....", ".....bBBBBBOOBBBBBb.....", ".....bBTTTTTTTTTTBb.....", ".....bBTtTTtTTtTTBb.....", ".....bBTTTtTTtTTTBb.....", ".....bBTTTTTTTTTTBb.....", "......bBBBBBBBBBBb......", "........OO....OO........", "........................"],
|
|
841
|
+
SAD: ["........................", "........................", "........................", "........................", ".......b........b.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", ".....bBeEeBBBeEeBBb.....", ".....bBBLBBOOBLBBBb.....", ".....bBTTTTTTTTTTBb.....", ".....bBTtTTtTTtTTBb.....", ".....bBTTTtTTtTTTBb.....", ".....bBTTTTTTTTTTBb.....", "......bBBBBBBBBBBb......", "........OO....OO........", "........................"],
|
|
842
|
+
SADB: ["........................", "........................", "........................", "........................", ".......b........b.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", ".....bBBBBBBBBBBBBb.....", ".....bBBBBBOOBBBBBb.....", ".....bBTTTTTTTTTTBb.....", ".....bBTtTTtTTtTTBb.....", ".....bBTTTtTTtTTTBb.....", ".....bBTTTTTTTTTTBb.....", "......bBBBBBBBBBBb......", "........OO....OO........", "........................"],
|
|
843
|
+
Z: ["........................", "........................", "........................", "........................", ".......b........b.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", ".....bBBbbbBBbbbBBb.....", ".....bBBBBBOOBBBBBb.....", ".....bBTTTTTTTTTTBb.....", ".....bBTtTTtTTtTTBb.....", ".....bBTTTtTTtTTTBb.....", ".....bBTTTTTTTTTTBb.....", "......bBBBBBBBBBBb......", "........OO....OO........", "........................"],
|
|
844
|
+
ZB: ["........................", "........................", "........................", "........................", ".......b.BBBBB..b.......", ".......bBBBBBBBBb.......", "......bBBBBBBBBBBb......", ".....bBBbbbBBbbbBBb.....", ".....bBBBBBOOBBBBBb.....", ".....bBTTTTTTTTTTBb.....", ".....bBTtTTtTTtTTBb.....", ".....bBTTTtTTtTTTBb.....", ".....bBTTTTTTTTTTBb.....", "......bBBBBBBBBBBb......", "........OO....OO........", "........................"],
|
|
845
|
+
},
|
|
846
|
+
axolotl: {
|
|
847
|
+
S: ["........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkEkkEkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", ".......kk..kk..kk.......", ".......mm..mm..mm.......", "........................"],
|
|
848
|
+
SB: ["........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkkkkkkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", ".......kk..kk..kk.......", ".......mm..mm..mm.......", "........................"],
|
|
849
|
+
SP: ["........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "..........m.mkkkkkkm....", ".........mkmkkEkkEkkm...", "..........m.kkkkkkkkm...", "............kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", ".......kk..kk..kk.......", ".......mm..mm..mm.......", "........................"],
|
|
850
|
+
SE: ["........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkEkkEkkm...", ".........mkmkkkkkkkkm...", "..m.......m.kkkmmkkk....", "...m........kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", ".......kk..kk..kk.......", ".......mm..mm..mm.......", "........................"],
|
|
851
|
+
WM: ["........................", "........................", "..............m..m......", ".............mkmmkm.....", "..........m.mkkkkkkm....", ".........mkmkkEkkEkkm...", "..........m.kkkkkkkkm...", "............kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", ".......kk..kk..kk.......", ".......mm..mm..mm.......", "........................", "........................"],
|
|
852
|
+
WU: ["........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkEkkEkkm...", ".........mkmkkkkkkkkm...", "..m.......m.kkkmmkkk....", "...m........kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", ".......kk..kk..kk.......", ".......mm..mm..mm.......", "........................", "........................", "........................"],
|
|
853
|
+
WA: ["........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkEkkEkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", ".....m......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "......kk...kk...kk......", "......mm...mm...mm......", "........................"],
|
|
854
|
+
WB: ["........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "..........m.mkkkkkkm....", ".........mkmkkEkkEkkm...", "..........m.kkkkkkkkm...", "............kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", ".......kk..kk..kk.......", ".......mm..mm..mm.......", "........................"],
|
|
855
|
+
L: ["........................", "........................", "........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkEkkEkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "........................"],
|
|
856
|
+
LB: ["........................", "........................", "........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkkkkkkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "........................"],
|
|
857
|
+
LP: ["........................", "........................", "........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "..........m.mkkkkkkm....", ".........mkmkkEkkEkkm...", "..........m.kkkkkkkkm...", "............kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "........................"],
|
|
858
|
+
LT: ["........................", "........................", "........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkEkkEkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "........................"],
|
|
859
|
+
SAD: ["........................", "........................", "........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkEkkEkkm...", ".........mkmkkLkkLkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "........................"],
|
|
860
|
+
SADB: ["........................", "........................", "........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkkkkkkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "........................"],
|
|
861
|
+
Z: ["........................", "........................", "........................", "........................", "........................", "..............m..m......", ".............mkmmkm.....", "............mkkkkkkm....", "..........m.kkkkkkkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "........................"],
|
|
862
|
+
ZB: ["........................", "........................", "........................", "........................", "..............m.........", ".............mm..m......", "............mmkmmkm.....", "..........m.mkkkkkkm....", ".........mmmkkkkkkkkm...", ".........mkmkkkkkkkkm...", "..........m.kkkmmkkk....", "....m.......kkkkkkk.....", "....kkkkkkkkkkkkkk......", ".....kkkkkkkkkkkkk......", "......kkkkkkkkkkk.......", "........................"],
|
|
863
|
+
},
|
|
864
|
+
dragon: {
|
|
865
|
+
S: ["........................", "........................", "..............v...v.....", "..............VV.VV.....", ".......v.......VVVVVV...", "......vVv......VVEVVVVR.", ".....vVVVv....VVVVVVVVVv", "....vVVVVVv..VVVVVYYY...", "...vVVvVVVVVVVVVVYY.....", "..vv..vVVVVVVVVVYY......", ".vR....VVVYYYYYYVV......", ".v.....VVVYYYYYVVV......", "..v.....VVVVVVVVV.......", "...vvvvVVVVVVVVV........", "........VV....VV........", ".......vvv...vvv........"],
|
|
866
|
+
SB: ["........................", "........................", "..............v...v.....", "..............VV.VV.....", ".......v.......VVVVVV...", "......vVv......VVVVVVVR.", ".....vVVVv....VVVVVVVVVv", "....vVVVVVv..VVVVVYYY...", "...vVVvVVVVVVVVVVYY.....", "..vv..vVVVVVVVVVYY......", ".vR....VVVYYYYYYVV......", ".v.....VVVYYYYYVVV......", "..v.....VVVVVVVVV.......", "...vvvvVVVVVVVVV........", "........VV....VV........", ".......vvv...vvv........"],
|
|
867
|
+
SP: ["........................", "........................", "..............v...v...g.", "..............VV.VV....s", ".......v.......VVVVVV.s.", "......vVv......VVEVVVVR.", ".....vVVVv....VVVVVVVVVv", "....vVVVVVv..VVVVVYYY...", "...vVVvVVVVVVVVVVYY.....", "..vv..vVVVVVVVVVYY......", ".vR....VVVYYYYYYVV......", ".v.....VVVYYYYYVVV......", "..v.....VVVVVVVVV.......", "...vvvvVVVVVVVVV........", "........VV....VV........", ".......vvv...vvv........"],
|
|
868
|
+
SE: ["........................", "........................", "..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VEVVVVVR.", "..............VVVVVVVVVv", "....vvvvvvv..VVVVVYYY...", "...vVVVVVVVVVVVVVYY.....", "..vv.vVVVVVVVVVVYY......", ".vR...vVVYYYYYYYVV......", ".v.....VVVYYYYYVVV......", "..v.....VVVVVVVVV.......", "...vvvvVVVVVVVVV........", ".......VV......VV.......", "......vvv.....vvv......."],
|
|
869
|
+
WM: ["........................", "..............v...v.....", "..............VV.VV....R", ".......v.......VVVVVV.OY", "......vVv......VVEVVVVRO", ".....vVVVv....VVVVVVVVVv", "....vVVVVVv..VVVVVYYY...", "...vVVvVVVVVVVVVVYY.....", "..vv..vVVVVVVVVVYY......", ".vR....VVVYYYYYYVV......", ".v.....VVVYYYYYVVV......", "..v.....VVVVVVVVV.......", "...vvvvVVVVVVVVV........", "........VV....VV........", ".......vvv...vvv........", "........................"],
|
|
870
|
+
WU: ["..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VEVVVVVR.", "..............VVVVVVVVVv", "....vvvvvvv..VVVVVYYY...", "...vVVVVVVVVVVVVVYY.....", "..vv.vVVVVVVVVVVYY......", ".vR...vVVYYYYYYYVV......", ".v.....VVVYYYYYVVV......", "..v.....VVVVVVVVV.......", "...vvvvVVVVVVVVV........", ".......VV......VV.......", "......vvv.....vvv.......", "........................", "........................"],
|
|
871
|
+
WA: ["........................", "........................", "..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VEVVVVVR.", "..............VVVVVVVVVv", "....vvvvvvv..VVVVVYYY...", "...vVVVVVVVVVVVVVYY.....", "..vv.vVVVVVVVVVVYY......", ".vR...vVVYYYYYYYVV......", ".v.....VVVYYYYYVVV......", "..v.....VVVVVVVVV.......", "...vvvvVVVVVVVVV........", ".......VV......VV.......", "......vvv.....vvv......."],
|
|
872
|
+
WB: ["........................", "........................", "..............v...v.....", "..............VV.VV.....", ".......v.......VVVVVV...", "......vVv......VVEVVVVR.", ".....vVVVv....VVVVVVVVVv", "....vVVVVVv..VVVVVYYY...", "...vVVvVVVVVVVVVVYY.....", "..vv..vVVVVVVVVVYY......", ".vR....VVVYYYYYYVV......", ".v.....VVVYYYYYVVV......", "..v.....VVVVVVVVV.......", "...vvvvVVVVVVVVV........", "........VV....VV........", ".......vvv...vvv........"],
|
|
873
|
+
L: ["........................", "........................", "........................", "........................", "........................", "..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VEVVVVVR.", "....vvvvvvv...VVVVVVVVVv", "...vVVVVVVVVVVVVVVYYY...", "..vv.VVVVVVVVVVVVYY.....", ".vR..VVVYYYYYYYYVV......", ".v...VVVVYYYYYYVVVVV....", "..vvvVVVVVVVVVVVVVVVVv..", "........................"],
|
|
874
|
+
LB: ["........................", "........................", "........................", "........................", "........................", "..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VVVVVVVR.", "....vvvvvvv...VVVVVVVVVv", "...vVVVVVVVVVVVVVVYYY...", "..vv.VVVVVVVVVVVVYY.....", ".vR..VVVYYYYYYYYVV......", ".v...VVVVYYYYYYVVVVV....", "..vvvVVVVVVVVVVVVVVVVv..", "........................"],
|
|
875
|
+
LP: ["........................", "........................", "........................", "........................", "........................", "..............v...v.....", "..............VV.VV....s", "...............VVVVVV.s.", "...............VEVVVVVR.", "....vvvvvvv...VVVVVVVVVv", "...vVVVVVVVVVVVVVVYYY...", "..vv.VVVVVVVVVVVVYY.....", ".vR..VVVYYYYYYYYVV......", ".v...VVVVYYYYYYVVVVV....", "..vvvVVVVVVVVVVVVVVVVv..", "........................"],
|
|
876
|
+
LT: ["........................", "........................", "........................", "........................", "........................", "..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VEVVVVVR.", "....vvvvvvv...VVVVVVVVVv", "...vVVVVVVVVVVVVVVYYY...", "..vv.VVVVVVVVVVVVYY.....", ".vR..VVVYYYYYYYYVV......", ".v...VVVVYYYYYYVVVVV....", "..vvvVVVVVVVVVVVVVVVVv..", "........................"],
|
|
877
|
+
SAD: ["........................", "........................", "........................", "........................", "........................", "..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VEVVVVVR.", "....vvvvvvv...VVLVVVVVVv", "...vVVVVVVVVVVVVVVYYY...", "..vv.VVVVVVVVVVVVYY.....", ".vR..VVVYYYYYYYYVV......", ".v...VVVVYYYYYYVVVVV....", "..vvvVVVVVVVVVVVVVVVVv..", "........................"],
|
|
878
|
+
SADB: ["........................", "........................", "........................", "........................", "........................", "..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VVVVVVVR.", "....vvvvvvv...VVVVVVVVVv", "...vVVVVVVVVVVVVVVYYY...", "..vv.VVVVVVVVVVVVYY.....", ".vR..VVVYYYYYYYYVV......", ".v...VVVVYYYYYYVVVVV....", "..vvvVVVVVVVVVVVVVVVVv..", "........................"],
|
|
879
|
+
Z: ["........................", "........................", "........................", "........................", "........................", "..............v...v.....", "..............VV.VV.....", "...............VVVVVV...", "...............VVVVVVVR.", "....vvvvvvv...VVVVVVVVVv", "...vVVVVVVVVVVVVVVYYY...", "..vv.VVVVVVVVVVVVYY.....", ".vR..VVVYYYYYYYYVV......", ".v...VVVVYYYYYYVVVVV....", "..vvvVVVVVVVVVVVVVVVVv..", "........................"],
|
|
880
|
+
ZB: ["........................", "........................", "........................", "........................", "..............v.........", "..............vV..v.....", "..............VV.VV.....", "...............VVVVVV...", "........vvv....VVVVVVVR.", "....vvvvvvvVVVVVVVVVVVVv", "...vVVVVVVVVVVVVVVYYY...", "..vv.VVVVVVVVVVVVYY.....", ".vR..VVVYYYYYYYYVV......", ".v...VVVVYYYYYYVVVVV....", "..vvvVVVVVVVVVVVVVVVVv..", "........................"],
|
|
881
|
+
},
|
|
882
|
+
gsd: {
|
|
883
|
+
S: [".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", "...GGGGGGGGGKTTTTT...p..", "..GKKKKKKKKKKTTTTT......", ".GKKKKKKKKKKKTTTTTG.....", "GKKKKKKKKKKKTTTTTG......", "GKGTTTTTDDDDDTTTTG......", "GKG.GTTTD....GTDTT......", "GKG..GTT.D...GTDTT......", ".GK..GTT.D...GTDTT......", ".....DDD.DD..DD.DDD....."],
|
|
884
|
+
SB: [".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTDTTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", "...GGGGGGGGGKTTTTT...p..", "..GKKKKKKKKKKTTTTT......", ".GKKKKKKKKKKKTTTTTG.....", "GKKKKKKKKKKKTTTTTG......", "GKGTTTTTDDDDDTTTTG......", "GKG.GTTTD....GTDTT......", "GKG..GTT.D...GTDTT......", ".GK..GTT.D...GTDTT......", ".....DDD.DD..DD.DDD....."],
|
|
885
|
+
SP: [".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTDD.P.", "...GGGGGGGGGKTTTTT......", "..GKKKKKKKKKKTTTTT......", ".GKKKKKKKKKKKTTTTTG.....", "GKKKKKKKKKKKTTTTTG......", "GKGTTTTTDDDDDTTTTG......", "GKG.GTTTD....GTDTT......", "GKG..GTT.D...GTDTT......", ".GK..GTT.D...GTDTT......", ".....DDD.DD..DD.DDD....."],
|
|
886
|
+
SE: [".................G...G..", "................GKGGKKG.", "................GTKKKG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", "...GGGGGGGGGKTTTTT...p..", "..GKKKKKKKKKKTTTTT......", ".GKKKKKKKKKKKTTTTTG.....", "GKKKKKKKKKKKTTTTTG......", "GKGTTTTTDDDDDTTTTG......", "GKG.GTTTD....GTDTT......", "GKG..GTT.D...GTDTT......", ".GK..GTT.D...GTDTT......", ".....DDD.DD..DD.DDD....."],
|
|
887
|
+
WM: [".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", "...GGGGGGGGGKTTTTT...p..", "GGGKKKKKKKKKKTTTTT......", "GKKKKKKKKKKKKTTTTTG.....", ".GKKKKKKKKKKTTTTTG......", "..GTTTTTDDDDDTTTTG......", "....GTTTD....GTDTT......", ".....GTT.D...GTDTT......", ".....GTT.D...GTDTT......", ".....DDD.DD..DD.DDD....."],
|
|
888
|
+
WU: [".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "GG............GKTTTTKKKN", "GKG..........GKTTTTTKDDN", ".GKG........GKTTTTTD.PP.", "..GKGGGGGGGGKTTTTT...p..", "..GKKKKKKKKKKTTTTT......", ".GKKKKKKKKKKKTTTTTG.....", ".GKTKKKKKKKKTTTTTG......", "..GTTTTTDDDDDTTTTG......", "....GTTTD....GTDTT......", ".....GTT.D...GTDTT......", ".....GTT.D...GTDTT......", ".....DDD.DD..DD.DDD....."],
|
|
889
|
+
WA: [".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", "...GGGGGGGGGKTTTTT...p..", "..GKKKKKKKKKKTTTTT......", ".GKKKKKKKKKKKTTTTTG.....", "GKKKKKKKKKKKTTTTTG......", "GKGTTTTTDDDDDTTTTG......", "GKG.GTTTDD...GTDTT......", "GKG..GTT..D.GTD..GT.....", ".GK.GTT....GTD....GT....", "...DDD....DD.......DD..."],
|
|
890
|
+
WB: [".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", "...GGGGGGGGGKTTTTT...p..", "..GKKKKKKKKKKTTTTT......", ".GKKKKKKKKKKKTTTTTG.....", "GKKKKKKKKKKKTTTTTG......", "GKGTTTTTDDDDDTTTTG......", "GKG.GTTTD...GTDTT.......", "GKG...GTTD..GTD.GT......", ".GK....GTTD.GT...GT.....", ".......DDD.DDD....DDD..."],
|
|
891
|
+
L: ["........................", "........................", "........................", ".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", ".....GGGGGGGKTTTTT...p..", "..GGGKKKKKKKKTTTTTG.....", ".GKKKKKKKKKKKTTTTTTG....", "GKKKKKKKKKKKTTTTTTTTG...", "GKKKKTTTTTTTTTTTTTTTTTG.", "GGDDDDDDDDDDDDDDDDDDDDD."],
|
|
892
|
+
LB: ["........................", "........................", "........................", ".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTDTTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", ".....GGGGGGGKTTTTT...p..", "..GGGKKKKKKKKTTTTTG.....", ".GKKKKKKKKKKKTTTTTTG....", "GKKKKKKKKKKKTTTTTTTTG...", "GKKKKTTTTTTTTTTTTTTTTTG.", "GGDDDDDDDDDDDDDDDDDDDDD."],
|
|
893
|
+
LP: ["........................", "........................", "........................", ".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTDD.P.", ".....GGGGGGGKTTTTT......", "..GGGKKKKKKKKTTTTTG.....", ".GKKKKKKKKKKKTTTTTTG....", "GKKKKKKKKKKKTTTTTTTTG...", "GKKKKTTTTTTTTTTTTTTTTTG.", "GGDDDDDDDDDDDDDDDDDDDDD."],
|
|
894
|
+
LT: ["........................", "........................", "........................", ".................G..G...", "................GKGGKG..", "................GTKKTG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTD.PP.", ".....GGGGGGGKTTTTT...p..", "..GGGKKKKKKKKTTTTTG.....", ".GKKKKKKKKKKKTTTTTTG....", "GKKKKKKKKKKKTTTTTTTTG...", "GGKKKTTTTTTTTTTTTTTTTTG.", "G.DDDDDDDDDDDDDDDDDDDDD."],
|
|
895
|
+
SAD: ["........................", "........................", "........................", "........................", "................GGGGGG..", "................GKKKKG..", "...............GTETTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTDD...", ".....GGGGGGGKTTTTT......", "..GGGKKKKKKKTTTTTTG.....", ".GKKKKKKKKKKTTTTTTTG....", "GKKKKKKKKKKKTTTTTTTTG...", "GKKKKTTTTTTTTTTTTTTTTTG.", "GGDDDDDDDDDDDDDDDDDDDDD."],
|
|
896
|
+
SADB: ["........................", "........................", "........................", "........................", "................GGGGGG..", "................GKKKKG..", "...............GTDTTKKG.", "..............GKTTTTKKKN", ".............GKTTTTTKDDN", "............GKTTTTTDD...", ".....GGGGGGGKTTTTT......", "..GGGKKKKKKKTTTTTTG.....", ".GKKKKKKKKKKTTTTTTTG....", "GKKKKKKKKKKKTTTTTTTTG...", "GKKKKTTTTTTTTTTTTTTTTTG.", "GGDDDDDDDDDDDDDDDDDDDDD."],
|
|
897
|
+
Z: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "................G.G.....", "...............GKGKG....", "....GGGGGGG...GKTKTKG...", "..GGKKKKKKKGGGKTDDTTKG..", ".GKKKKKKKKTKKKTTTTTTKKKN", "GKKKKKKKKKTTTTTTTTTTKDDN", "GKKKTTTTTTTTTTTTTTTTKKG.", "GKKTTTTTTTTTTTTTTDTTTTTG", "GGDDDDDDDDDDDDDDDDDDDDD."],
|
|
898
|
+
ZB: ["........................", "........................", "........................", "........................", "........................", "........................", "........................", "................G.G.....", "....GGGGGGG....GKGKG....", "..GGKKKKKKKGGGGKTKTKG...", ".GKKKKKKKKTKKKKTDDTTKG..", ".KKKKKKKKKTTTTTTTTTTKKKN", "GKKKTTTTTTTTTTTTTTTTKDDN", "GKKTTTTTTTTTTTTTTTTTKKG.", "GKKTTTTTTTTTTTTTTDTTTTTG", "GGDDDDDDDDDDDDDDDDDDDDD."],
|
|
899
|
+
},
|
|
693
900
|
};
|
|
694
901
|
|
|
695
902
|
const PX_W = 24; // ширина пиксельного спрайта в колонках
|
|
@@ -709,9 +916,15 @@ type PxMode = "bg" | "fg";
|
|
|
709
916
|
* цвета до базовых 16: угольная шерсть становится чёрной, розовый язык — пурпурным.
|
|
710
917
|
* 256-цветную палитру он рисует как есть.
|
|
711
918
|
*/
|
|
712
|
-
const PX_256: Record<string, number> = {
|
|
919
|
+
const PX_256: Record<string, number> = {
|
|
920
|
+
K: 237, D: 234, G: 243, A: 172, N: 232, P: 211, p: 132,
|
|
921
|
+
"E": 233, "e": 255, "w": 255, "g": 250, "Y": 221, "y": 172, "O": 208, "C": 79, "c": 30, "B": 137, "b": 94, "k": 217, "m": 168, "V": 71, "v": 28, "R": 167, "T": 172, "t": 130, "L": 111, "s": 242, "S": 247,
|
|
922
|
+
};
|
|
713
923
|
/** Детали важнее шерсти: если в клетке два разных цвета, а фон рисовать нельзя */
|
|
714
|
-
const PX_PRIO: Record<string, number> = {
|
|
924
|
+
const PX_PRIO: Record<string, number> = {
|
|
925
|
+
A: 5, N: 4, P: 4, p: 3, G: 2, K: 1, D: 1,
|
|
926
|
+
"E": 5, "e": 3, "w": 1, "g": 2, "Y": 1, "y": 2, "O": 3, "C": 1, "c": 2, "B": 1, "b": 2, "k": 2, "m": 2, "V": 1, "v": 2, "R": 3, "T": 1, "t": 2, "L": 4, "s": 2, "S": 1,
|
|
927
|
+
};
|
|
715
928
|
|
|
716
929
|
function autoPxMode(): PxMode {
|
|
717
930
|
const te = `${process.env.TERMINAL_EMULATOR ?? ""} ${process.env.TERM_PROGRAM ?? ""}`;
|
|
@@ -759,13 +972,13 @@ const GROW_LEVEL = 5;
|
|
|
759
972
|
|
|
760
973
|
|
|
761
974
|
const SPECIES: Record<string, Species> = {
|
|
762
|
-
blob: { mini: "(E_E)", label: "Блоб", rarity: "common", art: [" .---. ", " ( E E ) ", " `---' "] },
|
|
763
|
-
cat: { mini: "(=E.E=)", label: "Кот", rarity: "common", art: [" /\\_/\\ ", "( E.E ) ", " > ^ < "] },
|
|
764
|
-
duck: { mini: "<(E )", label: "Утка", rarity: "uncommon", art: [" __ ", " <(E )___", " ( ._> /", " `---' "] },
|
|
765
|
-
ghost: { mini: "(EoE)", label: "Призрак", rarity: "uncommon", art: [" .-. ", " (E E) ", " | O | ", " '~~~' "] },
|
|
766
|
-
owl: { mini: "{E,E}", label: "Сова", rarity: "rare", art: [" ,___, ", " [E,E] ", " /)__) ", " -\"--\"- "] },
|
|
767
|
-
axolotl: { mini: "}(EvE){", label: "Аксолотль", rarity: "epic", art: ["}~(___)~{", "}~(E E)~{", " ( v ) ", " ^^ ^^ "] },
|
|
768
|
-
dragon: { mini: "<(EwE)>~", label: "Дракон", rarity: "legendary", art: [" /\\ /\\ ", " ( E E )~", " \\ ww / ", " `--' "] },
|
|
975
|
+
blob: { px: ZOO_PX.blob, items: [IT.cherry, IT.sugar], mini: "(E_E)", label: "Блоб", rarity: "common", art: [" .---. ", " ( E E ) ", " `---' "] },
|
|
976
|
+
cat: { px: ZOO_PX.cat, items: [IT.yarn, IT.mouse], mini: "(=E.E=)", label: "Кот", rarity: "common", art: [" /\\_/\\ ", "( E.E ) ", " > ^ < "] },
|
|
977
|
+
duck: { px: ZOO_PX.duck, items: [IT.rubber, IT.bread], mini: "<(E )", label: "Утка", rarity: "uncommon", art: [" __ ", " <(E )___", " ( ._> /", " `---' "] },
|
|
978
|
+
ghost: { px: ZOO_PX.ghost, items: [IT.lantern, IT.cookie], mini: "(EoE)", label: "Призрак", rarity: "uncommon", art: [" .-. ", " (E E) ", " | O | ", " '~~~' "] },
|
|
979
|
+
owl: { px: ZOO_PX.owl, items: [IT.feather, IT.book], mini: "{E,E}", label: "Сова", rarity: "rare", art: [" ,___, ", " [E,E] ", " /)__) ", " -\"--\"- "] },
|
|
980
|
+
axolotl: { px: ZOO_PX.axolotl, items: [IT.bubbles, IT.shell], mini: "}(EvE){", label: "Аксолотль", rarity: "epic", art: ["}~(___)~{", "}~(E E)~{", " ( v ) ", " ^^ ^^ "] },
|
|
981
|
+
dragon: { px: ZOO_PX.dragon, items: [IT.coin, IT.gold], mini: "<(EwE)>~", label: "Дракон", rarity: "legendary", art: [" /\\ /\\ ", " ( E E )~", " \\ ww / ", " `--' "] },
|
|
769
982
|
veo: {
|
|
770
983
|
mini: "U(E.E)U", // щенок: уши висят
|
|
771
984
|
frames: [[" _/\\ /\\_ ", " / /______\\ \\", " \\_| E E |_/", " | ,--, | ", " \\ (__) / ", " \\_\\U/_/ "], [" /\\ /\\_ ", " / /______\\ \\", " \\_| E E |_/", " | ,--, | ", " \\ (__) / ", " \\_\\/_/ "]], // язык, дёрнул ухом
|
|
@@ -781,6 +994,8 @@ const SPECIES: Record<string, Species> = {
|
|
|
781
994
|
say: VEO_SAY,
|
|
782
995
|
},
|
|
783
996
|
gsd: {
|
|
997
|
+
px: ZOO_PX.gsd, // спрайт Сальсы в чепрачном окрасе
|
|
998
|
+
items: [IT.frisbee, IT.rope],
|
|
784
999
|
mini: "V(E.E)U", // одно ухо стоит, второе висит
|
|
785
1000
|
frames: [[" /\\ __ ", " / \\______/ \\_ ", " | E E |\\__/", " \\ ## / ", " \\#(__)#/ ", " \\_\\U/_/ "], [" /\\ /\\ ", " / \\______/ \\", " | E E | ", " \\ ## / ", " \\#(__)#/ ", " \\_\\/_/ "]], // язык; висячее ухо на миг встало
|
|
786
1001
|
framesGrown: [[" /\\ /\\ ", " / \\ / \\", " | \\____/ |", " \\ E ## E / ", " \\ ##||## / ", " \\#(__)#/ ", " \\_\\U/_/ "], [" /\\ |\\ ", " / \\ / \\", " | \\____/ |", " \\ E ## E / ", " \\ ##||## / ", " \\#(__)#/ ", " \\_\\/_/ "]],
|
|
@@ -802,6 +1017,7 @@ const SPECIES: Record<string, Species> = {
|
|
|
802
1017
|
art: [" /\\ /\\ ", " / \\____/ \\", " \\ E E /", " \\ .. / ", " \\ (__) / ", " \\_\\/_/ ", " \\U/ "],
|
|
803
1018
|
frames: [[" /\\ /\\ ", " / \\____/ \\", " \\ E E /", " \\ .. / ", " \\ (__) / ", " \\_\\/_/ ", " U "], [" /\\ |\\ ", " / \\____/ \\", " \\ E E /", " \\ .. / ", " \\ (__) / ", " \\_\\/_/ ", " \\U/ "]],
|
|
804
1019
|
px: VEO_PX,
|
|
1020
|
+
items: [IT.ball, IT.bone],
|
|
805
1021
|
say: VEO_SAY,
|
|
806
1022
|
},
|
|
807
1023
|
};
|
|
@@ -989,8 +1205,8 @@ export default function buddy(pi: ExtensionAPI) {
|
|
|
989
1205
|
/** Поза пиксельного пса прямо сейчас; у ASCII-питомцев позы нет */
|
|
990
1206
|
function pose(): "stand" | "walk" | "lie" | null {
|
|
991
1207
|
if (!pxOn()) return null;
|
|
992
|
-
const st =
|
|
993
|
-
return st === "work" ? "walk" : st
|
|
1208
|
+
const st = curState(mood());
|
|
1209
|
+
return st === "work" ? "walk" : PX_LYING.has(st) ? "lie" : "stand";
|
|
994
1210
|
}
|
|
995
1211
|
|
|
996
1212
|
function pool(t: Topic): string[] {
|
|
@@ -1044,6 +1260,7 @@ export default function buddy(pi: ExtensionAPI) {
|
|
|
1044
1260
|
let stbText = "";
|
|
1045
1261
|
let stbSince = 0;
|
|
1046
1262
|
function standby(): string {
|
|
1263
|
+
if (sceneOn()) return scene!.text; // играет — и подпись про игру
|
|
1047
1264
|
const m = mood();
|
|
1048
1265
|
const t: Topic =
|
|
1049
1266
|
m === "work" ? "stbWork" : m === "sleep" ? "stbSleep" : m === "sad" ? "stbSad" : s.muted ? "stbMute" : "stbIdle";
|
|
@@ -1150,10 +1367,74 @@ export default function buddy(pi: ExtensionAPI) {
|
|
|
1150
1367
|
return Date.now() - s.lastActivity > 3 * 60_000 ? "rest" : "idle"; // заскучал — прилёг
|
|
1151
1368
|
}
|
|
1152
1369
|
|
|
1153
|
-
|
|
1370
|
+
// ---- игра с любимым предметом ----
|
|
1371
|
+
let scene: { item: PxItem; until: number; text: string } | null = null;
|
|
1372
|
+
const sceneOn = () => !!scene && Date.now() < scene.until && pxOn() && !working;
|
|
1373
|
+
|
|
1374
|
+
function startScene(item?: PxItem, ms = 12_000) {
|
|
1375
|
+
const items = spec(s).items;
|
|
1376
|
+
const it = item ?? (items?.length ? items[Math.floor(Math.random() * items.length)] : undefined);
|
|
1377
|
+
if (!it) return false;
|
|
1378
|
+
scene = { item: it, until: Date.now() + ms, text: pick(it.say) };
|
|
1379
|
+
return true;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
/** Предмет поверх кадра: у земли, в ближайшем свободном месте справа; мячик подпрыгивает */
|
|
1383
|
+
function withItem(grid: string[], it: PxItem, t: number): string[] {
|
|
1384
|
+
const h = it.art.length;
|
|
1385
|
+
const w = Math.max(...it.art.map((r) => r.length));
|
|
1386
|
+
const free = (x: number) => {
|
|
1387
|
+
for (let y = 16 - h; y < 16; y++) for (let i = 0; i < w; i++) if ((grid[y]?.[x + i] ?? ".") !== ".") return false;
|
|
1388
|
+
return true;
|
|
1389
|
+
};
|
|
1390
|
+
let x0 = PX_W - w;
|
|
1391
|
+
for (let x = PX_W - w; x >= 0; x--) if (free(x)) { x0 = x; break; }
|
|
1392
|
+
const up = it.mode === "toss" ? [0, 2, 3, 2][t % 4] : 0;
|
|
1393
|
+
const out = grid.map((r) => r.padEnd(PX_W, ".").split(""));
|
|
1394
|
+
it.art.forEach((row, i) => {
|
|
1395
|
+
const y = 16 - h + i - up;
|
|
1396
|
+
if (y >= 0) [...row].forEach((c, j) => { if (c !== "." && x0 + j < PX_W) out[y][x0 + j] = c; });
|
|
1397
|
+
});
|
|
1398
|
+
return out.map((r) => r.join(""));
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
/**
|
|
1402
|
+
* Переходы: при смене состояния питомец сначала возвращается в базовую стойку
|
|
1403
|
+
* (S — стоит, L — лежит), а если меняется поза — проходит через обе. Затем новая анимация
|
|
1404
|
+
* играется с первого кадра. Машина состояний сдвигается раз в тик (500 мс).
|
|
1405
|
+
*/
|
|
1406
|
+
let mState: PxState | "" = "";
|
|
1407
|
+
let mStart = 0;
|
|
1408
|
+
let mQueue: PxFrame[] = [];
|
|
1409
|
+
const baseOf = (st: PxState): PxFrame => (PX_LYING.has(st) ? "L" : "S");
|
|
1410
|
+
|
|
1411
|
+
function curState(m: Mood): PxState {
|
|
1412
|
+
if (sceneOn() && m !== "sleep" && m !== "sad") return scene!.item.mode;
|
|
1413
|
+
return pxState(m);
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
function pxTick() {
|
|
1417
|
+
const st = curState(mood());
|
|
1418
|
+
if (st !== mState) {
|
|
1419
|
+
mQueue = mState && baseOf(mState) !== baseOf(st) ? [baseOf(mState), baseOf(st)] : [baseOf(st)];
|
|
1420
|
+
mState = st;
|
|
1421
|
+
mStart = animN + mQueue.length;
|
|
1422
|
+
} else if (mQueue.length) mQueue.shift();
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
/** Текущий кадр: в тихом режиме — первый кадр состояния, без анимации и переходов */
|
|
1154
1426
|
function pxFrame(m: Mood): PxFrame {
|
|
1155
|
-
const
|
|
1156
|
-
|
|
1427
|
+
const st = curState(m);
|
|
1428
|
+
const a = PX_ANIM[st];
|
|
1429
|
+
if (quiet()) return a.seq[0];
|
|
1430
|
+
if (st === mState && mQueue.length) return mQueue[0];
|
|
1431
|
+
return a.seq[Math.floor(Math.max(0, animN - mStart) / a.every) % a.seq.length];
|
|
1432
|
+
}
|
|
1433
|
+
|
|
1434
|
+
/** Сетка кадра с предметом, если идёт игра */
|
|
1435
|
+
function pxGrid(m: Mood): string[] {
|
|
1436
|
+
const grid = spec(s).px![pxFrame(m)];
|
|
1437
|
+
return sceneOn() ? withItem(grid, scene!.item, animN - mStart) : grid;
|
|
1157
1438
|
}
|
|
1158
1439
|
|
|
1159
1440
|
/**
|
|
@@ -1177,7 +1458,7 @@ export default function buddy(pi: ExtensionAPI) {
|
|
|
1177
1458
|
function eyesNow(): { m: Mood; lines: string[] } {
|
|
1178
1459
|
const m = mood();
|
|
1179
1460
|
const eye = blink && (m === "idle" || m === "work") ? "-" : EYES[m];
|
|
1180
|
-
if (pxOn()) return { m, lines: pxRender(
|
|
1461
|
+
if (pxOn()) return { m, lines: pxRender(pxGrid(m), false, pxMode()) }; // моргание — в самих кадрах
|
|
1181
1462
|
const fr = framesFor(s);
|
|
1182
1463
|
const idx = quiet() ? 0 : frameIndex(m, fr.length);
|
|
1183
1464
|
return { m, lines: fr[idx].map((l) => l.replace(/E/g, eye)) };
|
|
@@ -1441,9 +1722,10 @@ export default function buddy(pi: ExtensionAPI) {
|
|
|
1441
1722
|
// кадр анимации/декор сменился — перерисовываем (только тогда, чтобы не дёргать TUI зря)
|
|
1442
1723
|
const m0 = mood();
|
|
1443
1724
|
const fc = framesFor(s).length;
|
|
1444
|
-
const sig = () => `${pxOn() ? pxFrame(m0) : frameIndex(m0, fc)}${decoFor(m0)}`;
|
|
1725
|
+
const sig = () => `${pxOn() ? pxFrame(m0) + (sceneOn() ? animN - mStart : "") : frameIndex(m0, fc)}${decoFor(m0)}`;
|
|
1445
1726
|
const before = sig();
|
|
1446
1727
|
animN = n;
|
|
1728
|
+
if (pxOn()) pxTick();
|
|
1447
1729
|
const animChanged = sig() !== before;
|
|
1448
1730
|
// моргаем ~раз в 4 секунды
|
|
1449
1731
|
const nextBlink = n % 8 === 0;
|
|
@@ -1461,6 +1743,11 @@ export default function buddy(pi: ExtensionAPI) {
|
|
|
1461
1743
|
}
|
|
1462
1744
|
const now = Date.now();
|
|
1463
1745
|
if (working && n % 60 === 0 && now - workStart > 20_000) chat("think", 0.3, 4000);
|
|
1746
|
+
// в простое иногда сам берёт любимую игрушку (не во сне и не в грусти)
|
|
1747
|
+
if (!working && !quiet() && pxOn() && n % 120 === 60 && !sceneOn()) {
|
|
1748
|
+
const md = mood();
|
|
1749
|
+
if ((md === "idle" || md === "happy") && Math.random() < 0.35) startScene();
|
|
1750
|
+
}
|
|
1464
1751
|
if (!working && !quiet() && n % 360 === 0) {
|
|
1465
1752
|
const idleMs = now - s.lastActivity;
|
|
1466
1753
|
if (idleMs > 3 * 60_000 && idleMs < 30 * 60_000) chat("idle", 0.35, 6000);
|
|
@@ -1895,6 +2182,10 @@ export default function buddy(pi: ExtensionAPI) {
|
|
|
1895
2182
|
case "play":
|
|
1896
2183
|
if (s.energy < 15) shout("tired", 4000, true);
|
|
1897
2184
|
else {
|
|
2185
|
+
const want = rest.join(" ").toLowerCase();
|
|
2186
|
+
const its = spec(s).items ?? [];
|
|
2187
|
+
const it = its.find((x) => want && x.name.startsWith(want)) ?? its.find((x) => x.mode === "toss");
|
|
2188
|
+
if (it && startScene(it, 10_000)) say(scene!.text, 4000);
|
|
1898
2189
|
s.joy = clamp(s.joy + 25);
|
|
1899
2190
|
s.energy = clamp(s.energy - 15);
|
|
1900
2191
|
s.food = clamp(s.food - 5);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@euhenio/pi-buddy",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Тамагочи для pi: питомец сбоку от поля ввода
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"description": "Тамагочи для pi: питомец сбоку от поля ввода — пиксельные ВЕО, овчарка, кот, утка, сова, дракон и другие; реагирует на работу агента",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
7
7
|
"pi-extension",
|