Skip to content

[codex] Plan B upper-floor exam source flow#130

Draft
sw1029 wants to merge 21 commits into
mainfrom
codex/plan-b-floor4-5-correction
Draft

[codex] Plan B upper-floor exam source flow#130
sw1029 wants to merge 21 commits into
mainfrom
codex/plan-b-floor4-5-correction

Conversation

@sw1029

@sw1029 sw1029 commented Jun 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Implements the Plan B upper-floor exam source flow for Magic Exam Hall.
  • Commits only source/test-style changes from the dirty local worktree: Unity C# scripts under Assets/MagicExamHall/Scripts/** and tests under Assets/Tests/**.
  • Leaves local docs, Unity settings, build outputs, archives, and temporary scene artifacts out of this PR.

Scope

  • Refines spell recognition, custom-shape handling, logging, floor progression, mentor presentation, and runtime gameplay flow.
  • Updates focused EditMode and PlayMode coverage for the Plan B gameplay path.
  • Builds on the existing Plan B asset/runtime branch history already present on codex/plan-b-floor4-5-correction.

Validation

  • git diff --cached --check passed before commit.
  • git diff --check origin/main...origin/codex/plan-b-floor4-5-correction passed after push.
  • git merge-tree --write-tree origin/main origin/codex/plan-b-floor4-5-correction reports no textual conflict with main.

Notes

SilverSupplier and others added 21 commits June 13, 2026 01:07
The two-track personalization pivot changed floors 2-4 from the
draft (broken runes / single bridge / spreading cracks) to the
shipped design (custom-shape reaction marks / four blocked passages
/ training targets). Section 9 floor specs, density table, story
arc, BGM note, and moment 4 now describe the implementation in
ExamGameController.BuildFloorDefinitions. Draft remains in git
history.
scripts/analyze-playtest-attempts.py auto-derives the protocol
metrics from attempts.csv: per-session learning curve (RQ1),
before/after-hint success rates (RQ2), per-family first-attempt
success and confusion matrix (RQ3), failure type distribution,
assist reach, stuck points, and SUS scoring. Stdlib only; verified
against synthetic data.

RESEARCH_PROTOCOL gains the SUS-10 questionnaire (Korean), a
behavioral feedback-comprehension coding procedure (stated fix vs
actual next attempt), and analysis steps. FINAL_REPORT metrics
table updated to match.
HintAssistanceTests verifies the assist escalator (ReasonHint ->
Checklist -> GhostTrace with cap), clean-success behavior, assisted
flag retention, hintShown/level invariant, per-family checklists,
and mentor profile mapping. EditMode total 113/113 locally.

Inspection report corrections: the 8-second first-floor silence
trigger does exist (ghost gesture at 8s, missed by the initial
grep); dialogue pool/cooldown remain unimplemented features rather
than missing tests.
…label polish

UI/art quality pass after the running game looked unfinished:

- Bundle Galmuri (SIL OFL 1.1) Korean bitmap font in Resources/Fonts
  and load it for all UI text, replacing the OS Malgun Gothic/Arial
  dependency. Crisp, deterministic Korean glyphs on every machine.
- Replace the procedural blob player and mentors with recolored
  sprites sliced from the 'Zelda-like tilesets and sprites' pack
  (ArMM1998, CC0): 4-direction idle/walk/cast player frames plus 15
  mentor poses (5 floors x neutral/happy/frown), via the new
  scripts/import-character-pack.py.
- Goal labels get a 1px outline and alternate above/below their
  target so neighbouring labels no longer stack and overlap.
- Relocate the gameplay codex button off the parchment quest panel
  to the bottom-right above the skip button.
- Screenshot exporter now disables the pixel-perfect 632x356
  windowbox during capture so HUD text is captured at full
  resolution (it was smearing every small glyph), and leaves the
  title screen / clears stale floor roots for clean per-floor shots.

License: docs/CREDITS.md and docs/asset-licenses/fonts updated.
The launch/title screen was built on top of a fully-loaded floor 1
behind a 94%-opaque overlay, so the level and HUD bled through and the
tower silhouette (offset to x=250) overlapped the title text.

- Make the boot overlay fully opaque and put it on its own canvas at
  sorting 200, above the HUD (100) and world labels (42), so the
  title/menu/pause screens cover the game cleanly instead of letting
  stray panels poke through.
- Recompose the tower silhouette as a centered, low-contrast backdrop
  drawn behind the title text (was a crude off-center panel clipping
  the title), and nudge subtitle/flavor/prompt spacing.
- Add FloorScreenshotExporter.ExportTitle to capture the title screen
  for review.
- Codex note body started at y=202 and ran straight through the tab
  row (y=164); move it below the tabs so tabs and text no longer
  collide (affects both the note and discovery tabs).
- Ending report was a 760x520 card on the gameplay canvas, so the
  finished floor showed around it. Make it a full-screen opaque
  backdrop with a gold-bordered card and larger (18pt) centered text.
- Add FloorScreenshotExporter.ExportAllScreens to capture every
  menu/boot screen (title, menu, options, pause, codex, discovery,
  ending report) for review.
# Conflicts:
#	docs/FINAL_REPORT.md
#	docs/RESEARCH_PROTOCOL.md
# Conflicts:
#	unity/MagicExamHall/Assets/Tests/EditMode/HintAssistanceTests.cs
# Conflicts:
#	unity/MagicExamHall/Assets/MagicExamHall/Editor/FloorScreenshotExporter.cs
#	unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/ExamGameController.cs
#	unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/GameBootController.cs
# Conflicts:
#	unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/ExamGameController.cs
#	unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/GameBootController.cs
#	unity/MagicExamHall/Assets/Tests/PlayMode/MagicExamHallSceneSmokeTests.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants