feat: unlock in-game galleries per owned version
CI / frontend (push) Failing after 22s
CI / backend (push) Failing after 42s

This commit is contained in:
mrleo1nid committed 2026-10-27 15:45:22 +03:00
1 parent e14184435c
commit 19924e1c5a
21 files changed
+977 -395

No files matched your search

+3 -1
View File
@@ -28,6 +28,7 @@ export interface StyleDef {
}
export interface ScreenHost {
galleryUnlocked?: boolean;
py: Python;
fileUrl(path: string): string | null;
/** Element for an image name, file path or colour. */
@@ -1690,7 +1691,7 @@ export class ScreenManager {
if (isNativeAction(a)) return a.get_sensitive();
if (a instanceof PyInstance) return this.askAction(a, "get_sensitive", true);
return !(a instanceof ScreenAction) ||
(a.kind === "SensitiveIf" ? truthy(a.args[0]) : a.kind === "Replay" ? !truthy(a.kw.locked ?? a.args[2]) : true);
(a.kind === "SensitiveIf" ? truthy(a.args[0]) : a.kind === "Replay" ? this.host.galleryUnlocked || !truthy(a.kw.locked ?? a.args[2]) : true);
});
}
@@ -2071,6 +2072,7 @@ export class ScreenManager {
out.Image = shape("image");
out.ImageReference = shape("image");
out.Gallery = galleryClass({
unlocked: () => !!this.host.galleryUnlocked,
seen: (name) => truthy(this.host.py.eval({ k: "call", f: { k: "attr", o: { k: "name", id: "renpy" }, a: "seen_image" }, a: [{ k: "const", v: name }], kw: {} })),
evaluate: (source) => this.host.py.eval(parseExpression(source)),
show: (pictures, transition) => this.showGallery(pictures, transition),