from pathlib import Path ROOT = Path(__file__).resolve().parents[1] FILES = { "AgrarianMvpFrontendWidget.h": ROOT / "Source" / "AgrarianGame" / "AgrarianMvpFrontendWidget.h", "AgrarianMvpFrontendWidget.cpp": ROOT / "Source" / "AgrarianGame" / "AgrarianMvpFrontendWidget.cpp", "AgrarianGamePlayerController.cpp": ROOT / "Source" / "AgrarianGame" / "AgrarianGamePlayerController.cpp", "AGRARIAN_DEVELOPMENT_ROADMAP.md": ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md", } EXPECTED = { "AgrarianMvpFrontendWidget.h": [ "CharacterSelection", "DrawCharacterSelection", ], "AgrarianMvpFrontendWidget.cpp": [ "EAgrarianMvpFrontendScreen::CharacterSelection", "DrawCharacterSelection", "Choose your first settler", "Young adult male", "Young adult female", "MVP placeholder landing page", ], "AgrarianGamePlayerController.cpp": [ "SetActiveScreen(EAgrarianMvpFrontendScreen::CharacterSelection)", ], "AGRARIAN_DEVELOPMENT_ROADMAP.md": [ "[x] After splash/startup screens, land on an MVP character selection landing page.", "`CharacterSelection`", ], } def main(): missing = [] for label, path in FILES.items(): text = path.read_text(encoding="utf-8") for snippet in EXPECTED[label]: if snippet not in text: missing.append(f"{label}: {snippet}") if missing: raise RuntimeError("MVP character selection landing verification failed: " + "; ".join(missing)) print("Agrarian MVP character selection landing verification complete.") if __name__ == "__main__": main()