|
|
@ -212,6 +212,7 @@ function checkEntreCroisement(logiqueId) {
|
|
|
|
let logique = findLogique(logiqueId);
|
|
|
|
let logique = findLogique(logiqueId);
|
|
|
|
if (logique.id1 != null && logique.id2 != null) {
|
|
|
|
if (logique.id1 != null && logique.id2 != null) {
|
|
|
|
if (stage.findOne("#" + logique.id1).points()[1] > stage.findOne("#" + logique.id2).points()[1]) {
|
|
|
|
if (stage.findOne("#" + logique.id1).points()[1] > stage.findOne("#" + logique.id2).points()[1]) {
|
|
|
|
|
|
|
|
|
|
|
|
if (getSwitchFromLine(logique.id1) != null && getSwitchFromLine(logique.id2) != null) {
|
|
|
|
if (getSwitchFromLine(logique.id1) != null && getSwitchFromLine(logique.id2) != null) {
|
|
|
|
let switch1 = getSwitchFromLine(logique.id1).id;
|
|
|
|
let switch1 = getSwitchFromLine(logique.id1).id;
|
|
|
|
let switch2 = getSwitchFromLine(logique.id2).id;
|
|
|
|
let switch2 = getSwitchFromLine(logique.id2).id;
|
|
|
@ -232,9 +233,33 @@ function checkEntreCroisement(logiqueId) {
|
|
|
|
logique.id2 = null;
|
|
|
|
logique.id2 = null;
|
|
|
|
createLink(logique1, logique);
|
|
|
|
createLink(logique1, logique);
|
|
|
|
createLink(logique2, logique);
|
|
|
|
createLink(logique2, logique);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (getSwitchFromLine(logique.id1) != null && getLogiqueFromLine(logique.id2) != null) {
|
|
|
|
|
|
|
|
let logique1 = getLogiqueFromLine(logique.id2);
|
|
|
|
|
|
|
|
let switch1 = getSwitchFromLine(logique.id1).id;
|
|
|
|
|
|
|
|
removeLine(logique.id1);
|
|
|
|
|
|
|
|
removeLine(logique.id2);
|
|
|
|
|
|
|
|
logique.id1 = null;
|
|
|
|
|
|
|
|
logique.id2 = null;
|
|
|
|
|
|
|
|
createLink(logique1, logique);
|
|
|
|
|
|
|
|
createLink(stage.findOne("#" + switch1), logique);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (getLogiqueFromLine(logique.id1) != null && getSwitchFromLine(logique.id2) != null) {
|
|
|
|
|
|
|
|
let logique1 = getLogiqueFromLine(logique.id1);
|
|
|
|
|
|
|
|
let switch1 = getSwitchFromLine(logique.id2).id;
|
|
|
|
|
|
|
|
removeLine(logique.id1);
|
|
|
|
|
|
|
|
removeLine(logique.id2);
|
|
|
|
|
|
|
|
logique.id1 = null;
|
|
|
|
|
|
|
|
logique.id2 = null;
|
|
|
|
|
|
|
|
createLink(stage.findOne("#" + switch1), logique);
|
|
|
|
|
|
|
|
createLink(logique1, logique);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
croisement = true;
|
|
|
|
croisement = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return croisement;
|
|
|
|
return croisement;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -360,13 +385,12 @@ function isLineCollapsing() {
|
|
|
|
switchsInfoCopy.forEach(function (element) {
|
|
|
|
switchsInfoCopy.forEach(function (element) {
|
|
|
|
element.id3.forEach(function (line) {
|
|
|
|
element.id3.forEach(function (line) {
|
|
|
|
if (Math.abs(element.y - stage.findOne("#" + line).points()[7]) > distance) {
|
|
|
|
if (Math.abs(element.y - stage.findOne("#" + line).points()[7]) > distance) {
|
|
|
|
console.log(element.name);
|
|
|
|
|
|
|
|
isCollapsing = true;
|
|
|
|
isCollapsing = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
return isCollapsing;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function getRandomArbitrary(min, max) {
|
|
|
|
function getRandomArbitrary(min, max) {
|
|
|
@ -408,7 +432,7 @@ function checkIfEnd() {
|
|
|
|
return ter;
|
|
|
|
return ter;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function checkEnd() {
|
|
|
|
function checkEnd(mode) {
|
|
|
|
let ter = true;
|
|
|
|
let ter = true;
|
|
|
|
endLines.forEach(function (element) {
|
|
|
|
endLines.forEach(function (element) {
|
|
|
|
if (stage.findOne("#line" + element).stroke() == colorLineInnactive) {
|
|
|
|
if (stage.findOne("#line" + element).stroke() == colorLineInnactive) {
|
|
|
@ -417,11 +441,11 @@ function checkEnd() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
if (ter && !isTuto) {
|
|
|
|
if (ter && !isTuto) {
|
|
|
|
setTimeout(() => { success(); }, 100);
|
|
|
|
setTimeout(() => { success(mode); }, 100);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function success() {
|
|
|
|
function success(mode) {
|
|
|
|
timeTot = timeTot + timer.getTimeValues().seconds;
|
|
|
|
timeTot = timeTot + timer.getTimeValues().seconds;
|
|
|
|
timer.stop();
|
|
|
|
timer.stop();
|
|
|
|
stage.findOne("#end").fill("yellow");
|
|
|
|
stage.findOne("#end").fill("yellow");
|
|
|
@ -429,6 +453,7 @@ function success() {
|
|
|
|
if (successPanel) {
|
|
|
|
if (successPanel) {
|
|
|
|
openModal("success");
|
|
|
|
openModal("success");
|
|
|
|
document.querySelector("#click_number").innerHTML = click;
|
|
|
|
document.querySelector("#click_number").innerHTML = click;
|
|
|
|
|
|
|
|
document.querySelector("#next_level_button").onclick = function () { closeModal('success'); nextLevel(mode); }
|
|
|
|
var previewStage = new Konva.Stage({
|
|
|
|
var previewStage = new Konva.Stage({
|
|
|
|
container: 'show_stage',
|
|
|
|
container: 'show_stage',
|
|
|
|
width: window.innerWidth / 1.5,
|
|
|
|
width: window.innerWidth / 1.5,
|
|
|
@ -440,7 +465,7 @@ function success() {
|
|
|
|
previewStage.add(previewLayer);
|
|
|
|
previewStage.add(previewLayer);
|
|
|
|
previewLayer.batchDraw();
|
|
|
|
previewLayer.batchDraw();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
setTimeout(() => { nextLevel(); }, 1000);
|
|
|
|
setTimeout(() => { nextLevel(mode); }, 1000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -449,9 +474,13 @@ function successCheck() {
|
|
|
|
else successPanel = false;
|
|
|
|
else successPanel = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function nextLevel() {
|
|
|
|
function nextLevel(mode) {
|
|
|
|
niveauActuel++;
|
|
|
|
niveauActuel++;
|
|
|
|
|
|
|
|
if (mode != undefined && mode != null && mode === "tuto") {
|
|
|
|
|
|
|
|
launchTuto();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
launchGameOne();
|
|
|
|
launchGameOne();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function calculNombreSwitch() {
|
|
|
|
function calculNombreSwitch() {
|
|
|
@ -577,13 +606,19 @@ function modePerso() {
|
|
|
|
showDiv(document.querySelector("#PersoSetupPage"));
|
|
|
|
showDiv(document.querySelector("#PersoSetupPage"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function playNormal() {
|
|
|
|
function playNormal() {
|
|
|
|
|
|
|
|
|
|
|
|
hideDiv(document.querySelector("#levelSelectionPage"));
|
|
|
|
hideDiv(document.querySelector("#levelSelectionPage"));
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
niveauActuel = 1;
|
|
|
|
niveauActuel = 1;
|
|
|
|
timeTot = 0;
|
|
|
|
timeTot = 0;
|
|
|
|
launchGameOne();
|
|
|
|
launchGameOne();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function modeTuto() {
|
|
|
|
|
|
|
|
hideDiv(document.querySelector("#levelSelectionPage"));
|
|
|
|
|
|
|
|
showDiv(document.querySelector("#playPage"));
|
|
|
|
|
|
|
|
niveauActuel = 1;
|
|
|
|
|
|
|
|
timeTot = 0;
|
|
|
|
|
|
|
|
launchTuto();
|
|
|
|
|
|
|
|
}
|
|
|
|
function wait(mode, btn) {
|
|
|
|
function wait(mode, btn) {
|
|
|
|
var time = 300;
|
|
|
|
var time = 300;
|
|
|
|
spin(btn);
|
|
|
|
spin(btn);
|
|
|
@ -594,6 +629,9 @@ function wait(mode, btn) {
|
|
|
|
case "perso":
|
|
|
|
case "perso":
|
|
|
|
setTimeout(modePerso, time);
|
|
|
|
setTimeout(modePerso, time);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "tuto":
|
|
|
|
|
|
|
|
setTimeout(modeTuto, time);
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -654,6 +692,13 @@ function launchGameOne() {
|
|
|
|
resetAllTabs(false);
|
|
|
|
resetAllTabs(false);
|
|
|
|
gameOne();
|
|
|
|
gameOne();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function launchTuto() {
|
|
|
|
|
|
|
|
document.querySelector(".niveau").innerHTML = niveauActuel;
|
|
|
|
|
|
|
|
timer.stop();
|
|
|
|
|
|
|
|
timer.reset();
|
|
|
|
|
|
|
|
resetAllTabs(false);
|
|
|
|
|
|
|
|
tuto();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function clearArray(arr) {
|
|
|
|
function clearArray(arr) {
|
|
|
|
while (arr.length > 0) {
|
|
|
|
while (arr.length > 0) {
|
|
|
|