/* ============================================================
   mascots3.jsx — 仲間（協力者）追加キャラ
   ⑦ うんち — ダメでクズだけど、こんなヤツもいる。元気が出る存在。
   ⑧ 玄人（くろうと） — ウワサのあいつ。天才寄り添いブレイン。何でも知ってる。
   ピコ・パンダと同じ仕組み（window.PixelCreature / PixelSprite / ZZZ を利用）
   pose: "stand" | "wave" | "sleep"
   ============================================================ */

/* ============================================================
   ⑦ うんち — ふんわり茶色のうずまき・笑顔・両手を上げて「うんちー!!」・細い脚
   16幅 / 目=黒(d) / dbase=うんち茶
   ============================================================ */
const UNCHI_O = "oklch(0.605 0.072 55)";       // うんち茶（やわらかい）
const UNCHI_PAL = {
  o: UNCHI_O, a: "oklch(0.46 0.06 50)",         // ボディ / 手（こい茶）
  d: "var(--ink)", dbase: UNCHI_O, "-": "var(--ink)",  // 目（黒）
  m: "var(--ink)",                              // 口（黒）
  b: "oklch(0.46 0.06 50)",                     // 脚・足（こい茶）
  p: "var(--blush)",                            // ほっぺ
};
//                 0123456789012345
const UNCHI_STAND = [
  "................",  // 0
  "........ooo.....",  // 1
  ".......ooo......",  // 2
  "......oooo......",  // 3
  "....oooooooo....",  // 4
  "...oooooooooo...",  // 5
  "..ooodoooodooo..",  // 6 目（col5,10）
  "..ooopommopooo..",  // 7 ほっぺ（col5,10）＋口（col7,8）
  ".a.oooooooooo.a.",  // 8 手
  "a.oooooooooooo.a",  // 9 手
  ".oooooooooooooo.",  // 10
  ".oooooooooooooo.",  // 11
  "..oooooooooooo..",  // 12
  "....bb....bb....",  // 13 脚
  "....bb....bb....",  // 14 脚
  "................",  // 15
];
const UNCHI_WAVE = [
  "................",  // 0
  "........ooo.....",  // 1
  ".......ooo......",  // 2
  "......oooo......",  // 3
  "....oooooooo....",  // 4
  "...oooooooooo...",  // 5
  "..ooodoooodooo..",  // 6 目
  "..ooopommopooo..",  // 7 ほっぺ＋口
  ".a.oooooooooo...",  // 8 左手のみ（右手は別レイヤーで振る）
  "a.oooooooooooo..",  // 9 左手のみ
  ".oooooooooooooo.",  // 10
  ".oooooooooooooo.",  // 11
  "..oooooooooooo..",  // 12
  "....bb....bb....",  // 13 脚
  "....bb....bb....",  // 14 脚
  "................",  // 15
];
const UNCHI_SLEEP = [
  "................",  // 0
  "........ooo.....",  // 1
  ".......ooo......",  // 2
  "......oooo......",  // 3
  "....oooooooo....",  // 4
  "...oooooooooo...",  // 5
  "..ooo-oooo-ooo..",  // 6 閉じ目（中央ライン・上下は体色）
  "..ooopommopooo..",  // 7 ほっぺ＋口
  ".a.oooooooooo.a.",  // 8
  "a.oooooooooooo.a",  // 9
  ".oooooooooooooo.",  // 10
  ".oooooooooooooo.",  // 11
  "..oooooooooooo..",  // 12
  "....bb....bb....",  // 13
  "....bb....bb....",  // 14
  "................",  // 15
];
const UNCHI_CELL = 11;
/* 振る右手：1ドットが斜めに2つ（下左＝付け根 → 上右＝手先） */
const UNCHI_ARM = [
  ".a",
  "a.",
];
function PixelUnchi({ pose = "stand" }) {
  const rows = pose === "sleep" ? UNCHI_SLEEP : pose === "wave" ? UNCHI_WAVE : UNCHI_STAND;
  const W = 16 * UNCHI_CELL, H = 16 * UNCHI_CELL;
  return (
    <div className={`mascot pixel unchi pose-${pose}`}>
      <div className="bob">
        <ZZZ />
        <div style={{ position: "relative", width: W, height: H }}>
          <PixelSprite rows={rows} palette={UNCHI_PAL} />
          {pose === "wave" && (
            <div className="unchi-arm" style={{ position: "absolute", left: 14 * UNCHI_CELL, top: 5 * UNCHI_CELL }}>
              <PixelSprite rows={UNCHI_ARM} palette={UNCHI_PAL} />
            </div>
          )}
        </div>
      </div>
    </div>
  );
}

/* ============================================================
   ⑧ 玄人（くろうと） — テラコッタ色の横長ボディ・小さな四角の目・無口・4本足
   手をふる＝右腕を上下にパタパタ（カスタム描画）
   16幅 / 目=黒(d) / dbase=テラコッタ
   ============================================================ */
const KURO_O = "oklch(0.655 0.125 42)";
const KURO_PAL = {
  o: KURO_O, a: KURO_O,
  d: "var(--ink)", dbase: KURO_O, "-": "var(--ink)",
};
//                0123456789012345
const KURO_STAND = [
  "...oooooooooo...",
  "...oooooooooo...",
  "...odoooooodo...",
  "...oooooooooo...",
  ".aaooooooooooaa.",
  ".aaooooooooooaa.",
  "...oooooooooo...",
  "...oooooooooo...",
  "....o.o..o.o....",
  "....o.o..o.o....",
];
/* 手をふる：右腕を抜いて、別レイヤーで上下に動かす */
const KURO_WAVE = [
  "...oooooooooo...",
  "...oooooooooo...",
  "...odoooooodo...",
  "...oooooooooo...",
  ".aaoooooooooo...",
  ".aaoooooooooo...",
  "...oooooooooo...",
  "...oooooooooo...",
  "....o.o..o.o....",
  "....o.o..o.o....",
];
const KURO_SLEEP = [
  "...oooooooooo...",
  "...oooooooooo...",
  "...o-oooooo-o...",
  "...oooooooooo...",
  ".aaooooooooooaa.",
  ".aaooooooooooaa.",
  "...oooooooooo...",
  "...oooooooooo...",
  "....o.o..o.o....",
  "....o.o..o.o....",
];
const KURO_CELL = 11;
function PixelKuro({ pose = "stand" }) {
  const rows = pose === "sleep" ? KURO_SLEEP : pose === "wave" ? KURO_WAVE : KURO_STAND;
  const W = 16 * KURO_CELL, H = rows.length * KURO_CELL;
  return (
    <div className={`mascot pixel kuroto pose-${pose}`}>
      <div className="bob">
        <ZZZ />
        <div style={{ position: "relative", width: W, height: H }}>
          <PixelSprite rows={rows} palette={KURO_PAL} />
          {pose === "wave" && (
            <div className="kuro-arm" style={{ position: "absolute", left: 13 * KURO_CELL, top: 4 * KURO_CELL, width: 2 * KURO_CELL, height: 2 * KURO_CELL, background: KURO_O }}></div>
          )}
        </div>
      </div>
    </div>
  );
}

/* ---------- レジストリ ---------- */
const MASCOTS3 = [
  { id: "unchi",  no: "07", name: "うんち", Comp: PixelUnchi },
  { id: "kuroto", no: "08", name: "玄人",   Comp: PixelKuro },
];

Object.assign(window, { PixelUnchi, PixelKuro, MASCOTS3 });
