Added StartSite

This commit is contained in:
silas
2018-09-23 21:02:06 +02:00
parent 3247c7e9fc
commit b881242a9b
14 changed files with 281 additions and 370 deletions

View File

@@ -2643,7 +2643,7 @@ class MyDb {
transactionMode = "read";
}
this.queryPromise.then(function () {
return this.queryPromise.then(function () {
let res = null;
try {
res = myDb._conn.result.transaction(name, transactionMode);
@@ -2661,7 +2661,7 @@ class MyDb {
callback = transactionMode;
transactionMode = "readonly";
}
this.openTransaction(name, transactionMode, function (t) {
return this.openTransaction(name, transactionMode, function (t) {
callback(t.objectStore(name));
});
}
@@ -2706,7 +2706,7 @@ class MyDb {
load(key, objectStore) {
let self = this;
return new Promise(function (resolve) {
return new Promise( (resolve, reject) => {
self.openStore(objectStore, function (store) {
let request = store.get(key);
request.onsuccess = function (e) {
@@ -2719,6 +2719,9 @@ class MyDb {
"event": e
}
};
}).catch(e => {
console.warn(e);
reject(e);
});
});
}
@@ -2726,7 +2729,7 @@ class MyDb {
loadAll(objectStore, query, count)
{
let self = this;
return new Promise(function (resolve) {
return new Promise((resolve, reject) => {
self.openStore(objectStore, function (store) {
let request = store.getAll(query, count);
request.onsuccess = function (e) {
@@ -2739,6 +2742,9 @@ class MyDb {
"event": e
}
};
}).catch(e => {
console.warn(e);
reject(e);
});
});
}
@@ -4939,6 +4945,11 @@ class ParentSegment extends Segment {
applyRotations(rotations) {
this.rotation = rotations[0];
if (isNaN(this.rotation)){
this.rotation = 0;
}
rotations.splice(0, 1);
for (let i = 0, n = this.children.length; i < n; i++) {
rotations = this.children[i].applyRotations(rotations);
@@ -5700,6 +5711,7 @@ class LevelSite extends WordRotatorBaseSite {
const db = WordRotatorDb.getInstance();
const levelJson = await db.loadLevel(currentLevelInfo["id"]);
if (levelJson === null) {
return this.nextLevel();
}
@@ -5838,8 +5850,10 @@ class LevelSite extends WordRotatorBaseSite {
}
this.wonParams.coinCounterTimer = setTimeout(() => {
this.coinAction.setTitle(coinsBefore++);
this.coinAction.redraw();
if (!this.wonParams.aborted) {
this.coinAction.setTitle(++coinsBefore);
this.coinAction.redraw();
}
}, timeout / 2);
}
//Always do the next promise for garbage collection
@@ -5852,9 +5866,6 @@ class LevelSite extends WordRotatorBaseSite {
this.continueButtonScaler();
this.levelScaler();
// coinPromise.then(() => {
// continueButton.fadeIn();
// });
await savePromise;
}
catch (e) {
@@ -5892,6 +5903,19 @@ class LevelSite extends WordRotatorBaseSite {
}
}
class MainMenuLevel extends FourWordsLevel{
constructor(templateContainer) {
super(templateContainer, 4);
}
saveAsCurrentLevel() {
}
checkHasWon(delayPromise) {
}
}
class MenuSite extends WordRotatorBaseSite {
constructor(siteManager) {
super(siteManager, "html/application/menu.html");
@@ -5902,16 +5926,46 @@ class MenuSite extends WordRotatorBaseSite {
async onFirstStart() {
super.onFirstStart();
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
let parentSegmentTemplate = this.findBy("#segment-parent-template");
let rowSegmentTemplate = this.findBy("#segment-row-template");
let triangleTemplate = this.findBy("#segment-triangle-template");
leafSegmentTemplate.id = null;
parentSegmentTemplate.id = null;
rowSegmentTemplate.id = null;
triangleTemplate.id = null;
leafSegmentTemplate.remove();
parentSegmentTemplate.remove();
rowSegmentTemplate.remove();
triangleTemplate.remove();
let templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
let level = new MainMenuLevel(templateContainer);
level.setWords(["WORD", "ROTA", "TORW", "ORDR"]);
level.createSegments();
level.getWonPromise().then(() => {
console.log("won!");
});
let segment = level.getRootSegment();
segment._updateElement();
let levelSegment = this.findBy("#level");
levelSegment.removeAllChildren().appendChild(segment.getElement());
let playButton = this.findBy("#play-button");
playButton.addEventListener("click", () => {
this.startSite(LevelSite);
});
this.listener = async () => {
let levelNumber = this.findBy("#level-number");
levelNumber.innerText = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
let levelSegment = this.findBy("#level");
let scaleHelper = new ScaleHelper();
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, 8, null, false);
@@ -5919,12 +5973,24 @@ class MenuSite extends WordRotatorBaseSite {
playButton.style.width = levelStyle.getPropertyValue("width");
scaleHelper.scaleToFull(playButton.children[0], playButton, null, null, null, null ,null ,false);
await scaleHelper.scaleTo(0.4, levelNumber.parentElement, levelNumber.parentElement.parentElement, null, null, null, 1 ,null ,false);
await scaleHelper.scaleTo(0.15, levelNumber.parentElement, levelNumber.parentElement.parentElement, null, null, null, 10 ,null ,false);
scaleHelper.scaleToFull(levelNumber, levelNumber.parentElement, false, false, 8, null, null, false);
};
this.listener();
window.addEventListener("resize", this.listener);
let rotationsSegments = level.getRotatableSegments();
let randomRotationFunction = () => {
let timeout = Math.random()*6000+1500;
setTimeout(() => {
let index = Math.floor(Math.random()*rotationsSegments.length);
rotationsSegments[index].rotate();
randomRotationFunction();
},timeout);
};
randomRotationFunction();
}
onDestroy() {