- Add app/games: GameProfile base, registry, ReaderHooks and renpy/naninovel/ tomie profiles. pipeline, preflight, detect and mods dispatch via the registry - Move tomie_* converter modules to app/games/tomie and split out reader hooks, import, mod validation and known defects - Tolerate the 31 authoring defects of the pinned Tomie build as report warnings (exact list, per-script counts); any new defect still blocks import - Frontend: runtime registry (runtimes.ts) with lazy Tomie launcher - Add profile/registry tests and docs/GAME_PROFILES.md; update IMPORT.md Full media export of the original Tomie build is not yet verified. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
31 lines
941 B
Python
31 lines
941 B
Python
"""Tomie Wants to Get Married, Expansion 1.3801 (Unity + Naninovel), pinned by assembly hash."""
|
|
from pathlib import Path
|
|
|
|
from app.games.base import GameProfile, Progress
|
|
from app.games.tomie.profile import PROFILE, identify
|
|
|
|
|
|
class TomieProfile(GameProfile):
|
|
id = PROFILE
|
|
engine = "naninovel"
|
|
runtime = "tomie/1"
|
|
specific = True
|
|
|
|
def claims(self, root: Path) -> bool:
|
|
return identify(root) == PROFILE
|
|
|
|
def inspect(self, root: Path, work: Path | None = None) -> dict:
|
|
from app.games.tomie.convert import inspect_tomie
|
|
|
|
return inspect_tomie(root, work)
|
|
|
|
def convert(self, root: Path, work: Path, progress: Progress):
|
|
from app.games.tomie.convert import convert_tomie
|
|
|
|
return convert_tomie(root, work, progress)
|
|
|
|
def validate_mod(self, game, scripts, manifest) -> None:
|
|
from app.games.tomie.mod import validate_mod
|
|
|
|
validate_mod(game, scripts, manifest)
|