feat: player runtime for goodluke and SaintlyCorruption
CI / frontend (push) Failing after 16s
CI / backend (push) Failing after 39s

Text fields (`input`) with InputValue classes games can extend, continue/break in screen loops, Confirm,
CaptureFocus/ClearFocus/InvertSelected, generator functions and iter/next, starred tuple items,
renpy.file and json over data files loaded before the game starts, renpy.Container and
register_sl_displayable, DiamondBox layout, ConditionSwitch/DynamicImage/Animation, renpy.show(what=...),
callable transforms (`store.move_in(0.3)`), call_in_new_context as a call, im.matrix/im.Image/
MatrixColor, colorsys, fnmatch, FontGroup, persistent._clear and small renpy helpers.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Sonnet 5.5 committed 2026-10-26 17:28:14 +03:00
1 parent e66160cffa
commit e48521bdfb
12 files changed
+440 -26

No files matched your search

+10
View File
@@ -183,3 +183,13 @@ test("a game's renpy.Displayable subclass renders a tree of pieces through renpy
assert.deepEqual([tree.pieces[2].x, tree.pieces[2].y], [3, 4]);
} finally { engine.destroy(); }
});
test("starred items spread into tuples and lists", () => {
const { engine } = makeEngine(runtime());
try {
engine.newStore();
engine.store.rest = [2, 3];
const spread = engine.py.eval({ k: "tuple", v: [{ k: "const", v: 1 }, { k: "star", v: { k: "name", id: "rest" } }, { k: "const", v: 4 }] });
assert.deepEqual(spread, [1, 2, 3, 4]);
} finally { engine.destroy(); }
});