Dev notes ·

Step 24: full UX & options (built, compiled, untested)

  • Settings (GameSettings, saved to settings.json beside the saves; applied at once by SettingsApplier):
    • Graphics: quality level, resolution, fullscreen, vsync.
    • Audio: master volume (works now), plus music and effects volumes (stored for Step 25).
    • Controls: mouse sensitivity, invert Y, and key remapping. Click a key, press the new one, Esc cancels. Saved as Input System binding overrides; the HUD hotbar shows the remapped keys.
    • Accessibility: UI/text size 80–150% (PanelSettings scale, put back after a test run in the editor); colour-blind-safe rarity colours (Okabe–Ito, on UI borders and text and on the loot beams); longer enemy and boss wind-ups (×1.25 or ×1.5, boss-polydegmon §13); damage numbers on/off.
    • Restore defaults.
  • One settings window (SettingsPanel) shared by the title screen and the Esc menu (new Settings button). Esc in Settings goes back to the menu.
  • Characters: up to 8 save slots (hero_0…hero_7.json). The old single save becomes slot 0 automatically.
    • Title: Continue (the last character played), Characters (each row shows name, class, level, chapter, time and tier, with Play, a tier picker and Delete with confirm), New Character (class, then a name; empty = the class name), Settings, Quit.
    • SaveData.CharacterName; Embers → Saves → Delete Save now clears every slot.
  • Controller layout:
    • Left stick moves, right stick looks.
    • Hotbar: X / Y / B / LB / RT / LT.
    • A interacts, RB cycles targets, Start opens the menu, Select opens the bag.
    • D-pad: up = skill tree, down = map, left = town portal.
    • Left stick click sprints, right stick click jumps.
    • Menus still need the mouse (no gamepad UI navigation yet).
  • Tests: slots (separate, newest first, free slot, delete), the old save migrating to slot 0, settings save/load/clamp, a remapped key surviving a fresh map. The test assembly now references Unity.InputSystem.

All dev notes