This commit is contained in:
33333-33333 2026-06-28 13:40:41 +09:00
commit f500279abd
93 changed files with 1893 additions and 1198 deletions

View file

@ -4,65 +4,65 @@ const TEXT_CATALOG = {
toolTips: toolTipsFromDefinitions(),
ecologyCards: [
{
title: "たりないとは",
title: "\u305f\u308a\u306a\u3044\u3068\u306f",
image: "assets/sprites/tarinai_01_smile.webp",
text: "庭やケージで生活する観察対象。空腹、睡眠、健康、安全、関係、充足の6欲求とストレスで行動が変わります。個体ごとに性格、体格、家族、経験が残ります。",
text: "\u5ead\u3084\u30b1\u30fc\u30b8\u3067\u751f\u6d3b\u3059\u308b\u89b3\u5bdf\u5bfe\u8c61\u3002\u7a7a\u8179\u3001\u7761\u7720\u3001\u5065\u5eb7\u3001\u5b89\u5168\u3001\u95a2\u4fc2\u3001\u5145\u8db3\u306e6\u6b32\u6c42\u3068\u30b9\u30c8\u30ec\u30b9\u3067\u884c\u52d5\u304c\u5909\u308f\u308a\u307e\u3059\u3002\u500b\u4f53\u3054\u3068\u306b\u6027\u683c\u3001\u4f53\u683c\u3001\u5bb6\u65cf\u3001\u7d4c\u9a13\u304c\u6b8b\u308a\u307e\u3059\u3002",
},
{
title: "欲求とストレス",
title: "\u6b32\u6c42\u3068\u30b9\u30c8\u30ec\u30b9",
image: "assets/ui/ecology_hp_stress.webp",
text: "空腹や眠気が強いと食べ物や寝床を探します。ストレスは恐怖、混雑、汚れ、けんか、地面の種類などで増減し、高いほど逃走、威嚇、体調不良が起きやすくなります。",
text: "\u7a7a\u8179\u3084\u7720\u6c17\u304c\u5f37\u3044\u3068\u98df\u3079\u7269\u3084\u5bdd\u5e8a\u3092\u63a2\u3057\u307e\u3059\u3002\u30b9\u30c8\u30ec\u30b9\u306f\u6050\u6016\u3001\u6df7\u96d1\u3001\u6c5a\u308c\u3001\u3051\u3093\u304b\u3001\u5730\u9762\u306e\u7a2e\u985e\u306a\u3069\u3067\u5897\u6e1b\u3057\u3001\u9ad8\u3044\u307b\u3069\u9003\u8d70\u3001\u5a01\u5687\u3001\u4f53\u8abf\u4e0d\u826f\u304c\u8d77\u304d\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002",
},
{
title: "食事と水分",
title: "\u98df\u4e8b\u3068\u6c34\u5206",
image: "assets/sprites/tarinai_05_drool.webp",
text: "草、ずんち、餅、ジュースなどを状況に応じて食べます。病気や極度の空腹では優先順位が変わり、近くの食べ物を探します。水や雨滴は一部の病気や環境の回復にも関わります。",
text: "\u8349\u3001\u305a\u3093\u3061\u3001\u9905\u3001\u30b8\u30e5\u30fc\u30b9\u306a\u3069\u3092\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u98df\u3079\u307e\u3059\u3002\u75c5\u6c17\u3084\u6975\u5ea6\u306e\u7a7a\u8179\u3067\u306f\u512a\u5148\u9806\u4f4d\u304c\u5909\u308f\u308a\u3001\u8fd1\u304f\u306e\u98df\u3079\u7269\u3092\u63a2\u3057\u307e\u3059\u3002\u6c34\u3084\u96e8\u6ef4\u306f\u4e00\u90e8\u306e\u75c5\u6c17\u3084\u74b0\u5883\u306e\u56de\u5fa9\u306b\u3082\u95a2\u308f\u308a\u307e\u3059\u3002",
},
{
title: "睡眠と寝場所",
title: "\u7761\u7720\u3068\u5bdd\u5834\u6240",
image: "assets/sprites/tarinai_20_sleep2.webp",
text: "眠くなると巣箱やかんたんベッドを探します。かんたんベッドは草を使って作られ、起床時に消えます。長く寝床を用意できない場合は、何もない場所で眠ることもあります。",
text: "\u7720\u304f\u306a\u308b\u3068\u5de3\u7bb1\u3084\u304b\u3093\u305f\u3093\u30d9\u30c3\u30c9\u3092\u63a2\u3057\u307e\u3059\u3002\u304b\u3093\u305f\u3093\u30d9\u30c3\u30c9\u306f\u8349\u3092\u4f7f\u3063\u3066\u4f5c\u3089\u308c\u3001\u8d77\u5e8a\u6642\u306b\u6d88\u3048\u307e\u3059\u3002\u9577\u304f\u5bdd\u5e8a\u3092\u7528\u610f\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u3001\u4f55\u3082\u306a\u3044\u5834\u6240\u3067\u7720\u308b\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u3002",
},
{
title: "草、地面、天気",
title: "\u8349\u3001\u5730\u9762\u3001\u5929\u6c17",
image: "assets/ui/tool_grass.webp",
text: "草は成長し、食料やかんたんベッドの材料になります。地面は砂、土、コンクリート、ふわふわ毛布、足つぼ、氷を切り替えられ、草の発生やストレス増加に影響します。雨や時間帯も状態に関わります。",
text: "\u8349\u306f\u6210\u9577\u3057\u3001\u98df\u6599\u3084\u304b\u3093\u305f\u3093\u30d9\u30c3\u30c9\u306e\u6750\u6599\u306b\u306a\u308a\u307e\u3059\u3002\u5730\u9762\u306f\u7802\u3001\u571f\u3001\u30b3\u30f3\u30af\u30ea\u30fc\u30c8\u3001\u3075\u308f\u3075\u308f\u6bdb\u5e03\u3001\u8db3\u3064\u307c\u3001\u6c37\u3092\u5207\u308a\u66ff\u3048\u3089\u308c\u3001\u8349\u306e\u767a\u751f\u3084\u30b9\u30c8\u30ec\u30b9\u5897\u52a0\u306b\u5f71\u97ff\u3057\u307e\u3059\u3002\u96e8\u3084\u6642\u9593\u5e2f\u3082\u72b6\u614b\u306b\u95a2\u308f\u308a\u307e\u3059\u3002",
},
{
title: "性格と行動傾向",
title: "\u6027\u683c\u3068\u884c\u52d5\u50be\u5411",
image: "assets/sprites/tarinai_21_normal_happy.webp",
text: "攻撃性、開放性、社交性、神経質性などがあり、経験で少しずつ変化します。性格は食事、接近、逃走、けんか、繁殖相手の探し方などの差として表れます。",
text: "\u653b\u6483\u6027\u3001\u958b\u653e\u6027\u3001\u793e\u4ea4\u6027\u3001\u795e\u7d4c\u8cea\u6027\u306a\u3069\u304c\u3042\u308a\u3001\u7d4c\u9a13\u3067\u5c11\u3057\u305a\u3064\u5909\u5316\u3057\u307e\u3059\u3002\u6027\u683c\u306f\u98df\u4e8b\u3001\u63a5\u8fd1\u3001\u9003\u8d70\u3001\u3051\u3093\u304b\u3001\u7e41\u6b96\u76f8\u624b\u306e\u63a2\u3057\u65b9\u306a\u3069\u306e\u5dee\u3068\u3057\u3066\u8868\u308c\u307e\u3059\u3002",
},
{
title: "関係、家族、繁殖",
title: "\u95a2\u4fc2\u3001\u5bb6\u65cf\u3001\u7e41\u6b96",
image: "assets/sprites/tarinai_27_birth_ritual.webp",
text: "親子、共同親、友好、敵対、恐怖が記録されます。条件がそろうとへこへこを行い、子が生まれます。子は親の性格傾向を受け継ぎ、世代情報は家系図に残ります。",
text: "\u89aa\u5b50\u3001\u5171\u540c\u89aa\u3001\u53cb\u597d\u3001\u6575\u5bfe\u3001\u6050\u6016\u304c\u8a18\u9332\u3055\u308c\u307e\u3059\u3002\u6761\u4ef6\u304c\u305d\u308d\u3046\u3068\u3078\u3053\u3078\u3053\u3092\u884c\u3044\u3001\u5b50\u304c\u751f\u307e\u308c\u307e\u3059\u3002\u5b50\u306f\u89aa\u306e\u6027\u683c\u50be\u5411\u3092\u53d7\u3051\u7d99\u304e\u3001\u4e16\u4ee3\u60c5\u5831\u306f\u5bb6\u7cfb\u56f3\u306b\u6b8b\u308a\u307e\u3059\u3002",
},
{
title: "病気と回復",
title: "\u75c5\u6c17\u3068\u56de\u5fa9",
image: "assets/sprites/tarinai_24_stress_dizzy.webp",
text: "ずんち病、ねむり病、爆発病、きずつき病などがあります。病気ごとに求めるものや行動が変わり、水、薬、食べ物、休息、環境の改善が回復に関係します。",
text: "\u305a\u3093\u3061\u75c5\u3001\u306d\u3080\u308a\u75c5\u3001\u7206\u767a\u75c5\u3001\u304d\u305a\u3064\u304d\u75c5\u306a\u3069\u304c\u3042\u308a\u307e\u3059\u3002\u75c5\u6c17\u3054\u3068\u306b\u6c42\u3081\u308b\u3082\u306e\u3084\u884c\u52d5\u304c\u5909\u308f\u308a\u3001\u6c34\u3001\u85ac\u3001\u98df\u3079\u7269\u3001\u4f11\u606f\u3001\u74b0\u5883\u306e\u6539\u5584\u304c\u56de\u5fa9\u306b\u95a2\u4fc2\u3057\u307e\u3059\u3002",
},
{
title: "危険と事故",
title: "\u5371\u967a\u3068\u4e8b\u6545",
image: "assets/sprites/tarinai_26_intimidate.webp",
text: "けんか、爆竹、げんこつ、ピン、ボール、アリ、落下物などで体力が減ります。体力が0になると死亡し、死因はログと統計に残ります。危険な道具は観察の流れを大きく変えます。",
text: "\u3051\u3093\u304b\u3001\u7206\u7af9\u3001\u3052\u3093\u3053\u3064\u3001\u30d4\u30f3\u3001\u30dc\u30fc\u30eb\u3001\u30a2\u30ea\u3001\u843d\u4e0b\u7269\u306a\u3069\u3067\u4f53\u529b\u304c\u6e1b\u308a\u307e\u3059\u3002\u4f53\u529b\u304c0\u306b\u306a\u308b\u3068\u6b7b\u4ea1\u3057\u3001\u6b7b\u56e0\u306f\u30ed\u30b0\u3068\u7d71\u8a08\u306b\u6b8b\u308a\u307e\u3059\u3002\u5371\u967a\u306a\u9053\u5177\u306f\u89b3\u5bdf\u306e\u6d41\u308c\u3092\u5927\u304d\u304f\u5909\u3048\u307e\u3059\u3002",
},
{
title: "道具と構造物",
title: "\u9053\u5177\u3068\u69cb\u9020\u7269",
image: "assets/ui/tool_duplicator.webp",
text: "食べ物、薬、巣箱、柵、看板、複製機などを配置できます。複製機には対応する食べ物、薬、草などをセットできます。削除ツールでは不要な構造物や一部アイテムを取り除けます。",
text: "\u98df\u3079\u7269\u3001\u85ac\u3001\u5de3\u7bb1\u3001\u67f5\u3001\u770b\u677f\u3001\u8907\u88fd\u6a5f\u306a\u3069\u3092\u914d\u7f6e\u3067\u304d\u307e\u3059\u3002\u8907\u88fd\u6a5f\u306b\u306f\u5bfe\u5fdc\u3059\u308b\u98df\u3079\u7269\u3001\u85ac\u3001\u8349\u306a\u3069\u3092\u30bb\u30c3\u30c8\u3067\u304d\u307e\u3059\u3002\u524a\u9664\u30c4\u30fc\u30eb\u3067\u306f\u4e0d\u8981\u306a\u69cb\u9020\u7269\u3084\u4e00\u90e8\u30a2\u30a4\u30c6\u30e0\u3092\u53d6\u308a\u9664\u3051\u307e\u3059\u3002",
},
{
title: "コロニーの見方",
title: "\u30b3\u30ed\u30cb\u30fc\u306e\u898b\u65b9",
image: "assets/sprites/tarinai_11_weak.webp",
text: "コロニー欄では個体数、死亡数、全体状態、地面、欲求平均、物を確認できます。観察では選択中の個体の健康、性格、関係、行動理由、記録を追えます。",
text: "\u30b3\u30ed\u30cb\u30fc\u6b04\u3067\u306f\u500b\u4f53\u6570\u3001\u6b7b\u4ea1\u6570\u3001\u5168\u4f53\u72b6\u614b\u3001\u5730\u9762\u3001\u6b32\u6c42\u5e73\u5747\u3001\u7269\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u89b3\u5bdf\u3067\u306f\u9078\u629e\u4e2d\u306e\u500b\u4f53\u306e\u5065\u5eb7\u3001\u6027\u683c\u3001\u95a2\u4fc2\u3001\u884c\u52d5\u7406\u7531\u3001\u8a18\u9332\u3092\u8ffd\u3048\u307e\u3059\u3002",
},
],};
TEXT_CATALOG.stateLabels = Object.freeze({
idle: "ぼーっとしている",
idle: "\u307c\u30fc\u3063\u3068\u3057\u3066\u3044\u308b",
seek_food: "\u98df\u3079\u7269\u3078\u5411\u304b\u3046",
seek_bed: "\u5bdd\u5e8a\u3078\u5411\u304b\u3046",
play_ball: "\u30dc\u30fc\u30eb\u904a\u3073",
@ -92,17 +92,17 @@ TEXT_CATALOG.stateLabels = Object.freeze({
TEXT_CATALOG.behaviorLabels = Object.freeze({
seek_material: "材料を探している",
build_structure: "作成している",
build: "作成している",
seek_enemy: "気になる相手へ向かっている",
wander_lightly: "少し移動している",
eat_food: "食事をしている",
drink_water: "水を飲んでいる",
sleep_in_bed: "寝床で休んでいる",
sleep_anywhere: "休んでいる",
intimidate_enemy: "威嚇している",
panic_escape: "逃げている",
seek_material: "\u6750\u6599\u3092\u63a2\u3057\u3066\u3044\u308b",
build_structure: "\u4f5c\u6210\u3057\u3066\u3044\u308b",
build: "\u4f5c\u6210\u3057\u3066\u3044\u308b",
seek_enemy: "\u6c17\u306b\u306a\u308b\u76f8\u624b\u3078\u5411\u304b\u3063\u3066\u3044\u308b",
wander_lightly: "\u5c11\u3057\u79fb\u52d5\u3057\u3066\u3044\u308b",
eat_food: "\u98df\u4e8b\u3092\u3057\u3066\u3044\u308b",
drink_water: "\u6c34\u3092\u98f2\u3093\u3067\u3044\u308b",
sleep_in_bed: "\u5bdd\u5e8a\u3067\u4f11\u3093\u3067\u3044\u308b",
sleep_anywhere: "\u4f11\u3093\u3067\u3044\u308b",
intimidate_enemy: "\u5a01\u5687\u3057\u3066\u3044\u308b",
panic_escape: "\u9003\u3052\u3066\u3044\u308b",
});
TEXT_CATALOG.behaviorLabel = function behaviorLabelFromCatalog(value = "") {
@ -128,10 +128,10 @@ TEXT_CATALOG.targetLabels = TEXT_CATALOG.targetLabelOverrides;
TEXT_CATALOG.idleGroundText = function idleGroundText(t = null) {
const ground = String(t?.world?.groundType || (typeof world !== "undefined" ? world?.groundType : "") || "soil");
if (ground === "foot_massage") return "足つぼに耐えている。";
if (ground === "blanket") return "毛布にうっとりしている。";
if (ground === "ice") return "氷の上でじっとしている。";
return "ぼーっとしている。";
if (ground === "foot_massage") return "\u8db3\u3064\u307c\u306b\u8010\u3048\u3066\u3044\u308b\u3002";
if (ground === "blanket") return "\u6bdb\u5e03\u306b\u3046\u3063\u3068\u308a\u3057\u3066\u3044\u308b\u3002";
if (ground === "ice") return "\u6c37\u306e\u4e0a\u3067\u3058\u3063\u3068\u3057\u3066\u3044\u308b\u3002";
return "\u307c\u30fc\u3063\u3068\u3057\u3066\u3044\u308b\u3002";
};
TEXT_CATALOG.stateLabel = function stateLabelFromCatalog(s, t = null) {
@ -170,7 +170,7 @@ TEXT_CATALOG.reasonLabel = function reasonLabelFromCatalog(t) {
if (t.state === "intimidate") return target !== "\u306a\u3057" ? `${target}\u3092\u5a01\u5687\u3057\u3066\u3044\u308b` : "\u76f8\u624b\u3092\u5a01\u5687\u3057\u3066\u3044\u308b";
if (t.state === "ant_intimidate") return "\u30a2\u30ea\u3092\u5a01\u5687\u3057\u3066\u3044\u308b";
if (t.state === "ant_attack") return "\u30a2\u30ea\u3092\u653b\u6483\u3057\u3066\u3044\u308b";
if (t.state === "birth_ritual") return t.target?.name ? `${t.target.name}とへこへこしている` : "へこへこしている";
if (t.state === "birth_ritual") return t.target?.name ? `${t.target.name}\u3068\u3078\u3053\u3078\u3053\u3057\u3066\u3044\u308b` : "\u3078\u3053\u3078\u3053\u3057\u3066\u3044\u308b";
if (t.state === "sunbath") return "\u6674\u308c\u305f\u65e5\u306a\u305f\u3067\u30b9\u30c8\u30ec\u30b9\u3092\u4e0b\u3052\u3066\u3044\u308b";
if (t.state === "frozen") return "\u30d5\u30a3\u30fc\u30eb\u30c9\u5916\u3067\u51b7\u51cd\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b";
if (t.state === "seek_food") return target !== "\u306a\u3057" ? `${target}\u3092\u63a2\u3057\u3066\u3044\u308b` : "\u304a\u8179\u304c\u3059\u3044\u3066\u3044\u308b";
@ -190,10 +190,10 @@ TEXT_CATALOG.reasonLabel = function reasonLabelFromCatalog(t) {
if ((t.grassEatTimer || 0) > 0.04) return "\u8349\u3092\u98df\u3079\u3066\u3044\u308b";
const thought = String(t.thought || "").trim();
const cleanedThought = TEXT_CATALOG.cleanBehaviorText(thought, t.state || "");
if (["待機", "待っている", "待っている。", "ぼーっとしている", "ぼーっとしている。", "周囲を見ている"].includes(cleanedThought)) return TEXT_CATALOG.idleGroundText(t);
if (["\u5f85\u6a5f", "\u5f85\u3063\u3066\u3044\u308b", "\u5f85\u3063\u3066\u3044\u308b\u3002", "\u307c\u30fc\u3063\u3068\u3057\u3066\u3044\u308b", "\u307c\u30fc\u3063\u3068\u3057\u3066\u3044\u308b\u3002", "\u5468\u56f2\u3092\u898b\u3066\u3044\u308b"].includes(cleanedThought)) return TEXT_CATALOG.idleGroundText(t);
if (thought) return thought;
if (t.state === "idle" || !t.state) return TEXT_CATALOG.idleGroundText(t);
return "周囲を見ている";
return "\u5468\u56f2\u3092\u898b\u3066\u3044\u308b";
};
function stateLabel(s) { return TEXT_CATALOG.stateLabel(s); }