summaryrefslogtreecommitdiff
path: root/src/engine/levels/Tutorial.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/levels/Tutorial.ts')
-rw-r--r--src/engine/levels/Tutorial.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/engine/levels/Tutorial.ts b/src/engine/levels/Tutorial.ts
new file mode 100644
index 0000000..165b10f
--- /dev/null
+++ b/src/engine/levels/Tutorial.ts
@@ -0,0 +1,32 @@
+import { Level, LevelNames } from ".";
+import { Game } from "..";
+import {
+ Curry,
+ FunctionApplication,
+ LambdaFactory,
+ LockedDoor,
+ Player,
+ Wall,
+} from "../entities";
+
+export class Tutorial extends Level {
+ constructor() {
+ super(LevelNames.Tutorial);
+ }
+
+ public init(game: Game): void {
+ const entities = [
+ new Player({ x: 2, y: 2 }),
+ new Wall({ x: 10, y: 9 }),
+ new Wall({ x: 10, y: 11 }),
+ new Wall({ x: 11, y: 10 }),
+ new Curry({ x: 10, y: 10 }),
+ new LockedDoor({ x: 9, y: 10 }),
+ new LambdaFactory({ x: 6, y: 3 }, "(λ (x) . x)", 3),
+
+ new FunctionApplication({ x: 6, y: 6 }, "(_INPUT key)"),
+ ];
+
+ entities.forEach((entity) => game.addEntity(entity));
+ }
+}