feat: player runtime for goodluke and SaintlyCorruption
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:
1 parent
e66160cffa
commit
e48521bdfb
12 files changed
+440
-26
No files matched your search
@@ -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(); }
|
||||
});
|
||||
Reference in new issue
Block a user