began checkpoint system
This commit is contained in:
@@ -1,19 +1,19 @@
|
||||
var speed = 50
|
||||
var typeindex = 0
|
||||
var dlgPointer = 0
|
||||
var dlgFile
|
||||
var dlgKeyMain = "main"
|
||||
let dlgLines
|
||||
var skipDlg = false
|
||||
var answers
|
||||
var keys
|
||||
var allowNextDlg = true
|
||||
var voice
|
||||
var playerName
|
||||
var speed = 50;
|
||||
var typeindex = 0;
|
||||
var dlgPointer = localStorage.getItem("dlgPointer");
|
||||
var dlgFile;
|
||||
var dlgKeyMain = localStorage.getItem("dlgKeyMain");
|
||||
let dlgLines;
|
||||
var skipDlg = false;
|
||||
var answers;
|
||||
var keys;
|
||||
var allowNextDlg = true;
|
||||
var voice;
|
||||
var playerName;
|
||||
var enemyHealth = 0, enemyDamage = 1, enemyStartsHit = false;
|
||||
var health = 25
|
||||
var weaponName = "Fäuste", continueCount = true
|
||||
let weaponDamage = 1
|
||||
var health = 25;
|
||||
var weaponName = localStorage.getItem("weaponName"), continueCount = true;
|
||||
var weaponDamage = localStorage.getItem("weaponDamage");
|
||||
var counttx = 0, countup = true;
|
||||
|
||||
//TODO
|
||||
@@ -21,181 +21,191 @@ var counttx = 0, countup = true;
|
||||
//save file in local storage
|
||||
|
||||
window.addEventListener('contextmenu', (event) => {
|
||||
event.preventDefault()
|
||||
speed = 0
|
||||
event.preventDefault();
|
||||
speed = 0;
|
||||
})
|
||||
|
||||
function load() {
|
||||
if (!localStorage.getItem("dlgPointer"))
|
||||
dlgPointer = 0;
|
||||
if (!localStorage.getItem("dlgKeyMain"))
|
||||
dlgKeyMain = "main";
|
||||
if (!localStorage.getItem("weaponName"))
|
||||
weaponName = "Fäuste";
|
||||
if (!localStorage.getItem("weaponDamage"))
|
||||
weaponDamage = 1;
|
||||
fetch("text_horror/dialogue.json") //Load json file here
|
||||
.then(Response => Response.json())
|
||||
.then(data => {
|
||||
dlgFile = data
|
||||
changeDlg(dlgKeyMain) //Set "start" key from dialogue.json
|
||||
skipDlg = true //Allow skipping to next dialogue
|
||||
nextDlg(false) //Skip to first
|
||||
dlgFile = data;
|
||||
changeDlg(dlgKeyMain); //Set "start" key from dialogue.json
|
||||
skipDlg = true; //Allow skipping to next dialogue
|
||||
nextDlg(false); //Skip to first
|
||||
});
|
||||
}
|
||||
|
||||
function changeDlg(dlgKey) {
|
||||
dlgPointer = 0;
|
||||
if (typeof dlgFile[dlgKey] === "string") {
|
||||
var oneline = [dlgFile[dlgKey]]
|
||||
dlgLines = oneline
|
||||
var oneline = [dlgFile[dlgKey]];
|
||||
dlgLines = oneline;
|
||||
}
|
||||
else if (Array.isArray(dlgFile[dlgKey]))
|
||||
dlgLines = dlgFile[dlgKey]
|
||||
dlgLines = dlgFile[dlgKey];
|
||||
}
|
||||
|
||||
function updateDlg() {
|
||||
typeindex = 0
|
||||
document.getElementById("dlg-text").innerHTML = ""
|
||||
document.getElementById("triangle").hidden = true
|
||||
typeWriter()
|
||||
typeindex = 0;
|
||||
document.getElementById("dlg-text").innerHTML = "";
|
||||
document.getElementById("triangle").hidden = true;
|
||||
typeWriter();
|
||||
}
|
||||
|
||||
function typeWriter() {
|
||||
if (typeindex < dlgLines[dlgPointer].length) {
|
||||
document.getElementById("dlg-text").innerHTML += dlgLines[dlgPointer].charAt(typeindex)
|
||||
document.getElementById("dlg-text").innerHTML += dlgLines[dlgPointer].charAt(typeindex);
|
||||
if (voice != null && typeindex % 3 == 1) {
|
||||
voice.load()
|
||||
voice.play()
|
||||
voice.load();
|
||||
voice.play();
|
||||
}
|
||||
typeindex++;
|
||||
setTimeout(typeWriter, speed)
|
||||
setTimeout(typeWriter, speed);
|
||||
} else if (allowNextDlg)
|
||||
document.getElementById("triangle").hidden = false
|
||||
document.getElementById("triangle").hidden = false;
|
||||
}
|
||||
|
||||
function nextDlg(dlgPointerIncrease = true) {
|
||||
speed = 50
|
||||
speed = 50;
|
||||
if (document.getElementById("dlg-text").innerHTML.length == dlgLines[dlgPointer].length && allowNextDlg || skipDlg) {
|
||||
skipDlg = false;
|
||||
if (dlgPointerIncrease)
|
||||
dlgPointer++
|
||||
dlgPointer++;
|
||||
if (dlgPointer < dlgLines.length) {
|
||||
if (typeof dlgLines[dlgPointer] === 'number') {
|
||||
speed = 50 / dlgLines[dlgPointer]
|
||||
skipDlg = true
|
||||
speed = 50 / dlgLines[dlgPointer];
|
||||
skipDlg = true;
|
||||
nextDlg();
|
||||
}
|
||||
else if (typeof dlgLines[dlgPointer] === 'string') {
|
||||
if (dlgLines[dlgPointer].startsWith("_")) {
|
||||
skipDlg = true
|
||||
skipDlg = true;
|
||||
if (dlgLines[dlgPointer].split(":")[0] === "_title") {
|
||||
document.getElementById("title").innerHTML = dlgLines[dlgPointer].split(':')[1]
|
||||
document.getElementById("title").innerHTML = dlgLines[dlgPointer].split(':')[1];
|
||||
nextDlg();
|
||||
}
|
||||
else if (dlgLines[dlgPointer].split(":")[0] === "_voice") {
|
||||
if (dlgLines[dlgPointer].split(':')[1].length != 0)
|
||||
voice = new Audio("text_horror/assets/voices/" + dlgLines[dlgPointer].split(':')[1] + ".wav")
|
||||
voice = new Audio("text_horror/assets/voices/" + dlgLines[dlgPointer].split(':')[1] + ".wav");
|
||||
else
|
||||
voice = null
|
||||
voice = null;
|
||||
nextDlg();
|
||||
}
|
||||
else if (dlgLines[dlgPointer].split(":")[0] === "_playsound") {
|
||||
var sound
|
||||
var sound;
|
||||
if (dlgLines[dlgPointer].split(':')[1].length != 0) {
|
||||
sound = new Audio("text_horror/assets/sounds/" + dlgLines[dlgPointer].split(':')[1] + ".wav")
|
||||
sound.load()
|
||||
sound.play()
|
||||
sound = new Audio("text_horror/assets/sounds/" + dlgLines[dlgPointer].split(':')[1] + ".wav");
|
||||
sound.load();
|
||||
sound.play();
|
||||
}
|
||||
else
|
||||
sound = null;
|
||||
nextDlg();
|
||||
}
|
||||
else if (dlgLines[dlgPointer].split(":")[0] === "_jump") {
|
||||
dlgKeyMain = dlgLines[dlgPointer].split(':')[1]
|
||||
load()
|
||||
dlgKeyMain = dlgLines[dlgPointer].split(':')[1];
|
||||
load();
|
||||
dlgPointer = 0;
|
||||
}
|
||||
else if (dlgLines[dlgPointer].split(":")[0] === "_lock") {
|
||||
nextDlg();
|
||||
}
|
||||
else if (dlgLines[dlgPointer].split(":")[0] === "_weapon") {
|
||||
weaponName = dlgLines[dlgPointer].split(':')[1]
|
||||
weaponDamage = dlgLines[dlgPointer].split(':')[2]
|
||||
console.log(weaponDamage)
|
||||
weaponName = dlgLines[dlgPointer].split(':')[1];
|
||||
weaponDamage = dlgLines[dlgPointer].split(':')[2];
|
||||
console.log(weaponDamage);
|
||||
nextDlg();
|
||||
}
|
||||
else if (dlgLines[dlgPointer].split(":")[0] === "_enemy") {
|
||||
document.getElementById("enemy-name").innerHTML = dlgLines[dlgPointer].split(":")[1]
|
||||
document.getElementById("enemy-texture").src = "text_horror/assets/textures/" + dlgLines[dlgPointer].split(":")[2] + ".png"
|
||||
enemyHealth = dlgLines[dlgPointer].split(":")[3]
|
||||
enemyDamage = dlgLines[dlgPointer].split(":")[4]
|
||||
countWeaponDamage()
|
||||
document.getElementById("enemy-health").innerHTML = enemyHealth
|
||||
document.getElementById("weapon").innerHTML = weaponName
|
||||
document.getElementById("health").innerHTML = health
|
||||
document.getElementById("fight").style.visibility = "unset"
|
||||
document.getElementById("dlg-text").innerHTML = ""
|
||||
document.getElementById("bubble").hidden = true
|
||||
document.getElementById("answer-box").hidden = true
|
||||
document.getElementById("triangle").hidden = true
|
||||
document.getElementById("enemy-name").innerHTML = dlgLines[dlgPointer].split(":")[1];
|
||||
document.getElementById("enemy-texture").src = "text_horror/assets/textures/" + dlgLines[dlgPointer].split(":")[2] + ".png";
|
||||
enemyHealth = dlgLines[dlgPointer].split(":")[3];
|
||||
enemyDamage = dlgLines[dlgPointer].split(":")[4];
|
||||
countWeaponDamage();
|
||||
document.getElementById("enemy-health").innerHTML = enemyHealth;
|
||||
document.getElementById("weapon").innerHTML = weaponName;
|
||||
document.getElementById("health").innerHTML = health;
|
||||
document.getElementById("fight").style.visibility = "unset";
|
||||
document.getElementById("dlg-text").innerHTML = "";
|
||||
document.getElementById("bubble").hidden = true;
|
||||
document.getElementById("answer-box").hidden = true;
|
||||
document.getElementById("triangle").hidden = true;
|
||||
}
|
||||
} else
|
||||
updateDlg();
|
||||
}
|
||||
else if (typeof dlgLines[dlgPointer] === 'object') {
|
||||
allowNextDlg = false;
|
||||
document.getElementById("triangle").hidden = true
|
||||
document.getElementById("answer-box").hidden = false
|
||||
answers = document.getElementsByClassName("answer")
|
||||
keys = Object.keys(dlgLines[dlgPointer])
|
||||
document.getElementById("triangle").hidden = true;
|
||||
document.getElementById("answer-box").hidden = false;
|
||||
answers = document.getElementsByClassName("answer");
|
||||
keys = Object.keys(dlgLines[dlgPointer]);
|
||||
for (let j = 0; j < keys.length; j++) {
|
||||
answers.item(j).innerHTML = keys[j]
|
||||
answers.item(j).innerHTML = keys[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
document.getElementById("bubble").hidden = true
|
||||
document.getElementById("answer-box").hidden = true
|
||||
document.getElementById("triangle").hidden = true
|
||||
document.getElementById("bubble").hidden = true;
|
||||
document.getElementById("answer-box").hidden = true;
|
||||
document.getElementById("triangle").hidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function answered(answerId) {
|
||||
dlgFile = dlgLines[dlgPointer]
|
||||
document.getElementById("answer-box").hidden = true
|
||||
changeDlg(document.getElementById(answerId).innerHTML)
|
||||
allowNextDlg = true
|
||||
skipDlg = true
|
||||
nextDlg(false)
|
||||
dlgFile = dlgLines[dlgPointer];
|
||||
document.getElementById("answer-box").hidden = true;
|
||||
changeDlg(document.getElementById(answerId).innerHTML);
|
||||
dlgPointer = 0;
|
||||
allowNextDlg = true;
|
||||
skipDlg = true;
|
||||
nextDlg(false);
|
||||
for (let j = 0; j < keys.length; j++) {
|
||||
answers.item(j).innerHTML = ""
|
||||
answers.item(j).innerHTML = "";
|
||||
}
|
||||
}
|
||||
|
||||
function fight() {
|
||||
continueCount = false
|
||||
continueCount = false;
|
||||
if (!enemyStartsHit) {
|
||||
if (!continueCount) {
|
||||
enemyStartsHit = true
|
||||
enemyStartsHit = true;
|
||||
setTimeout(() => {
|
||||
enemyHealth = enemyHealth - counttx
|
||||
enemyHealth = enemyHealth - counttx;
|
||||
if (enemyHealth < 1) {
|
||||
setTimeout(() => {
|
||||
document.getElementById("fight").style.visibility = "hidden"
|
||||
document.getElementById("bubble").hidden = false
|
||||
document.getElementById("triangle").hidden = false
|
||||
nextDlg()
|
||||
}, 1000)
|
||||
document.getElementById("fight").style.visibility = "hidden";
|
||||
document.getElementById("bubble").hidden = false;
|
||||
document.getElementById("triangle").hidden = false;
|
||||
health = 25;
|
||||
nextDlg();
|
||||
}, 1000);
|
||||
}
|
||||
document.getElementById("enemy-health").innerHTML = enemyHealth
|
||||
document.getElementById("weapon-damage").innerHTML = weaponDamage
|
||||
setTimeout(() => {
|
||||
health = health - enemyDamage
|
||||
document.getElementById("health").innerHTML = health
|
||||
document.getElementById("health").innerHTML = health;
|
||||
if (health > 0) {
|
||||
enemyStartsHit = false
|
||||
continueCount = true
|
||||
countWeaponDamage()
|
||||
enemyStartsHit = false;
|
||||
continueCount = true;
|
||||
countWeaponDamage();
|
||||
}
|
||||
else
|
||||
setTimeout(() => { document.getElementById("fight").style.visibility = "hidden" }, 1000)
|
||||
}, 2000)
|
||||
}, 100)
|
||||
setTimeout(() => { document.getElementById("fight").style.visibility = "hidden"; }, 1000);
|
||||
}, 2000);
|
||||
}, 100);
|
||||
} else
|
||||
countWeaponDamage()
|
||||
countWeaponDamage();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,7 +220,7 @@ function countWeaponDamage() {
|
||||
if (counttx <= 0)
|
||||
countup = true;
|
||||
}
|
||||
document.getElementById("weapon-damage").innerHTML = counttx
|
||||
document.getElementById("weapon-damage").innerHTML = counttx;
|
||||
if (continueCount)
|
||||
setTimeout(countWeaponDamage, 100)
|
||||
setTimeout(countWeaponDamage, 100);
|
||||
}
|
||||
|
Reference in New Issue
Block a user