diff --git a/src/App.svelte b/src/App.svelte
index da43718..c4a4d5e 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -5,9 +5,7 @@
import { characters } from "./stores/characters.js";
import { dialog } from "./stores/dialog.js";
import Game from "./pages/game.svelte";
- import { gameActive } from "./stores/gameActive";
-
- var current = localStorage.getItem("dialog-page") || 0;
+ import { gameActive, page } from "./stores/gameActive";
var preloads = new Map;
function preload(url) {
@@ -33,7 +31,7 @@
if(!music.playing()) music.play();
}
- console.log(dialog[current]);
+ $: console.log(dialog[$page]);
console.log("Pancake recipe at https://github.com/danbulant/heaventaker");
@@ -43,10 +41,10 @@
Heaventaker
-{#if dialog[current].map}
-
+{#if dialog[$page].map}
+
{/if}
-
-
+
+
diff --git a/src/game/gameScene.js b/src/game/gameScene.js
index 34fd1aa..4576fb0 100644
--- a/src/game/gameScene.js
+++ b/src/game/gameScene.js
@@ -1,6 +1,8 @@
import Phaser, { Animations } from "phaser";
+import { gameActive, page } from "../stores/gameActive";
import { steps } from "../stores/step";
import { keys } from "./input";
+import { dialog } from "../stores/dialog.js";
const textureWidth = 100;
@@ -16,6 +18,7 @@ export class GameScene extends Phaser.Scene {
/** @type {{
background: string,
sprite: string,
+ next: string,
offset: { x: number, y: nunber },
size: { x: number, y: number },
px: number,
@@ -119,6 +122,11 @@ export class GameScene extends Phaser.Scene {
this.player.x = x;
this.player.y = y;
}
+ if(item.type === "angel") {
+ this.angel = item;
+ this.angel.x = x;
+ this.angel.y = y;
+ }
if(item.type !== "wind") {
item.sprite.setDepth(1);
} else {
@@ -189,10 +197,22 @@ export class GameScene extends Phaser.Scene {
if(this.winds[toX][toY]) {
var movement = this.getMovementFromDirection(this.winds[toX][toY].direction);
this.movePlayer(movement.x, movement.y, true);
+ } else {
+ this.checkAngel();
}
});
}
+ checkAngel() {
+ var xdiff = Math.abs(this.player.x - this.angel.x);
+ var ydiff = Math.abs(this.player.y - this.angel.y);
+ if((xdiff === 0 && ydiff === 1) || (xdiff === 1 && ydiff === 0)) {
+ var next = dialog.findIndex(t => t.name === this.map.next);
+ page.set(next);
+ gameActive.set(false);
+ }
+ }
+
canMove = true;
update() {
diff --git a/src/game/maps.js b/src/game/maps.js
index 2e26019..7cd2273 100644
--- a/src/game/maps.js
+++ b/src/game/maps.js
@@ -26,6 +26,7 @@ export const maps = {
uriel: {
background: "level1",
sprite: "uriel",
+ next: "uriel_entrance",
offset: { // map offset for alignment
x: 60,
y: 100
diff --git a/src/stores/gameActive.js b/src/stores/gameActive.js
index 9ac0370..fc0d3e7 100644
--- a/src/stores/gameActive.js
+++ b/src/stores/gameActive.js
@@ -1,3 +1,4 @@
import { writable } from "svelte/store";
-export const gameActive = writable(false);
\ No newline at end of file
+export const gameActive = writable(true);
+export const page = writable(parseInt(localStorage.getItem("dialog-page")) || 0);
\ No newline at end of file