|
- "use strict"
-
- let activeModal = null;
-
- const version = "pre-alpha";
-
- let state = {
- player: {
- items: {
- keys: [
-
- ]
- },
- rooms: {
-
- }
- }
- }
-
- function print(lines) {
- (lines.concat([String.fromCharCode(160)])).forEach(line => {
- const log = document.querySelector("#log");
- const div = document.createElement("div");
-
- div.textContent = line;
-
- log.appendChild(div);
- });
-
- log.scrollTop = log.scrollHeight;
- }
-
- function refresh() {
- updateRoom(state);
- updateWorldInfo(state);
- updatePlayerInfo(state);
- }
-
- function switchModal(to) {
- closeModal(activeModal);
- openModal(to);
- }
-
- function closeModal(modal) {
- const div = document.querySelector("#" + modal);
- div.classList.remove("modal");
- div.classList.add("hidden-modal");
- }
-
- function openModal(modal) {
- const div = document.querySelector("#" + modal);
- div.classList.remove("hidden-modal");
- div.classList.add("modal");
-
- activeModal = modal;
- }
-
- function returnToStart() {
- document.querySelector("#game").classList.remove("scene");
- document.querySelector("#game").classList.add("hidden-scene");
- document.querySelector("#pick").classList.remove("hidden-scene");
- document.querySelector("#pick").classList.add("scene");
- }
-
- // set up the game
-
- function init(story) {
- initWorld(story, state);
- initAudio(story, state);
- initGame(story, state);
-
- goToRoom(story.intro.start, state);
- }
-
- // set up the load screen
-
- function initStart() {
- const versionFields = document.querySelectorAll(".version");
- const select = document.querySelector("#game-select");
- const options = {};
-
- versionFields.forEach(field => {
- field.textContent = "Version: " + version;
- });
-
- stories.forEach(story => {
- const option = document.createElement("option");
- option.value = story.id;
- option.textContent = story.name;
- select.appendChild(option);
- options[story.id] = story;
- })
-
- const start = document.querySelector("#start-button");
-
- start.addEventListener("click", (event) => {
- init(options[select.value]);
- document.querySelector("#pick").classList.remove("scene");
- document.querySelector("#pick").classList.add("hidden-scene");
- document.querySelector("#game").classList.remove("hidden-scene");
- document.querySelector("#game").classList.add("scene");
- });
-
- const gameMenuButton = document.querySelector("#game-menu-button");
-
- const menuSettings = document.querySelector("#menu-button-settings");
- const menuQuit = document.querySelector("#menu-button-quit");
- const menuResume = document.querySelector("#menu-button-resume");
-
- const menuSettingsVolume = document.querySelector("#menu-slider-volume");
- const menuSettingsClose = document.querySelector("#menu-button-settings-close");
-
- const menuQuitYes = document.querySelector("#menu-button-quit-yes");
- const menuQuitNo = document.querySelector("#menu-button-quit-no");
-
- gameMenuButton.addEventListener("click", () => openModal("menu"));
-
- menuSettings.addEventListener("click", () => switchModal("settings"));
- menuQuit.addEventListener("click", () => switchModal("quit"));
- menuResume.addEventListener("click", () => closeModal("menu"));
-
- menuSettingsVolume.addEventListener("input", () => {
- setVolume(parseFloat(menuSettingsVolume.value));
- })
- menuSettingsClose.addEventListener("click", () => switchModal("menu"));
-
- menuQuitYes.addEventListener("click", () => {
- closeModal("quit");
- returnToStart();
- });
- menuQuitNo.addEventListener("click", () => switchModal("menu"));
- }
-
- window.addEventListener("load", initStart);
|