File indexing completed on 2024-04-28 15:07:47

0001 /* GCompris - findit.js
0002  *
0003  * SPDX-FileCopyrightText: 2015 Bruno Coudoin
0004  *
0005  *   SPDX-License-Identifier: GPL-3.0-or-later
0006  */
0007 
0008 .pragma library
0009 .import QtQuick 2.12 as Quick
0010 .import "qrc:/gcompris/src/core/core.js" as Core
0011 
0012 var url = "qrc:/gcompris/src/activities/colors/resource/"
0013 
0014 var numberOfLevel
0015 var items
0016 var dataset
0017 
0018 var currentQuestion
0019 
0020 var hasWon
0021 
0022 var tempModel = []
0023 
0024 function start(items_, dataset_, mode_) {
0025     if (mode_ === "Colors")
0026         Core.checkForVoices(items_.activityPage);
0027     items = items_
0028     dataset = dataset_.get()
0029     numberOfLevel = dataset.length
0030     items.currentLevel = Core.getInitialLevel(numberOfLevel)
0031     items.firstQuestion = true
0032     items.audioOk = false
0033     items.score.currentSubLevel = 0
0034     initLevel()
0035 }
0036 
0037 function stop() {
0038 }
0039 
0040 function initLevel() {
0041     items.modelCopied = false
0042     tempModel = []
0043     items.containerModel.clear()
0044     currentQuestion = 0
0045     items.objectCount = dataset[items.currentLevel].length
0046     dataset[items.currentLevel] = Core.shuffle(dataset[items.currentLevel])
0047 
0048     for(var i = 0;  i < dataset[items.currentLevel].length; ++i) {
0049         tempModel.push(dataset[items.currentLevel][i])
0050     }
0051 
0052     items.score.numberOfSubLevels = dataset[items.currentLevel].length
0053 
0054     // Shuffle again not to ask the question in the model order
0055     dataset[items.currentLevel] = Core.shuffle(dataset[items.currentLevel])
0056     hasWon = false
0057     items.initAnim.restart()
0058     items.objectSelected = false
0059 }
0060 
0061 function tempModelToContainer() {
0062     for(var i = 0;  i < tempModel.length; ++i) {
0063         items.containerModel.append(tempModel[i])
0064     }
0065     items.modelCopied = true
0066 }
0067 
0068 function nextQuestion() {
0069     if(dataset[items.currentLevel].length <= currentQuestion + 1) {
0070         items.fadeOutAnim.restart()
0071         items.bonus.good("flower")
0072         hasWon = true
0073     } else {
0074         currentQuestion++
0075         items.nextAnim.restart()
0076     }
0077 }
0078 
0079 function nextLevel() {
0080     items.score.stopWinAnimation()
0081     items.score.currentSubLevel = 0
0082     items.currentLevel = Core.getNextLevel(items.currentLevel, numberOfLevel);
0083     initLevel();
0084 }
0085 
0086 function previousLevel() {
0087     items.score.stopWinAnimation()
0088     items.score.currentSubLevel = 0
0089     items.currentLevel = Core.getPreviousLevel(items.currentLevel, numberOfLevel);
0090     initLevel();
0091 }
0092 
0093 function getCurrentTextQuestion() {
0094     return dataset[items.currentLevel][currentQuestion].text
0095 }
0096 
0097 function getCurrentAudioQuestion() {
0098     return dataset[items.currentLevel][currentQuestion].audio
0099 }