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