Files
Takeshi 5dde0c5ec2 Record original-alignment implementation and traceability checkpoint
Capture current source, content data, tests, asset licenses, and original-specification traceability. Original implementation remains incomplete. The accepted matching UI generation passed 154 suites and 12,253 checks, with eight rendered staff-contract screens reviewed. Latest native Windows and full-original acceptance remain outstanding.
2026-09-30 23:52:24 +09:00

5.5 KiB
Raw Permalink Blame History

従業員のドラッグ配属(P24途中成果)

雇用済み従業員ボタンから選択層の完成施設へドラッグして配属できる。選択中の勤務帯をドラッグ開始時に保持し、既存set_staff_work_assignmentコマンドへ渡す。従業員・シフトをUIから直接変更しない。既存の施設選択+適用ボタンも維持する。空きマスでは配属解除を行わず、完成施設と表裏の層を確認する案内を表示する。予約中・編集不可の従業員はドラッグ開始を拒否する。

最終検証: tests/ui/test_staff_management.gd、実描画53検査PASS、headless53検査PASS。追加6検査は入力イベントによる受付への配属、成功表示、試験状態の復元、空きマス拒否時の全Runtimeスナップショット不変、理由表示、別種類データ拒否。既存47検査はクリック代替、職種不一致、予約、保存復元、勤務帯等を含む。これはWindows実機や全職種ドラッグ経路の受入ではない。

入力試験では物理解像度と論理解像度の変換を行ってInput.parse_input_eventへ投入する。途中のテスト失敗は、誤った辞書キー、試験でパネルを閉じたこと、表裏の選択、座標倍率、案内パネルとの重なりが原因。失敗ログを保持している。macOS実描画ではViewport入力に加え、ドロップ時のGodotマウス位置更新のためInput.warp_mouseを使用する。headlessでは倍率変換したInput.parse_input_eventを使う。人によるOS操作の受入とは区別する。

残件: ドラッグからの夜勤・職種拒否・人数上限・予約保存復元の個別追加試験、実描画の画像検査、Windows同一ビルド操作、P24全体の他要件。全原本実装の完了ではない。

Additional drag boundary acceptance

Dragging the receptionist onto the BACK kitchen rejects the role mismatch and preserves the original schedule. Selecting NIGHT and dragging onto the FRONT reception queues exactly one command. An isolated save/load preserves its pending state, and the next minute applies the exact facility and NIGHT template and clears pending feedback. The test save is removed afterward.

Headless62 checks PASS in staff-drag-boundaries.log; native63 checks PASS in staff-drag-boundaries-native.log (one additional image-save check). staff-drag-night.png was visually inspected: reception night assignment, effective time 18:00 and completed-command feedback are visible.

Remaining: drag entry coverage for capacity, inaccessible routes, locked staff and other rejection boundaries; Windows same-build input acceptance. Existing service tests do not replace these UI entry tests.

人数上限・経路なし・ロック中のドラッグ受入

現在の本番コードへ追加修正を要する不具合は検出されなかった。テストへ3種の境界を追加し、いずれも従業員一覧からマップへの Viewport マウス入力で検証した。通常登録の受付 staff_max=3 に合わせて3名の勤務予定を設定し、4人目の配属拒否と全従業員状態の不変を確認。到達不能な始点へ試験対象を置き、経路拒否と全従業員状態の不変を確認。イベントのロックを注入し、ドラッグ開始を拒否して勤務もコマンドキューも変化しないことを確認。各ケースの後に元の Runtime snapshot を復元した。

これらは境界条件の制御 fixture であり、3名の通常求人からの雇用、実際の通路撤去、物語イベントの自然発生を証明するものではない。投入条件を別とし、操作入口と Runtime の拒否は実コードを使用した。既存の夜勤・申請保存復元・職種拒否・クリック代替の回帰も含め headless77、macOS 描画あり80項目 PASS。描画ありの追加3項目は各拒否表示の画像保存。3画像を視認し、人員上限・通路確認・配属変更不可の説明と無効ボタンを確認した。

証拠: staff-drag-rejections-validation.json、staff-drag-rejections.log、staff-drag-rejections-native.log、staff-drag-rejection-{capacity,route,locked}.png(artifacts/facility-dimensions-2026-09-29 配下)。Windows 同一ビルド、防衛ロック固有の入口、ドラッグ中に状態が変わる競合、P24 の他要件は残る。

ドラッグ開始後の状態変化

入力ヘルパーにマウスリリース直前の試験フックを追加。Viewport が実際にドラッグ中であることを確認した後、イベントのロックまたは作業IDを注入する。ドロップが本物の set_staff_work_assignment コマンドを通り、最新状態による EVENT_LOCKED/STAFF_BUSY の拒否結果を返すこと、配属予定が変化せず適用ボタンが無効になること、具体的な理由が表示されて pending UI が残らないことを検証。各ケース後に元の snapshot を復元する。

headless87、macOS描画あり87項目 PASS(前回77に10項目追加)。本番実装への修正が必要な不具合は検出されなかった。注入は状態境界の再現であり、物語イベント/実作業の自然発生やWindows実機操作ではない。画像は今回新規取得せず、描画ありの入力・状態検証を実施した。証拠: staff-drag-races-validation.json、staff-drag-races.log、staff-drag-races-native.log。

防衛固有のロック、ドラッグ中のロード/施設撤去、Windows同一ビルド操作、P24全体の他要件は残る。