/* ============================================================ 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 (
{pose === "wave" && (
)}
); } /* ============================================================ ⑧ 玄人(くろうと) — テラコッタ色の横長ボディ・小さな四角の目・無口・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 (
{pose === "wave" && (
)}
); } /* ---------- レジストリ ---------- */ const MASCOTS3 = [ { id: "unchi", no: "07", name: "うんち", Comp: PixelUnchi }, { id: "kuroto", no: "08", name: "玄人", Comp: PixelKuro }, ]; Object.assign(window, { PixelUnchi, PixelKuro, MASCOTS3 });