diff --git a/src/App.svelte b/src/App.svelte
index ccb021e..a286106 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -5,7 +5,8 @@
import { characters } from "./stores/characters.js";
import { dialog } from "./stores/dialog.js";
import Game from "./pages/game.svelte";
- import { gameActive, page } from "./stores/gameActive";
+ import { gameActive, menuActive, page } from "./stores/gameActive";
+import Menu from "./pages/menu.svelte";
var preloads = new Map;
function preload(url) {
@@ -71,8 +72,11 @@
{#if dialog[$page].map}
{/if}
+{#if $menuActive}
+
+{/if}
-
+
diff --git a/src/game/gameScene.js b/src/game/gameScene.js
index f167742..17be201 100644
--- a/src/game/gameScene.js
+++ b/src/game/gameScene.js
@@ -1,5 +1,5 @@
import Phaser, { Animations } from "phaser";
-import { gameActive, page } from "../stores/gameActive";
+import { gameActive, menuActive, page } from "../stores/gameActive";
import { steps } from "../stores/step";
import { keys } from "./input";
import { dialog } from "../stores/dialog.js";
@@ -10,6 +10,10 @@ var stepNum;
steps.subscribe(t => {
stepNum = t;
});
+var paused;
+menuActive.subscribe(t => {
+ paused = t;
+});
export class GameScene extends Phaser.Scene {
constructor(map) {
@@ -311,6 +315,15 @@ export class GameScene extends Phaser.Scene {
canMove = true;
update() {
+ this.container.x = this.cameras.main.width / 2 - this.container.width / 2;
+ this.container.y = this.cameras.main.height / 2 - this.container.height / 2;
+ if(keys.wasKeyPressed("pause")) {
+ console.log("Paused");
+ menuActive.set(!paused);
+ }
+
+ if(paused) return;
+
// debug mode
if(keys.wasKeyPressed("debug")) {
console.log("Toggled debug mode");
@@ -320,9 +333,6 @@ export class GameScene extends Phaser.Scene {
if(!this.physics.config.debug) this.physics.world.debugGraphic.destroy();
}
- this.container.x = this.cameras.main.width / 2 - this.container.width / 2;
- this.container.y = this.cameras.main.height / 2 - this.container.height / 2;
-
if(this.isWindActive(this.player.x, this.player.y)) {
var movement = this.getMovementFromDirection(this.winds[this.player.x][this.player.y].direction);
diff --git a/src/game/input.js b/src/game/input.js
index a786505..6d3f79f 100644
--- a/src/game/input.js
+++ b/src/game/input.js
@@ -5,7 +5,8 @@ const keybinds = {
"left": "ArrowLeft",
"up": "ArrowUp",
"down": "ArrowDown",
- "debug": "f3"
+ "debug": "f3",
+ "pause": "Escape"
};
class KeyHandler {
diff --git a/src/pages/dialog.svelte b/src/pages/dialog.svelte
index b59ea9d..08586c3 100644
--- a/src/pages/dialog.svelte
+++ b/src/pages/dialog.svelte
@@ -3,8 +3,9 @@
import { Howl } from "howler";
import { chapters, dialog } from "../stores/dialog.js";
import { characters } from "../stores/characters.js";
- import { gameActive } from "../stores/gameActive";
+ import { gameActive, menuActive } from "../stores/gameActive";
import { toRoman } from "../utils";
+import Keypress from "../stores/keypress.svelte";
export var current;
export var page;
@@ -90,7 +91,8 @@
var chaptersDone = JSON.parse(localStorage.getItem("chapters") || "[]");
function keydown(e) {
- switch(e.key) {
+ if($menuActive || $gameActive) return;
+ switch(e.detail.key) {
case "ArrowUp":
case "ArrowLeft":
activeButton--;
@@ -150,7 +152,8 @@
}
-
+
+
diff --git a/src/pages/menu.svelte b/src/pages/menu.svelte
new file mode 100644
index 0000000..11b8584
--- /dev/null
+++ b/src/pages/menu.svelte
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/stores/gameActive.js b/src/stores/gameActive.js
index 7baff09..4fc229f 100644
--- a/src/stores/gameActive.js
+++ b/src/stores/gameActive.js
@@ -4,4 +4,5 @@ export const gameActive = writable(!!parseInt(localStorage.getItem("game-active"
gameActive.subscribe(t => {
localStorage.setItem("game-active", t ? 1 : 0);
});
-export const page = writable(parseInt(localStorage.getItem("dialog-page")) || 0);
\ No newline at end of file
+export const page = writable(parseInt(localStorage.getItem("dialog-page")) || 0);
+export const menuActive = writable(false);
\ No newline at end of file
diff --git a/src/stores/keypress.svelte b/src/stores/keypress.svelte
new file mode 100644
index 0000000..25ed888
--- /dev/null
+++ b/src/stores/keypress.svelte
@@ -0,0 +1,18 @@
+
+
+
\ No newline at end of file