Code changes driven by the save/load audit done ahead of the May 19 EA ship:

  • SaveSystem: null-coalesce every inbound list (schema drift guard), replace Enum.Parse with TryParse for Difficulty/GearSlot/NodeType (defaults to sane values on rename), regen dropped combat enemies from the act pool if every saved enemy name fails to resolve, null-check MetaSaveData before dereferencing scalar fields.
  • SettingsMenu: apply video settings via RuntimeInitializeOnLoadMethod so fullscreen/vsync/frame-cap persist on boot (previously required opening the settings menu once before they applied — Day-1 complaint source).
  • CombatManager: gate the per-hit [DISTANCE] Debug.Log behind UNITY_EDITOR so it stops spamming shipped builds.
  • MainMenuUI: read Application.version for the bottom-left version string, add a quiet REPORT A BUG link bottom-right, add a first- launch EA disclaimer popup (shown once, gated by PlayerPrefs).
  • MenuMessagePopup: new reusable modal used by the EA disclaimer AND the new “save incompatible — cleared it, start a new run” fallback on Continue Run failure. Replaces the old silent Debug.LogError.
  • KNOWN_ISSUES.md: triaged audit of TODO / FIXME / HACK across the codebase. 1 fix-before-launch (already fixed in this commit), 1 post-launch, 9 ship-as-is.
  • QA_BUGS.md: template for tracking playtest bugs through launch.
  • Packages + Resources/*.meta: IL2CPP install from yesterday + Unity- regenerated meta files for event/gear art.

Co-Authored-By: Claude Opus 4.7 (1M context) [email protected]


Commit 1278d89 by astafford8488.