This commit is contained in:
33333-33333 2026-07-31 12:54:46 +09:00
commit c3a6f5ff37
80 changed files with 2512 additions and 1625 deletions

View file

@ -3,16 +3,15 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<meta name="bend-field-cloud-api" content="off">
<title>&#x66F2;&#x7DDA;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9; v47.77</title>
<title>&#x66F2;&#x7DDA;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;</title>
<link rel="icon" href="favicon.svg" type="image/svg+xml">
<link rel="alternate icon" href="favicon.ico">
<link rel="stylesheet" href="style.css?v=47.77">
<link rel="stylesheet" href="style.css">
</head>
<body class="loading" data-ready="false" data-loading-text="&#x8AAD;&#x307F;&#x8FBC;&#x307F;&#x4E2D;">
<div id="app">
<div id="topbar">
<div class="brand">&#x66F2;&#x7DDA;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9; <small>v47.77</small></div>
<div class="brand">&#x66F2;&#x7DDA;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9; <small></small></div>
<div class="stat sr-data">&#x30AF;&#x30EA;&#x30A2; <b id="solvedCount">0</b></div>
<div class="stat score" aria-label="&#x6240;&#x6301;&#x6570;"><span aria-hidden="true">&#x25C6;</span> <b id="scoreCount">0</b></div>
<div class="stat sr-data">&#x76E4;&#x9762; <b id="worldCount">1</b></div>
@ -29,16 +28,16 @@
</div>
<button id="saveStatus" type="button" aria-live="polite" aria-label="&#x4FDD;&#x5B58;&#x72B6;&#x614B;" title="&#x4FDD;&#x5B58;&#x72B6;&#x614B;&#x3092;&#x78BA;&#x8A8D;">&#x4FDD;&#x5B58;&#x6E08;&#x307F;</button>
</div>
<div id="viewport" tabindex="-1" aria-label="&#x66F2;&#x7DDA;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;"><canvas id="noiseCanvas" width="80" height="64" aria-hidden="true"></canvas><canvas id="reactionCanvas" aria-hidden="true"></canvas><canvas id="overviewCanvas" aria-hidden="true" hidden></canvas><div id="world"></div><canvas id="presenceCanvas" aria-hidden="true"></canvas></div>
<aside id="minimap" aria-label="&#x5468;&#x8FBA;&#x30DE;&#x30C3;&#x30D7;">
<div id="viewport" tabindex="-1" aria-label="&#x66F2;&#x7DDA;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;"><canvas id="noiseCanvas" width="80" height="64" aria-hidden="true"></canvas><canvas id="reactionCanvas" aria-hidden="true"></canvas><canvas id="overviewCanvas" aria-hidden="true" hidden></canvas><div id="world"></div><canvas id="presenceCanvas" aria-hidden="true"></canvas><div id="boardHudLayer" aria-live="polite"></div></div>
<aside id="minimap" aria-label="&#x30DE;&#x30C3;&#x30D7;">
<div id="clearFeed" class="clear-feed" aria-live="polite" aria-label="共有クリア速報"></div>
<div class="minimap-head"><b>&#x5468;&#x8FBA;&#x30DE;&#x30C3;&#x30D7;</b><span id="minimapStatus">0 / 1</span></div>
<div class="minimap-head"><b>&#x30DE;&#x30C3;&#x30D7;</b></div>
<div class="minimap-controls" aria-label="&#x8996;&#x70B9;&#x79FB;&#x52D5;">
<button id="minimapOriginBtn" type="button">&#x539F;&#x70B9;</button>
<button id="minimapRandomBtn" type="button">&#x30E9;&#x30F3;&#x30C0;&#x30E0;</button>
</div>
<canvas id="minimapCanvas" width="210" height="132" role="application" tabindex="0" aria-label="&#x5468;&#x8FBA;&#x30DE;&#x30C3;&#x30D7;&#x3002;&#x30AF;&#x30EA;&#x30C3;&#x30AF;&#x307E;&#x305F;&#x306F;&#x30C9;&#x30E9;&#x30C3;&#x30B0;&#x3067;&#x8996;&#x70B9;&#x3092;&#x79FB;&#x52D5;&#x3002;&#x77E2;&#x5370;&#x30AD;&#x30FC;&#x3067;&#x5FAE;&#x8ABF;&#x6574;&#x3002;"></canvas>
<div class="minimap-legend" aria-hidden="true"><span class="solved">&#x30AF;&#x30EA;&#x30A2;</span><span class="unsolved">&#x672A;&#x30AF;&#x30EA;&#x30A2;</span><span class="long-line">&#x9577;&#x8DDD;&#x96E2;&#x7DDA;</span></div>
<canvas id="minimapCanvas" width="210" height="132" role="application" tabindex="0" aria-label="&#x30DE;&#x30C3;&#x30D7;&#x3002;&#x30AF;&#x30EA;&#x30C3;&#x30AF;&#x307E;&#x305F;&#x306F;&#x30C9;&#x30E9;&#x30C3;&#x30B0;&#x3067;&#x8996;&#x70B9;&#x3092;&#x79FB;&#x52D5;&#x3002;&#x5E97;&#x8217;&#x30DE;&#x30FC;&#x30AB;&#x30FC;&#x3092;&#x30AF;&#x30EA;&#x30C3;&#x30AF;&#x3059;&#x308B;&#x3068;&#x30B7;&#x30E7;&#x30C3;&#x30D7;&#x3092;&#x958B;&#x304D;&#x307E;&#x3059;&#x3002;"></canvas>
<div class="minimap-legend" aria-hidden="true"><span class="solved">&#x30AF;&#x30EA;&#x30A2;</span><span class="unsolved">&#x672A;&#x30AF;&#x30EA;&#x30A2;</span><span class="long-line">&#x9577;&#x8DDD;&#x96E2;&#x7DDA;</span><span class="shop">&#x30B7;&#x30E7;&#x30C3;&#x30D7;</span></div>
</aside>
<div id="reactionRadial" role="menu" aria-label="リアクションを選択" hidden></div>
<div id="toast" role="status" aria-live="polite"></div>
@ -114,7 +113,7 @@
<label class="settings-field"><span>プレイヤー名</span><input id="settingsPlayerName" type="text" maxlength="24" autocomplete="nickname" spellcheck="false"></label>
<label class="settings-toggle"><input id="lightweightRenderingToggle" type="checkbox"><span><b>軽量描画</b><small>背景ノイズ、光、粒子など一部の視覚効果を抑えます。</small></span></label>
<label class="settings-toggle"><input id="soundEnabledToggle" type="checkbox"><span><b>効果音</b><small>操作音とクリア音を再生します。</small></span></label>
<div class="modal-actions"><button class="pill" id="saveSettings" type="button">保存</button><button class="pill close" id="closeSettings" type="button">閉じる</button></div>
<div class="modal-actions settings-actions"><button class="pill quiet" id="resetSettings" type="button">初期化</button><button class="pill close" id="closeSettings" type="button">閉じる</button></div>
</div>
</div>
<div id="timeAttackModal" aria-hidden="true" inert>
@ -151,9 +150,20 @@
</div>
<div id="customEmojiCursor" aria-hidden="true"></div>
<div id="pickupHandleOverlay" aria-hidden="true"></div>
<script src="puzzle-core.js?v=47.77-5"></script>
<script src="app-logic.js?v=47.77"></script>
<script src="field-persistence.js?v=47.77"></script>
<script src="app.js?v=47.77"></script>
<script src="build-meta.js"></script>
<script src="shared-contracts.js"></script>
<script src="runtime-config.js"></script>
<script src="store-catalog.generated.js"></script>
<script src="puzzle-patterns.js"></script>
<script src="puzzle-core.js"></script>
<script src="app-logic.js"></script>
<script src="archive-codec.js"></script>
<script src="client/input/frame-scheduler.js"></script>
<script src="client/input/drag.js"></script>
<script src="client/input/interaction-state.js"></script>
<script src="client/input/gesture-coordinator.js"></script>
<script src="client/ui/cursor.js"></script>
<script src="field-persistence.js"></script>
<script src="app.js"></script>
</body>
</html>