19. 関数リファレンス

本節では main.js を中心とした主要関数の役割と定義位置を整理します。実際のコードを読み込む際の ロードマップとして活用してください。

19.1 画面遷移・レイアウト制御

関数 役割 主な引数 定義位置
updateMapSize() 階層や BlockDim のサイズ倍率からマップ幅・高さを再計算します。 - main.js 456–474 行
resizeCanvasToStage() キャンバスをステージ要素に合わせてリサイズし、レスポンシブ表示を維持します。 - main.js 477–483 行
enterInGameLayout() / leaveInGameLayout() ゲーム画面に入る際のクラス付与やツールバー高さ調整、終了時のクリーンアップを行います。 - main.js 505–522 行
showSelectionScreen(opts) 探索画面から選択画面へ戻す共通処理。HP 補充やモード復帰をまとめて実施します。 opts.stopLoop, opts.refillHp など main.js 538–571 行

19.2 BlockDim UI と選択管理

関数 役割 注目ポイント 定義位置
initBlockDimUI() BlockDim タブの初期化。リスト生成とキーボード操作設定を行います。 初期選択の復元と renderHistoryAndBookmarks() 呼び出し。 main.js 1095–1121 行
onBlockDimChanged() リスト選択や NESTED 値変更時にスペックを再構築し、プレビューを更新します。 composeSpec() / seedFromSelection() を連携。 main.js 1123–1148 行
randomizeBdimBlocks() 1st/2nd/3rd ブロックを無作為に選び直し、即座にプレビューへ反映します。 スクロール位置を維持する preserveScroll オプション。 main.js 1150–1168 行
weightedRandomizeBdimBlocks(target, type) レベル合計とタイプ優先度に基づいて重み付きランダム選択を行います。 ガウス分布重み計算と 64 回の試行で最適解を探索。 main.js 1171–1233 行
renderHistoryAndBookmarks() 履歴・ブックマーク一覧を DOM に描画し、削除や再適用イベントをバインドします。 setScrollableList() で最大行数を制限。 main.js 1250–1300 行
applyBdimSelection(entry) 保存済みプリセットを UI に反映し、onBlockDimChanged() を起動します。 履歴とブックマークの両方から利用。 main.js 1325–1333 行

19.3 MiniExp UI とライフサイクル

関数 役割 補足 定義位置
renderMiniExpCategories(manifest) カテゴリボタンを生成し、選択状態を管理します。 選択中カテゴリに存在しないゲームは自動で未選択化。 main.js 6534–6562 行
renderMiniExpList(manifest) 表示モードに応じてカード/リスト UI を切り替え、ゲーム選択イベントを設定します。 カテゴリフィルタと連携し、renderMiniExpRecords() を呼び出します。 main.js 6571–6620 行
initMiniExpUI() マニフェスト読み込みからカテゴリ/リスト描画までをまとめて初期化。 選択済みゲームがあればプレースホルダーを即時更新。 main.js 6622–6642 行
startSelectedMiniGame() 現在選択されている MiniExp MOD をロードし、ランタイムを起動します。 create() の戻り値を検証し、ボタン状態とショートカットをリセット。 main.js 6829–6861 行
quitMiniGame() ミニゲームの終了処理。stop()getScore()destroy() を順に呼び、記録を更新します。 UI 状態を初期化し、EXP バッジやレコード表示をリフレッシュ。 main.js 6863–6905 行

19.4 Mod Maker 補助関数

関数 役割 関連処理 定義位置
renderModMaker() モジュール全体の UI を再描画し、メタデータ・構造・生成器タブを同期します。 ensureModMakerDefaults()renderStructureGrid()buildModMakerOutput() を呼び出し。 main.js 2404–2529 行
buildModMakerOutput() 現在の編集内容から registerDungeonAddon() に渡せる JSON を組み立て、バリデーションを行います。 構造 ID 重複チェックやアンカー範囲検証を実施。 main.js 2532–2555 行
createBlockField(label, value, onChange, options) フォーム要素を生成し、変更時に自動で renderModMaker() を再実行します。 options.multilineoptions.deferRender で挙動を調整。 main.js 2381–2402 行

19.5 領域効果とバッジ表示の制御

対象 役割 調整ポイント 定義位置
DOMAIN_EFFECT_DEFINITIONS 領域クリスタルの効果アイコン・色・与被ダメ補正・状態付与設定をまとめた定数。 各効果の倍率や reverseDamageallowPotionThrow フラグを変更すると、対応する領域の挙動をカスタマイズできます。 main.js 4851–5004 行
getDomainEffectAggregate(targetType, x, y) 指定座標に重なる領域クリスタルを走査し、攻撃/防御倍率や状態異常オーラを合成します。 半径や効果リストの計算ロジックを変更したいときに参照。返り値に allowPotionThrowstatusAilments が含まれます。 main.js 5179–5287 行
refreshGeneratorHazardSuppression() 暗闇・毒霧・ノイズの推奨レベルによる抑制条件を判定し、UI の有効/無効状態を更新します。 レベル差の閾値や抑制時の挙動を変更する場合に利用。更新後は updateDungeonTypeOverlay() を再呼び出します。 main.js 6764–6788 行
updateDungeonTypeOverlay() 探索画面右上のダンジョン名オーバーレイを描画し、領域ハザードやジェネレータ名のバッジを生成します。 バッジのラベルや CSS クラスを調整したい場合はこの処理を編集してください。抑制状態は dungeon-overlay__badge--suppressed クラスで制御されます。 main.js 6940–7042 行