"use strict"; const TEXT_CATALOG = { toolTips: toolTipsFromDefinitions(), ecologyCards: [ { title: "\u305f\u308a\u306a\u3044\u3068\u306f", image: "assets/sprites/tarinai_01_smile.webp", text: "\u5ead\u3067\u66ae\u3089\u3059\u5c0f\u3055\u306a\u751f\u304d\u7269\u3002\u7a7a\u8179\u3001\u7720\u6c17\u3001\u6c17\u5206\u3001\u30b9\u30c8\u30ec\u30b9\u3001\u4f53\u529b\u3067\u884c\u52d5\u304c\u5909\u308f\u308b\u3002", }, { title: "\u4f53\u529b\u3068\u30b9\u30c8\u30ec\u30b9", image: "assets/ui/ecology_hp_stress.webp", text: "\u30d0\u30fc\u306f\u4e0a\u304c\u4f53\u529b\u3001\u4e0b\u304c\u30b9\u30c8\u30ec\u30b9\u3002\u4f53\u529b\u306f\u3051\u304c\u3084\u4e8b\u6545\u3067\u6e1b\u308a\u30010\u3067\u6b7b\u4ea1\u3002\u30b9\u30c8\u30ec\u30b9\u306f\u6050\u6016\u3001\u6df7\u96d1\u3001\u6c5a\u308c\u3001\u3051\u3093\u304b\u3067\u5897\u3048\u3001\u9ad8\u3044\u3068\u884c\u52d5\u304c\u4e71\u308c\u308b\u3002", }, { title: "\u66ae\u3089\u3057\u3068\u6b32\u6c42", image: "assets/sprites/tarinai_05_drool.webp", text: "\u98df\u3079\u7269\u3001\u6c34\u3001\u5bdd\u5e8a\u3001\u5de3\u7bb1\u3001\u4ef2\u9593\u3092\u63a2\u3057\u3066\u52d5\u304f\u3002\u96e8\u3001\u6c17\u6e29\u3001\u8349\u3001\u6c5a\u308c\u3001\u9053\u5177\u3082\u72b6\u614b\u306b\u5f71\u97ff\u3059\u308b\u3002", }, { title: "\u6027\u683c\u3068\u500b\u6027", image: "assets/sprites/tarinai_21_normal_happy.webp", text: "\u653b\u6483\u6027\u3001\u958b\u653e\u6027\u3001\u793e\u4ea4\u6027\u3001\u795e\u7d4c\u8cea\u6027\u304c\u7d4c\u9a13\u3067\u5c11\u3057\u305a\u3064\u5909\u308f\u308b\u3002\u95be\u5024\u3092\u8d85\u3048\u308b\u3068\u6027\u683c\u30bf\u30b0\u3068\u884c\u52d5\u5dee\u306b\u51fa\u308b\u3002", }, { title: "\u5bb6\u65cf\u3068\u95a2\u4fc2", image: "assets/sprites/tarinai_27_birth_ritual.webp", text: "\u89aa\u5b50\u3001\u5171\u540c\u89aa\u3001\u53cb\u9054\u3001\u6575\u5bfe\u3001\u6050\u6016\u3092\u8a18\u9332\u3059\u308b\u3002\u5b50\u306f\u89aa\u306e\u73fe\u5728\u6027\u683c\u3092\u53d7\u3051\u7d99\u304e\u3001\u5bb6\u7cfb\u56f3\u306b\u4e16\u4ee3\u304c\u6b8b\u308b\u3002", }, { title: "\u75c5\u6c17\u3068\u6cbb\u7642", image: "assets/sprites/tarinai_24_stress_dizzy.webp", text: "\u305a\u3093\u3061\u75c5\u3001\u306d\u3080\u308a\u75c5\u3001\u7206\u767a\u75c5\u3001\u304d\u305a\u3064\u304d\u75c5\u304c\u3042\u308b\u3002\u75c5\u6c17\u3054\u3068\u306b\u6c34\u3084\u305a\u3093\u3060\u9905\u306a\u3069\u3092\u6c42\u3081\u308b\u3002", }, { title: "\u3051\u3093\u304b\u3068\u4e8b\u6545", image: "assets/sprites/tarinai_26_intimidate.webp", text: "\u5a01\u5687\u3001\u6d41\u8840\u3001\u7206\u7af9\u3001\u30dc\u30fc\u30eb\u3001\u843d\u4e0b\u7269\u3067\u50b7\u3064\u304f\u3002\u6b7b\u56e0\u306f\u3051\u3093\u304b\u3001\u98e2\u9913\u3001\u75c5\u6c17\u3001\u4e8b\u6545\u306a\u3069\u306b\u5206\u304b\u308c\u308b\u3002", }, { title: "\u9053\u5177\u3068\u4ecb\u5165", image: "assets/sprites/tarinai_18_fear.webp", text: "\u3064\u3064\u304f\u3001\u3064\u307e\u3080\u3001\u9905\u3001\u6c34\u3001\u6d17\u6d44\u3001\u5de3\u7bb1\u3001\u67f5\u3001\u7206\u7af9\u306a\u3069\u3067\u74b0\u5883\u3092\u4f5c\u308b\u3002\u52a9\u3051\u306b\u3082\u5371\u967a\u306b\u3082\u306a\u308b\u3002", }, { title: "\u89b3\u5bdf\u306e\u65b9\u6cd5", image: "assets/sprites/tarinai_11_weak.webp", text: "\u89b3\u5bdf\u30c4\u30fc\u30eb\u3001\u661f\u30de\u30fc\u30af\u3001\u89b3\u5bdf\u30ed\u30b0\u3001\u5bb6\u7cfb\u56f3\u3001\u6b7b\u56e0\u7d71\u8a08\u304b\u3089\u500b\u4f53\u306e\u5909\u5316\u3092\u8ffd\u3048\u308b\u3002", }, ], }; TEXT_CATALOG.stateLabels = Object.freeze({ idle: "待機", seek_food: "食べ物へ向かう", seek_bed: "寝床へ向かう", play_ball: "ボール遊び", seek_water: "水を探す", zunchi_sick: "ずんち病", fight_sick: "きずつき病", system: "ずんち病", seek_friend: "仲間を探す", follow_parent: "親についていく", cursor_friend: "カーソルについていく", cursor_enemy: "カーソルを避ける", fight: "喧嘩中", sleep: "睡眠中", eat: "食事中", panic: "パニック", intimidate: "威嚇中", birth_ritual: "誕生前", sunbath: "日光浴中", ant_attack: "アリ攻撃中", ant_intimidate: "アリ威嚇中", frozen: "冷凍中", }); TEXT_CATALOG.targetLabelOverrides = Object.freeze({ system: "ずんち病", zunchi_sick: "ずんち病", fight_sick: "きずつき病", }); // Backward-compatible alias. Tool/item labels come from TOOL_DEFINITIONS via toolLabel(). TEXT_CATALOG.targetLabels = TEXT_CATALOG.targetLabelOverrides; TEXT_CATALOG.stateLabel = function stateLabelFromCatalog(s) { return TEXT_CATALOG.stateLabels?.[s] || s || ""; }; TEXT_CATALOG.targetLabel = function targetLabelFromCatalog(target) { if (!target) return "なし"; if (target.name) return target.name; if (target.kind === "queen") return "女王アリ"; if (target.kind === "worker") return "働きアリ"; if (target.type) { const type = String(target.type || ""); if (TEXT_CATALOG.targetLabelOverrides?.[type]) return TEXT_CATALOG.targetLabelOverrides[type]; const label = typeof toolLabel === "function" ? toolLabel(type) : ""; return label || type; } if (Number.isFinite(target.x) && Number.isFinite(target.y)) return "位置"; return "不明"; }; TEXT_CATALOG.reasonLabel = function reasonLabelFromCatalog(t) { if (!t) return "なし"; if ((t.pinchThoughtTimer || 0) > 0) return "つままれている"; const thought = String(t.thought || "").trim(); if (thought) return thought; const target = TEXT_CATALOG.targetLabel(t.target); if (t.state === "eat") return target !== "なし" ? `${target}を食べている` : "食べている"; if (t.state === "sleep") return t.target?.type === "nest_box" ? "巣箱の中で体力を回復している" : "体力を回復している"; if (t.state === "panic") return t.target ? `${target}から逃げている` : "怖がっている"; if (t.state === "intimidate") return target !== "なし" ? `${target}を威嚇している` : "相手を威嚇している"; if (t.state === "ant_intimidate") return "アリを威嚇している"; if (t.state === "ant_attack") return "アリを攻撃している"; if (t.state === "birth_ritual") return "子が現れる前に体をゆすっている"; if (t.state === "sunbath") return "晴れた日なたでストレスを下げている"; if (t.state === "frozen") return "フィールド外で冷凍保存されている"; if (t.state === "seek_food") return target !== "なし" ? `${target}を探している` : "お腹がすいている"; if (t.state === "seek_water") return t.explosionDisease ? "爆発病で水を探している" : "ずんち病で水を探している"; if (t.state === "seek_bed") return target !== "なし" ? `${target}へ向かっている` : "眠る場所を探している"; if (t.state === "play_ball") return "ボールが気になっている"; if (t.state === "seek_friend") return "仲間を探している"; if (t.state === "follow_parent") return "親についていく"; if (t.state === "cursor_friend") return "カーソルについていく"; if (t.state === "cursor_enemy") return "カーソルを避けている"; if (t.state === "fight") return target !== "なし" ? `${target}と喧嘩している` : "喧嘩している"; if (t.state === "fight_sick") return "きずつき病で当てもなく彷徨っている"; if (t.state === "zunchi_sick" || t.state === "system") return "ずんち病で調子が悪い"; if ((t.hurtTimer || 0) > 0.08) return "痛みで混乱している"; if ((t.fearTimer || 0) > 0.08) return "怖がっている"; if ((t.grassEatTimer || 0) > 0.04) return "草を食べている"; return "周囲を見ている"; }; function stateLabel(s) { return TEXT_CATALOG.stateLabel(s); } function targetLabel(target) { return TEXT_CATALOG.targetLabel(target); } function reasonLabel(t) { return TEXT_CATALOG.reasonLabel(t); } window.stateLabel = stateLabel; window.targetLabel = targetLabel; window.reasonLabel = reasonLabel; window.TEXT_CATALOG = TEXT_CATALOG;