minor bug fixes
This commit is contained in:
parent
ea6c1eef48
commit
634b2c1b69
Binary file not shown.
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 8.3 KiB |
@ -110,10 +110,10 @@ const bubbleSpriteSpec = {
|
|||||||
SPRITE_SPECS.set(Sprites.BUBBLE, bubbleSpriteSpec);
|
SPRITE_SPECS.set(Sprites.BUBBLE, bubbleSpriteSpec);
|
||||||
|
|
||||||
const portalSpriteSpec = {
|
const portalSpriteSpec = {
|
||||||
msPerFrame: 200,
|
msPerFrame: 150,
|
||||||
width: 64,
|
width: 64,
|
||||||
height: 64,
|
height: 64,
|
||||||
frames: 3,
|
frames: 9,
|
||||||
sheet: "/assets/portal.png",
|
sheet: "/assets/portal.png",
|
||||||
};
|
};
|
||||||
SPRITE_SPECS.set(Sprites.PORTAL, portalSpriteSpec);
|
SPRITE_SPECS.set(Sprites.PORTAL, portalSpriteSpec);
|
||||||
|
@ -143,12 +143,19 @@ export class LambdaFactory extends Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private spawnNewLambda(direction: Direction) {
|
private spawnNewLambda(direction: Direction) {
|
||||||
|
try {
|
||||||
|
parse(this.code);
|
||||||
|
} catch (e: any) {
|
||||||
|
SOUNDS.get(Failure.name)!.play();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const spawner = this.getComponent<GridSpawn>(ComponentNames.GridSpawn);
|
const spawner = this.getComponent<GridSpawn>(ComponentNames.GridSpawn);
|
||||||
spawner.spawnEntity(direction);
|
spawner.spawnEntity(direction);
|
||||||
|
|
||||||
const text = this.getComponent<Text>(ComponentNames.Text);
|
const textComponent = this.getComponent<Text>(ComponentNames.Text);
|
||||||
text.text = spawner.spawnsLeft.toString();
|
textComponent.text = spawner.spawnsLeft.toString();
|
||||||
this.addComponent(text);
|
this.addComponent(textComponent);
|
||||||
|
|
||||||
SOUNDS.get(LambdaTransformSound.name)!.play();
|
SOUNDS.get(LambdaTransformSound.name)!.play();
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,7 @@ export class Tutorial extends Level {
|
|||||||
new Wall({ x: 11, y: 10 }),
|
new Wall({ x: 11, y: 10 }),
|
||||||
new Curry({ x: 10, y: 10 }),
|
new Curry({ x: 10, y: 10 }),
|
||||||
new LockedDoor({ x: 9, y: 10 }),
|
new LockedDoor({ x: 9, y: 10 }),
|
||||||
new LambdaFactory({ x: 6, y: 3 }, "(λ (x) . x)", 3),
|
new LambdaFactory({ x: 6, y: 3 }, "// TODO: Remove line\n(λ (x) . x)", 3),
|
||||||
|
|
||||||
new FunctionApplication({ x: 6, y: 6 }, "(_INPUT key)"),
|
new FunctionApplication({ x: 6, y: 6 }, "(_INPUT key)"),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ export default (function () {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
function peg$parse(input, options, allowUnderscores = false) {
|
function peg$parse(input, options) {
|
||||||
options = options !== undefined ? options : {};
|
options = options !== undefined ? options : {};
|
||||||
|
|
||||||
var peg$FAILED = {};
|
var peg$FAILED = {};
|
||||||
@ -215,7 +215,7 @@ export default (function () {
|
|||||||
var peg$c2 = ".";
|
var peg$c2 = ".";
|
||||||
var peg$c3 = "\r\n";
|
var peg$c3 = "\r\n";
|
||||||
|
|
||||||
var peg$r0 = allowUnderscores ? /^[a-zA-Z0-9]_/ : /^[a-zA-Z0-9]/;
|
var peg$r0 = /^[a-zA-Z0-9]/;
|
||||||
var peg$r1 = /^[\\\u03BB]/;
|
var peg$r1 = /^[\\\u03BB]/;
|
||||||
var peg$r2 = /^[\t-\n ]/;
|
var peg$r2 = /^[\t-\n ]/;
|
||||||
|
|
||||||
|
@ -30,10 +30,6 @@ export const isVariable = (term: LambdaTerm): term is Variable => {
|
|||||||
return typeof term === "string";
|
return typeof term === "string";
|
||||||
};
|
};
|
||||||
|
|
||||||
export const parse = (
|
export const parse = (term: string, library = false) => {
|
||||||
term: string,
|
return peggyParser.parse(term, { peg$library: library });
|
||||||
allowUnderscores = false,
|
|
||||||
library = false,
|
|
||||||
) => {
|
|
||||||
return peggyParser.parse(term, { peg$library: library }, allowUnderscores);
|
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user