diff --git a/public/html/application/level.html b/public/html/application/level.html
index 533f394..b259b75 100644
--- a/public/html/application/level.html
+++ b/public/html/application/level.html
@@ -1 +1 @@
-
diff --git a/src/module/Application/pwa/js/site/LevelSite.js b/src/module/Application/pwa/js/site/LevelSite.js
index a9ae631..ee485cb 100644
--- a/src/module/Application/pwa/js/site/LevelSite.js
+++ b/src/module/Application/pwa/js/site/LevelSite.js
@@ -35,14 +35,17 @@ export class LevelSite extends AbstractSite {
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 self = this;
let continueButton = this.findBy("#continue-button");
@@ -57,7 +60,7 @@ export class LevelSite extends AbstractSite {
scaleHelper.scaleToFull(wonText, wonText.parentElement);
this.levelCounterAction.setTitle(this.levelCounter);
- this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate);
+ this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
this.nextLevel();
}
@@ -67,9 +70,8 @@ export class LevelSite extends AbstractSite {
const db = WordRotatorDb.getInstance();
// const nextLevelJson = await db.loadNextLevel([20,40,60]);
- const nextLevelJson = await db.loadNextLevel([40]);
- if (nextLevelJson === null)
- {
+ const nextLevelJson = await db.loadNextLevel([100]);
+ if (nextLevelJson === null) {
this.startSite(EndSite);
return;
}
diff --git a/src/module/Application/pwa/js/wordrotator/Level/LevelHelper.js b/src/module/Application/pwa/js/wordrotator/Level/LevelHelper.js
index 2f0f419..d8967c1 100644
--- a/src/module/Application/pwa/js/wordrotator/Level/LevelHelper.js
+++ b/src/module/Application/pwa/js/wordrotator/Level/LevelHelper.js
@@ -1,6 +1,7 @@
import {SimpleLevel} from "./SimpleLevel";
import {RowLevel8} from "./RowLevel8";
import {RowLevel10} from "./RowLevel10";
+import {ThreeWordsRowLevel8} from "./ThreeWordsRowLevel8";
export class LevelHelper {
static setLevelType(typeId, level) {
@@ -31,4 +32,5 @@ LevelHelper.types = {
20: SimpleLevel,
40: RowLevel8,
60: RowLevel10,
+ 100: ThreeWordsRowLevel8,
};
\ No newline at end of file
diff --git a/src/module/Application/pwa/js/wordrotator/Level/SixWordsRowLevel.js b/src/module/Application/pwa/js/wordrotator/Level/SixWordsRowLevel.js
new file mode 100644
index 0000000..32f7851
--- /dev/null
+++ b/src/module/Application/pwa/js/wordrotator/Level/SixWordsRowLevel.js
@@ -0,0 +1,61 @@
+import {RowSegment} from "../Segment/RowSegment";
+import {Level} from "./Level";
+import {ParentSegment} from "../Segment/ParentSegment";
+import {TriangleSegment} from "../Segment/TriangleSegment";
+
+export class SixWordsRowLevel extends Level {
+
+ constructor(templateContainer, wordLength) {
+ super(templateContainer);
+ this.wordLength = wordLength;
+ }
+
+ createSegments() {
+ if (this.words.length >= 6 &&
+ this.words[0].length >= this.wordLength &&
+ this.words[1].length >= this.wordLength &&
+ this.words[2].length >= this.wordLength &&
+ this.words[3].length >= this.wordLength &&
+ this.words[4].length >= this.wordLength &&
+ this.words[5].length >= this.wordLength
+ ) {
+ let leafsWords = [];
+ leafsWords[0] = Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());
+ leafsWords[1] = Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());
+ leafsWords[2] = Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());
+ leafsWords[3] = Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());
+ leafsWords[4] = Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());
+ leafsWords[5] = Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());
+
+ let leafes = [];
+
+ let rootSegment = new RowSegment(this.templateContainer.copyRowTemplate());
+ for (let i = 0, n = this.wordLength / 2; i < n; i++) {
+ let parent = new ParentSegment(this.templateContainer.copyParentTemplate());
+ let triangle = new TriangleSegment(this.templateContainer.copyTriangleTemplate());
+ if (i % 2 === 0) {
+ parent.addChild(leafsWordOne[2 * i]);
+ parent.addChild(leafsWordOne[2 * i + 1]);
+ parent.addChild(leafsWordTwo[2 * i]);
+ parent.addChild(leafsWordTwo[2 * i + 1]);
+
+ triangle.addChild(parent);
+ triangle.addChild(leafsWordThree[2 * i]);
+ triangle.addChild(leafsWordThree[2 * i + 1]);
+ }
+ else {
+ parent.addChild(leafsWordTwo[2 * i]);
+ parent.addChild(leafsWordTwo[2 * i + 1]);
+ parent.addChild(leafsWordThree[2 * i]);
+ parent.addChild(leafsWordThree[2 * i + 1]);
+
+ triangle.addChild(leafsWordOne[2 * i]);
+ triangle.addChild(leafsWordOne[2 * i + 1]);
+ triangle.addChild(parent);
+ }
+ rootSegment.addChild(triangle);
+ }
+ this.setRootSegment(rootSegment)
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/module/Application/pwa/js/wordrotator/Level/ThreeWordsRowLevel8.js b/src/module/Application/pwa/js/wordrotator/Level/ThreeWordsRowLevel8.js
new file mode 100644
index 0000000..59171a9
--- /dev/null
+++ b/src/module/Application/pwa/js/wordrotator/Level/ThreeWordsRowLevel8.js
@@ -0,0 +1,7 @@
+import {SixWordsRowLevel} from "./SixWordsRowLevel";
+
+export class ThreeWordsRowLevel8 extends SixWordsRowLevel {
+ constructor(templateContainer) {
+ super(templateContainer, 8);
+ }
+}
\ No newline at end of file
diff --git a/src/module/Application/pwa/js/wordrotator/Segment/TemplateContainer.js b/src/module/Application/pwa/js/wordrotator/Segment/TemplateContainer.js
index fb33660..6276f14 100644
--- a/src/module/Application/pwa/js/wordrotator/Segment/TemplateContainer.js
+++ b/src/module/Application/pwa/js/wordrotator/Segment/TemplateContainer.js
@@ -1,10 +1,11 @@
import {Helper} from "../../../../../../js/lib/pwa-lib";
export class TemplateContainer{
- constructor(leafTemplate, parentTemplate, rowTemplate){
+ constructor(leafTemplate, parentTemplate, rowTemplate, triangleTemplate){
this.leafTemplate = leafTemplate;
this.parentTemplate = parentTemplate;
this.rowTemplate = rowTemplate;
+ this.triangleTemplate = triangleTemplate;
}
copyLeafTemplate()
@@ -21,4 +22,9 @@ export class TemplateContainer{
{
return Helper.cloneNode(this.rowTemplate);
}
+
+ copyTriangleTemplate()
+ {
+ return Helper.cloneNode(this.triangleTemplate);
+ }
}
\ No newline at end of file
diff --git a/src/module/Application/pwa/js/wordrotator/Segment/TriangleSegment.js b/src/module/Application/pwa/js/wordrotator/Segment/TriangleSegment.js
new file mode 100644
index 0000000..9bc1435
--- /dev/null
+++ b/src/module/Application/pwa/js/wordrotator/Segment/TriangleSegment.js
@@ -0,0 +1,5 @@
+import {RowSegment} from "./RowSegment";
+
+export class TriangleSegment extends RowSegment{
+
+}
\ No newline at end of file