/* ============================================================
hud.jsx — 全ページ共通「なかま図鑑」ステータスバー
なかま X/8 + 各キャラのミニアイコン(解放=カラー / 未解放=?)
依存:mascots.jsx / mascots2.jsx / mascots3.jsx / unlock-utils.js
使い方:各ページの
…
の代わりに
{window.HudBar ? React.createElement(window.HudBar, { tint }) : null}
============================================================ */
const HUD_CHARS = [
{ id: "panda", comp: () => window.PixelPanda, scale: 0.16 },
{ id: "pico", comp: () => window.Pixel, scale: 0.18 },
{ id: "uni", comp: () => window.PixelUni, scale: 0.18 },
{ id: "mole", comp: () => window.PixelMole, scale: 0.18 },
{ id: "goat", comp: () => window.PixelGoat, scale: 0.17 },
{ id: "ume", comp: () => window.PixelUme, scale: 0.18 },
{ id: "unchi", comp: () => window.PixelUnchi, scale: 0.18 },
{ id: "kuroto", comp: () => window.PixelKuro, scale: 0.17 },
];
function HudBar({ tint }) {
const isUn = (id) => (typeof window.isCharUnlocked === "function"
? window.isCharUnlocked(id)
: (id === "panda" || id === "pico"));
const unlockedCount = HUD_CHARS.filter((c) => isUn(c.id)).length;
return (
なかま {unlockedCount}/{HUD_CHARS.length}
{HUD_CHARS.map((c) => {
const open = isUn(c.id);
const C = c.comp && c.comp();
return (
{open && C
?
: ?}
);
})}
);
}
window.HUD_CHARS = HUD_CHARS;
window.HudBar = HudBar;