src/app/models/scenario-furet.ts
constructor(cabri: CabriDataService, accountService: AccountService, globalService: GlobalService, page: any, cd: ChangeDetectorRef, ttsService: any)
|
| populateScenario |
populateScenario(randomize: boolean)
|
|
Creates feedbacks for calcul mental on top of general feedbacks
Returns:
void
|
| updateVariables |
updateVariables()
|
|
Returns:
void
|
| playSoundWithAward |
playSoundWithAward(award: AwardsType, success: boolean)
|
|
Returns:
void
|
| goodResponseWithAwardAfterRetry |
goodResponseWithAwardAfterRetry(answerStatus: AnswerStatus, responseTimeInSeconds: number, award: string)
|
|
Bonne réponse après une première erreur + ajout de l'award au starboard + starboard trigger en flat
Returns:
void
|
| goodResponseWithAward |
goodResponseWithAward(answerStatus: AnswerStatus, responseTimeInSeconds: number, award: string)
|
|
Affichage récompense (flat / holoMode) + message relatif
Returns:
void
|
| badResponseRetry |
badResponseRetry(answerStatus: AnswerStatus, responseTimeInSeconds: number)
|
|
Mauvaise réponse : réessaye !
Returns:
void
|
| badResponseMoonWithResult |
badResponseMoonWithResult(answerStatus: AnswerStatus, responseTimeInSeconds: number, award: string)
|
|
Mauvaise réponse deuxième tentative. Affichage du bon résultat
Returns:
void
|
| badResponseMoonWithResultNextQ |
badResponseMoonWithResultNextQ(answerStatus: AnswerStatus, responseTimeInSeconds: number, award: string)
|
|
Mauvaise réponse deuxième tentative. Affichage du bon résultat. Question suivante.
Returns:
void
|
| playIntroShort |
playIntroShort()
|
|
Introduction - Long version
Returns:
void
|
| restartActivity |
restartActivity()
|
|
Recommencer l’activité
Returns:
void
|
| nextPlayerInit |
nextPlayerInit()
|
|
Lancement de l’activité / 1er joueur
Returns:
void
|
| nextPlayerSwitch |
nextPlayerSwitch()
|
|
Joueur suivant.
Returns:
void
|
| addSimple |
addSimple()
|
|
Consigne addition simple
Returns:
void
|
| substractSimple |
substractSimple()
|
|
Consigne soustraction simple 2
Returns:
void
|
| continueAddSolo |
continueAddSolo()
|
|
Question suivante (addition)
Returns:
void
|
| continueSubstractSolo |
continueSubstractSolo()
|
|
Question suivante (soustraction)
Returns:
void
|
| countAddSimple |
countAddSimple()
|
|
Consigne addition simple 2
Returns:
void
|
| countSubstractSimple |
countSubstractSimple()
|
|
Consigne soustraction simple
Returns:
void
|
| Public page |
page: |
import { PlayTTSService } from "src/app/services/play-tts.service";
import { ChangeDetectorRef } from "@angular/core";
import { JeudufuretPage } from "../page/jeudufuret/jeudufuret.page";
import { AccountService } from "../services/account.service";
import { CabriDataService } from "../services/cabri-data.service";
import { GlobalService } from "../services/global.service";
import { ScenarioPhrase } from "./scenario-phrase";
import { ScenarioCabri } from "./scenario-cabri";
import { AnswerAverage, AnswerNeedsHelp, AnswerSpeed, AnswerStatus } from "./activity-answer";
import { AppUtils } from "../app-utils";
import { AwardsType } from "./enums/awards";
export class ScenarioFuret extends ScenarioCabri {
public page: JeudufuretPage;
constructor(
cabri: CabriDataService,
accountService: AccountService,
globalService: GlobalService,
page: any,
cd: ChangeDetectorRef,
ttsService: PlayTTSService
) {
super(cabri, accountService, globalService, page, cd, ttsService);
}
/**
* Creates feedbacks for calcul mental on top of general feedbacks
*/
populateScenario(randomize?: boolean) {
super.populateScenario(randomize);
// SUCCESS 1ST TRY
// SLOW
this.addFeedbacks(
{ status: AnswerStatus.VALID1ST, speed: AnswerSpeed.SLOW },
2,
[
$localize`Oui ! Tu as bien calculé ton saut !`,
$localize`Un petit pas pour toi, un grand pas pour ton apprentissage !`,
$localize`Youpi, tu as trouvé la solution !`
],
2
);
// NORMAL
this.addFeedbacks({ success: true }, 2, [
$localize`Bravo #playerName ! Tu as gagné une #award !`,
$localize`Et encore une #award ! Youpi !`,
$localize`Quelle giga-réponse ! Bravo`,
$localize`Hop ! Une #award ! Super !`,
$localize`Oui #playerName, bien joué !`,
$localize`Youpi ! Une #award !`,
$localize`Une #award de plus au tableau ! Super !`,
$localize`Oui ! Bravo #playerName !`,
$localize`Et hop ! Une #award en plus !`,
$localize`Méga-boulonique cette réponse !`,
$localize`Youpi ! Une #award de gagnée !`,
$localize`Et une #award en plus pour ta collection !`,
$localize`Oui ! Une nouvelle constellation en vue !`,
$localize`Tiens ! Voila une #award pour compléter ta collection !`
]);
// FAST
this.addFeedbacks({ status: AnswerStatus.VALID1ST, speed: AnswerSpeed.FAST }, 2, [
$localize`Wahou ! Tu réfléchis plus vite que la lumière !`,
$localize`Aussi rapide qu’une étoile filante !`,
$localize`Lumino-fantastique !`,
$localize`Supra-luminique !`,
$localize`Vitesse lumière !`,
$localize`Quel saut #playerName !`,
$localize`Wahou ! Toutes les planètes s’alignent sur ton passage !`,
$localize`Tu réfléchis plus vite que la lumière !`,
$localize`Quelle maîtrise du comptage cosmique !`,
$localize`Magnifique saut !`,
$localize`Quelle cosmo-réponse ! Tu es supra-luminique !`,
$localize`Tu maîtrises les nombres à la perfection #playerName !`,
$localize`Par Toutatis ! Quelle maîtrise !`
]);
// PROGRESSION ABOVE AVERAGE
this.addFeedbacks(
{ status: AnswerStatus.VALID1ST, progressionAverage: AnswerAverage.ABOVE },
2,
[$localize`Je suis impressionnée ! Tu enchaînes les planètes à la perfection !`],
2
);
// PROGRESSION BELOW AVERAGE
// this.addFeedbacks({ status: AnswerStatus.VALID1ST, progressionAverage: AnswerAverage.BELOW }, 2, [
// $localize`TODO?`
// ], 2);
// PROGRESSION NO ERRORS TILL THEN
// this.addFeedbacks({ status: AnswerStatus.VALID1ST, progressionExtreme: AnswerExtreme.ALLGOOD }, 3, [
// $localize`TODO?`
// ], 2);
// PROGRESSION ONLY ERRORS TILL THEN
// this.addFeedbacks({ status: AnswerStatus.VALID1ST, progressionExtreme: AnswerExtreme.ALLBAD }, 3, [
// $localize`TODO?`
// ], 2);
// PROGRESSION NO ERRORS TILL THEN - FAST ANSWER
// this.addFeedbacks({ status: AnswerStatus.VALID1ST, speed: AnswerSpeed.FAST, progressionExtreme: AnswerExtreme.ALLGOOD }, 4, [
// $localize`TODO?`
// ], 2);
// SUCCESS 2ND TRY
this.addFeedbacks(
{ status: AnswerStatus.VALID2ND },
2,
[$localize`Bravo #playerName ! Tu as remis le cap sur la bonne planète !`],
2
);
// this.addFeedbacks({ status: AnswerStatus.VALID2ND, progressionExtreme: AnswerExtreme.ALLBAD }, 3, [
// $localize`TODO?`
// ], 2);
// this.addFeedbacks({ status: AnswerStatus.VALID2ND, progressionExtreme: AnswerExtreme.ALLGOOD }, 3, [
// $localize`TODO?`
// ], 2);
// ERRORS
// FIRST ERROR - retry without help
this.addFeedbacks(
{ status: AnswerStatus.ERROR1ST, needsHelp: AnswerNeedsHelp.NO },
2,
[
$localize`Oups ! La soucoupe bug ! Essaye encore !`,
$localize`Oups, ce n’est pas la bonne réponse... Essaye encore !`,
$localize`Tu t’es trompé mais ce n’est pas grave, c’est comme ça qu’on apprend ! Essaye encore !`,
$localize`Ouloulou ! Ce n’est pas ça... Essaye encore !`,
$localize`Oups ! Ce n’est pas ça. Essayons à nouveau !`,
$localize`Oups... J’aimerais pouvoir te dire que tu as trouvé, mais ce n’est pas ça !`,
$localize`Oups ! Ce n’est pas ça ! Essaye encore une fois !`,
$localize`Tu y es presque, je te laisse une chance de te corriger !`,
$localize`Sauve qui peut ! Le vaisseau part à la dérive, reprenons vite la barre !`,
$localize`Appel à la base ! Il y a des turbulences sur le chemin ! Reprenons le cap !`,
$localize`Oh non... Nous voilà pris dans une tempête inter-sidérale ! Il faut se rattraper !`
],
2
);
// SECOND ERROR - failed
this.addFeedbacks(
{ status: AnswerStatus.ERROR2ND },
2,
[
$localize`Tu y étais presque ! Pas facile ce saut !`,
$localize`Ce n'est pas ça... Il faut dire qu’elle est difficile celle-là !`,
$localize`Non... Pas facile !`,
$localize`Tonnerre de Brest ! Ce n’est pas ça... Je vais te montrer !`,
$localize`Attention, tu as visé la mauvaise planète !`
],
2
);
// TODO => special class for not answer phrases using same mechanism :
// this.addFeedbacks({ status: FuretSpecial.VARIABLECHANGE }, 2, [
// $localize`Oh ! Attention les nombres ont changé !`,
// $localize`Oh ! Les nombres ont encore changé !`
// ], 2);
// console.error("feedbacks unshuffled = ", this.feedbacks);
if (randomize) {
AppUtils.shuffleArray(this.feedbacks);
// console.error("feedbacks shuffled = ", this.feedbacks);
}
}
async updateVariables() {
const speechSequence = [
new ScenarioPhrase([
$localize`Oh ! Attention les nombres ont changé !`,
$localize`Oh ! Les nombres ont changé !`,
$localize`Ah ! Les nombres ont changé !`
]).setRandomMode()
];
await this.runMathiaSpeech(speechSequence);
}
async playSoundWithAward(award: AwardsType, success?: boolean) {
let speechSequence;
if (award) {
this.page.showHideAward(2000, award);
this.page.updatePlayerAndTeamStarboards(award);
}
if (this.page.endOfActivity()) {
this.page.hideBubbleText = false;
speechSequence = [
new ScenarioPhrase([
$localize`Wahou ! Quelle expédition !`,
$localize`Quel voyage nous avons fait ensemble !`,
$localize`Oui ! Quelle expédition !`,
$localize`Bravo ! Quel voyage !`,
$localize`Quel voyage super-numérique ! Bien joué !`,
$localize`Quel cosmo-voyage !`
])
.setRandomMode()
.showAward(award)
];
await this.runMathiaSpeech(speechSequence);
} else {
this.page.hideBubbleText = true;
let awardSoundPromise;
if (!award || (award === "moon" && !success)) {
awardSoundPromise = this.page.audioService.playAwardMoonSound();
} else {
awardSoundPromise = this.page.audioService.playStarSound();
}
if (award) {
speechSequence = [new ScenarioPhrase(" ", async() => {
await awardSoundPromise;
}).showAward(award)];
} else {
this.page.hideBubbleText = false;
speechSequence = [new ScenarioPhrase("Essaye encore !", async() => {
})];
}
await this.runMathiaSpeech(speechSequence);
this.page.hideBubbleText = false;
}
}
/**
* Bonne réponse après une première erreur + ajout de l'award au starboard + starboard trigger en flat
*/
async goodResponseWithAwardAfterRetry(answerStatus: AnswerStatus, responseTimeInSeconds: number, award: string) {
// if (this.cabriService.holoMode === "0") {
// ?
this.page.showHideAward(2000, award);
// }
const phrase = this.getContextualFeedbackPhrase(answerStatus, responseTimeInSeconds, award, 20, 4, 5, 3);
this.page.updatePlayerAndTeamStarboards(award);
let speechSequence = [new ScenarioPhrase([phrase]).showAward(award)];
if (this.page.endOfActivity()) {
speechSequence = [
new ScenarioPhrase([
$localize`Oui ! Quel rattrapage pour finir l’expédition !`,
$localize`Bravo ! Magnifique rattrapage pour finir l’expédition !`
])
.setRandomMode()
.showAward(award)
];
}
await this.runMathiaSpeech(speechSequence);
}
/**
* Affichage récompense (flat / holoMode) + message relatif
*/
async goodResponseWithAward(answerStatus: AnswerStatus, responseTimeInSeconds: number, award: string) {
let speechSequence: any;
this.page.showHideAward(2000, award);
const phrase = this.getContextualFeedbackPhrase(answerStatus, responseTimeInSeconds, award, 20, 4, 5, 3);
this.page.updatePlayerAndTeamStarboards(award);
speechSequence = [new ScenarioPhrase([phrase]).setRandomMode().showAward(award)];
if (this.page.endOfActivity()) {
speechSequence = [
new ScenarioPhrase([
$localize`Wahou ! Quelle expédition !`,
$localize`Quel voyage nous avons fait ensemble !`,
$localize`Oui ! Quelle expédition !`,
$localize`Bravo ! Quel voyage !`,
$localize`Quel voyage super-numérique ! Bien joué !`,
$localize`Quel cosmo-voyage !`
])
.setRandomMode()
.showAward(award)
];
}
await this.runMathiaSpeech(speechSequence);
}
/**
* Mauvaise réponse : réessaye !
*/
async badResponseRetry(answerStatus: AnswerStatus, responseTimeInSeconds: number) {
const phrase = this.getContextualFeedbackPhrase(answerStatus, responseTimeInSeconds, null, 20, 4, 5, 3);
const speechSequence = [new ScenarioPhrase([phrase]).setRandomMode()];
await this.runMathiaSpeech(speechSequence);
}
/**
* Mauvaise réponse deuxième tentative. Affichage du bon résultat
*/
async badResponseMoonWithResult(answerStatus: AnswerStatus, responseTimeInSeconds: number, award: string) {
const phrase = this.getContextualFeedbackPhrase(answerStatus, responseTimeInSeconds, award, 20, 4, 5, 3);
const opSign = Number(this.cabriService.currentActivity.currentVariables["v-cursor-op"]) === 1 ? "+" : "-";
// TTS need text not symbols
let opSignTTS = opSign.replace("−", $localize`:operationSign:moins`);
opSignTTS = opSignTTS.replace("-", $localize`:operationSign:moins`);
opSignTTS = opSignTTS.replace("+", $localize`:operationSign:plus`);
const endResult = this.page.goodResult.toString();
// TTS "une" -> "un":
let nb1TTS = this.cabriService.nb1.toString();
if (nb1TTS === "1") {
nb1TTS = nb1TTS.replace("1", $localize`:number:un`);
}
let nb2TTS = this.cabriService.nb2.toString();
if (nb2TTS === "1") {
nb2TTS = nb2TTS.replace("1", $localize`:number:un`);
}
let endResultTTS = endResult;
if (endResultTTS === "1") {
endResultTTS = endResultTTS.replace("1", $localize`:number:un`);
}
console.log("this.cabriService.nb1", this.cabriService.nb1);
console.log("opSign", opSign);
console.log("this.cabriService.nb2", this.cabriService.nb2);
console.log("endResult", endResult);
const moonResult: Array<any> = [
new ScenarioPhrase([phrase], async () => {
this.page.setInputResponse(this.page.goodResult.toString());
this.page.showInputResponse();
}).setRandomMode(),
new ScenarioPhrase(
[
$localize`Regarde, la bonne réponse était : ${this.cabriService.nb1} ${opSign} ${this.cabriService.nb2} égale ${endResult} !`
],
async () => {
await this.timeOut(3000);
this.page.showHideAward(2100, "moon");
await this.timeOut(500);
this.page.switchFuretAward(false);
this.page.updatePlayerAndTeamStarboards("moon");
},
[$localize`Regarde, la bonne réponse était: ${nb1TTS} ${opSignTTS} ${nb2TTS} égale ${endResultTTS}!`]
),
new ScenarioPhrase(
[$localize`Tu as quand même gagné une lune !`, $localize`Nous avons quand même gagné une lune !`],
async () => {
// await this.timeOut(1000);
}
).setRandomMode()
];
await this.runMathiaSpeech(moonResult);
}
/**
* Mauvaise réponse deuxième tentative. Affichage du bon résultat. Question suivante.
*/
async badResponseMoonWithResultNextQ(answerStatus: AnswerStatus, responseTimeInSeconds: number, award: string) {
const phrase = this.getContextualFeedbackPhrase(answerStatus, responseTimeInSeconds, award, 20, 4, 5, 3);
const opSign = Number(this.cabriService.currentActivity.currentVariables["v-cursor-op"]) === 1 ? "+" : "−";
// TTS need text not symbols
let opSignTTS = opSign.replace("−", $localize`:operationSign:moins`);
opSignTTS = opSignTTS.replace("-", $localize`:operationSign:moins`);
opSignTTS = opSignTTS.replace("+", $localize`:operationSign:plus`);
const endResult = this.page.goodResult.toString();
// TTS "une" -> "un":
let nb1TTS = this.cabriService.nb1.toString();
if (nb1TTS === "1") {
nb1TTS = nb1TTS.replace("1", $localize`:number:un`);
}
let nb2TTS = this.cabriService.nb2.toString();
if (nb2TTS === "1") {
nb2TTS = nb2TTS.replace("1", $localize`:number:un`);
}
let endResultTTS = endResult;
if (endResultTTS === "1") {
endResultTTS = endResultTTS.replace("1", $localize`:number:un`);
}
const moonResult = new Array();
if (this.page.sonicAward) {
moonResult.push(new ScenarioPhrase([" "], async () => {
await this.timeOut(500);
this.page.setInputResponse(this.page.goodResult.toString());
this.page.showInputResponse();
}).hideBubble());
} else {
moonResult.push(new ScenarioPhrase([phrase], async () => {
this.page.setInputResponse(this.page.goodResult.toString());
this.page.showInputResponse();
}).setRandomMode());
}
moonResult.push(new ScenarioPhrase(
[
$localize`Regarde, la bonne réponse était : ${this.cabriService.nb1} ${opSign} ${this.cabriService.nb2} égale ${endResult} !`
],
async () => {
await this.timeOut(2000);
this.page.showHideAward(3000, "moon");
setTimeout(() => {
this.page.switchFuretAward(false);
this.page.updatePlayerAndTeamStarboards("moon");
}, 1000);
},
[$localize`Regarde, la bonne réponse était: ${nb1TTS}, ${opSignTTS}, ${nb2TTS}, égale ${endResultTTS}!`]
));
moonResult.push(
new ScenarioPhrase(
[$localize`Tu as quand même gagné une lune !`, $localize`Nous avons quand même gagné une lune !`]).setRandomMode()
);
moonResult.push(
new ScenarioPhrase([
$localize`Passons à la prochaine planète !`,
$localize`Voyons si nous avons plus de chance avec la prochaine planète !`,
$localize`Essayons une autre planète !`,
$localize`Allez, cap sur la prochaine planète !`,
$localize`La prochaine planète va te donner la chance de te rattraper !`,
$localize`Reprenons la bonne trajectoire vers la planète suivante`,
$localize`Retournons à la barre, ce n’est pas fini !`,
$localize`C’est parti pour un nouveau bond !`,
$localize`Rectifions le cap avec la prochaine trajectoire !`,
$localize`Allons chercher une étoile sur la prochaine planète !`
], () => {
this.page.passCurrentQuestion();
}).setRandomMode()
)
this.page.readContinueAddPhrase = true;
await this.runMathiaSpeech(moonResult);
}
/**
* Introduction - Long version
*/
// async playIntro() {
// let firstMessage;
// let players: any = this.accountService.team.map(student => student.name);
// players = players.join(" ! ");
// // Verbs:
// let commencerContinuer;
// let reDécoller;
// let rePartons;
// let reVoir;
// let reDecollons;
// commencerContinuer = $localize`commencer`;
// reDécoller = $localize`décoller`;
// rePartons = $localize`partons`;
// reVoir = $localize`voir`;
// reDecollons = $localize`décollons`;
// // First message:
// // FIRSTIME:
// if (this.accountService.team.length > 1) {
// // team:
// firstMessage = [
// $localize`${players}:allPlayersNames: ! Bienvenue à bord !`,
// $localize`Salutations voyageurs ! C’est super boulonique de vous ${reVoir} ici !`
// ];
// } else if (this.accountService.team.length === 1) {
// firstMessage = [
// $localize`Bienvenue à bord ${this.page.currentUser.name}:playerName: !`,
// $localize`Salutations voyageur ! C’est super boulonique de te ${reVoir} ici !`
// ];
// }
// // SEQUENCE:
// if (this.accountService.team.length > 1) {
// // MULTI:
// let messageConsigne;
// if (this.page.operationMode === "1") {
// messageConsigne = $localize`Pour piloter, il faut ajouter ${this.page.pas} au nombre de la planète où se trouve la fusée.`;
// } else if (this.page.operationMode === "2") {
// messageConsigne = $localize`Pour piloter, il faut enlever ${this.page.pas} au nombre de la planète où se trouve la fusée.`;
// }
// const introTeam: Array<any> = [
// new ScenarioPhrase(firstMessage).setRandomMode(),
// new ScenarioPhrase([
// $localize`Prêts pour ${reDécoller} vers le jeu du furet intergalactique ?`,
// $localize`Attachez votre ceinture, nous ${rePartons} jouer au jeu du furet intergalactique !`,
// $localize`Tout le monde est prêt ? Parfait, ${reDecollons} vers le jeu du furet intergalactique !`,
// $localize`Vous êtes prêts ? Alors plein gaz sur le jeu du furet intergalactique !`
// ]).setRandomMode(),
// new ScenarioPhrase([
// $localize`Dans ce jeu, vous allez devoir piloter la fusée tous les ${this.accountService.team.length}:numberOfPlayers: pour explorer les planètes une par une !`
// ]),
// new ScenarioPhrase([$localize`Le but de notre expédition est simple : trouver des étoiles ou des lunes !`]),
// new ScenarioPhrase([$localize`Et surtout apprendre à compter !`], async () => {
// await this.timeOut(1000);
// }),
// new ScenarioPhrase([messageConsigne])
// ];
// await this.runMathiaSpeech(introTeam);
// // end intro team
// } else {
// // intro SOLO:
// let messageConsigne;
// if (this.page.operationMode === "1") {
// messageConsigne = $localize`Pour piloter, il faut ajouter ${this.page.pas} au nombre de la planète où se trouve la fusée.`;
// } else if (this.page.operationMode === "2") {
// messageConsigne = $localize`Pour piloter, il faut enlever ${this.page.pas} au nombre de la planète où se trouve la fusée.`;
// }
// const introSolo: Array<any> = [
// new ScenarioPhrase(firstMessage).setRandomMode(),
// new ScenarioPhrase([
// $localize`Attention au départ ! Nous ${reDecollons} vers le jeu du furet intergalactique !`,
// $localize`Attache ta ceinture, nous ${rePartons} jouer au jeu du furet intergalactique !`,
// $localize`Notre fusée est prête à ${reDécoller} vers le jeu du furet intergalactique ! On y va ?`
// ]).setRandomMode(),
// new ScenarioPhrase([$localize`Dans ce jeu, tu vas piloter la fusée pour explorer les planètes une par une !`]),
// new ScenarioPhrase([$localize`Le but de notre expédition est simple : trouver des étoiles ou des lunes !`]),
// new ScenarioPhrase([$localize`Et surtout apprendre à compter !`], async () => {
// await this.timeOut(1000);
// }),
// new ScenarioPhrase([messageConsigne]),
// new ScenarioPhrase([$localize`Attention !`]),
// new ScenarioPhrase("3... 2... 1..."),
// new ScenarioPhrase(
// [
// $localize`C’est parti !`,
// $localize`Décollage !`,
// $localize`Allumage des réacteurs !`,
// $localize`Vers l’infini et au-delà !`,
// $localize`Que la force soit avec toi !`
// ]
// ).setRandomMode()
// ];
// await this.runMathiaSpeech(introSolo);
// }
// }
/**
* Short version of play intro mentioning answer speed
*/
async playIntroShort() {
let introSequence: Array<any> ;
let messageConsigne;
const players: any = this.accountService.team.map(student => student.name).join(" ! ");
if (this.page.operationMode === "1") {
messageConsigne = $localize`Dans ce jeu, il faut ajouter ${this.page.pas} au nombre de la planète où se trouve la fusée.`;
} else if (this.page.operationMode === "2") {
messageConsigne = $localize`Dans ce jeu, il faut enlever ${this.page.pas} au nombre de la planète où se trouve la fusée.`;
}
if (this.page.currentTeam.length > 1) {
// MULTI:
introSequence = [
new ScenarioPhrase([
$localize`${players}:allPlayersNames: ! Bienvenue dans le Jeu du Furet !`
]).setRandomMode(),
new ScenarioPhrase(messageConsigne),
new ScenarioPhrase($localize`Plus vous répondrez vite, plus vous aurez de chances de gagner des étoiles-filantes !`)
];
// scenario multi continues in this.nextPlayerInit()
} else {
// SOLO:
introSequence = [
new ScenarioPhrase([
$localize`${this.page.currentUser.name}:playerName: ! Bienvenue dans le Jeu du Furet !`
]).setRandomMode(),
new ScenarioPhrase(messageConsigne),
new ScenarioPhrase($localize`Si tu répond vite , plus tu auras de chances de gagner des étoiles-filantes !`),
new ScenarioPhrase("3... 2... 1..."),
new ScenarioPhrase(
[
$localize`C’est parti !`,
$localize`Décollage !`,
$localize`Allumage des réacteurs !`,
$localize`Vers l’infini et au-delà !`,
$localize`Que la force soit avec toi !`
]
).setRandomMode()
];
}
await this.runMathiaSpeech(introSequence);
}
/**
* Recommencer l’activité
*/
async restartActivity() {
const playRestart: Array<any> = [
new ScenarioPhrase([$localize`Une nouvelle expédition est parée au lancement ? Youpi !`]),
new ScenarioPhrase([$localize`C’est reparti pour un nouveau jeu du furet intergalactique !`])
];
await this.runMathiaSpeech(playRestart);
}
/**
* Lancement de l’activité / 1er joueur
*/
async nextPlayerInit() {
const nextPlayerInit: Array<any> = [
new ScenarioPhrase([
$localize`C’est toi qui commences ${this.page.currentUser.name} !`,
$localize`A toi de commencer ${this.page.currentUser.name} !`,
$localize`${this.page.currentUser.name}:playerName:, à toi l’honneur de répondre en premier !`,
$localize`${this.page.currentUser.name}:playerName: ! C’est à toi de commencer !`
]).setRandomMode(),
new ScenarioPhrase("3... 2... 1..."),
new ScenarioPhrase(
[
$localize`C’est parti !`,
$localize`Décollage !`,
$localize`Allumage des réacteurs !`,
$localize`Vers l’infini et au-delà !`,
$localize`Que la force soit avec toi !`
]
).setRandomMode()
];
await this.runMathiaSpeech(nextPlayerInit);
}
/**
* Joueur suivant.
*/
async nextPlayerSwitch() {
let majAjouteEnleve: string;
let majRajouteEnleve: string;
let ajouteEnleve: string;
let majPlusMoins: string;
let plusMoins: string;
const pas = this.page.pas.toString();
let pasTTS: string;
if (pas === "1") {
pasTTS = "un";
} else {
pasTTS = pas;
}
if (this.page.operationMode === "1") {
majRajouteEnleve = $localize`Rajoute `;
majAjouteEnleve = $localize`Ajoute `;
ajouteEnleve = $localize`ajoute `;
majPlusMoins = $localize`Plus `;
plusMoins = $localize` plus `;
} else if (this.page.operationMode === "2") {
majRajouteEnleve = $localize`Enlève `;
majAjouteEnleve = $localize`Enlève `;
ajouteEnleve = $localize`enlève `;
majPlusMoins = $localize`Moins `;
plusMoins = $localize` moins `;
}
const nextPlayerContent: Array<any> = [
new ScenarioPhrase(
[
$localize`${majRajouteEnleve + pas} ${this.page.currentUser.name}:playerName: !`,
$localize`${majAjouteEnleve + pas} ${this.page.currentUser.name}:playerName: !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majRajouteEnleve + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majAjouteEnleve + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ? ${majRajouteEnleve + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ? ${majAjouteEnleve + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pas} ?`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pas} ?`,
$localize`On continue ${this.page.currentUser.name}:playerName: ! ${majRajouteEnleve + pas} !`,
$localize`Continuons ! ${this.page.currentUser.name}:playerName: ! ${majAjouteEnleve + pas} !`,
$localize`Continue ${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pas} !`,
$localize`On continue ! ${this.page.currentUser.name}:playerName: ?`,
$localize`Continuons ! ${this.page.currentUser.name}:playerName: ?`,
$localize`Continue ${this.page.currentUser.name}:playerName: !`,
$localize`A ${this.page.currentUser.name}:playerName: de piloter !`,
$localize`Vas-y ${this.page.currentUser.name}:playerName:, à toi !`,
$localize`Vas-y ${this.page.currentUser.name}:playerName:, ${plusMoins + pas} !`,
$localize`A toi ${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pas} !`,
$localize`A ton tour ${this.page.currentUser.name}:playerName: !`,
$localize`A toi ${this.page.currentUser.name}:playerName: ! ${majRajouteEnleve + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ! A toi !`,
$localize`${this.page.currentUser.name}:playerName: ? A toi de jouer !`,
$localize`A ${this.page.currentUser.name}:playerName: de piloter !`,
$localize`${this.page.currentUser.name}:playerName: aux commandes ! ${majRajouteEnleve + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ? ${majPlusMoins + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ? `,
$localize`A ${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pas} !`,
$localize`A ${this.page.currentUser.name}:playerName: maintenant ! ${majPlusMoins + pas} !`,
$localize`${this.page.currentUser.name}:playerName:, à toi ! ${majRajouteEnleve + pas} !`,
$localize`${this.page.currentUser.name}:playerName:, à toi ! ${majAjouteEnleve + pas} !`,
$localize`Quel voyage ! A toi ${this.page.currentUser.name}:playerName: ! ${majRajouteEnleve + pas} !`,
$localize`${this.page.currentUser.name}:playerName: ?`,
$localize`A ${this.page.currentUser.name}:playerName: !`
],
null,
[
$localize`${majRajouteEnleve + pasTTS} ${this.page.currentUser.name}:playerName: !`,
$localize`${majAjouteEnleve + pasTTS} ${this.page.currentUser.name}:playerName: !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majRajouteEnleve + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majAjouteEnleve + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ? ${majRajouteEnleve + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ? ${majAjouteEnleve + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pasTTS} ?`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pasTTS} ?`,
$localize`On continue ${this.page.currentUser.name}:playerName: ! ${majRajouteEnleve + pasTTS} !`,
$localize`Continuons ! ${this.page.currentUser.name}:playerName: ! ${majAjouteEnleve + pasTTS} !`,
$localize`Continue ${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pasTTS} !`,
$localize`On continue ! ${this.page.currentUser.name}:playerName: ?`,
$localize`Continuons ! ${this.page.currentUser.name}:playerName: ?`,
$localize`Continue ${this.page.currentUser.name}:playerName: !`,
$localize`A ${this.page.currentUser.name}:playerName: de piloter !`,
$localize`Vas-y ${this.page.currentUser.name}:playerName:, à toi !`,
$localize`Vas-y ${this.page.currentUser.name}:playerName:, ${plusMoins + pasTTS} !`,
$localize`A toi ${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pasTTS} !`,
$localize`A ton tour ${this.page.currentUser.name}:playerName: !`,
$localize`A toi ${this.page.currentUser.name}:playerName: ! ${majRajouteEnleve + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ! A toi !`,
$localize`${this.page.currentUser.name}:playerName: ? A toi de jouer !`,
$localize`A ${this.page.currentUser.name}:playerName: de piloter !`,
$localize`${this.page.currentUser.name}:playerName: aux commandes ! ${majRajouteEnleve + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ? ${majPlusMoins + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ? `,
$localize`A ${this.page.currentUser.name}:playerName: ! ${majPlusMoins + pasTTS} !`,
$localize`A ${this.page.currentUser.name}:playerName: maintenant ! ${majPlusMoins + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName:, à toi ! ${majRajouteEnleve + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName:, à toi ! ${majAjouteEnleve + pasTTS} !`,
$localize`Quel voyage ! A toi ${this.page.currentUser.name}:playerName: ! ${majRajouteEnleve + pasTTS} !`,
$localize`${this.page.currentUser.name}:playerName: ?`,
$localize`A ${this.page.currentUser.name}:playerName: !`
]
).setRandomMode()
];
await this.runMathiaSpeech(nextPlayerContent);
}
/**
* Consigne addition simple
*/
async addSimple() {
const speechSequence = [
new ScenarioPhrase([
$localize`Rajoute ${this.page.pas}:number: !`,
$localize`On continue !`,
$localize`Continuons !`,
$localize`Continue !`,
$localize`Plus ${this.page.pas}:number: ?`,
$localize`Plus ${this.page.pas}:number: !`,
$localize`Et ${this.page.pas}:number: !`,
$localize`Et ${this.page.pas}:number: ?`
])
];
await this.runMathiaSpeech(speechSequence);
}
/**
* Consigne soustraction simple 2
*/
async substractSimple() {
const speechSequence = [
new ScenarioPhrase([
$localize`Enlève ${this.page.pas}:number: !`,
$localize`Moins ${this.page.pas}:number: ?`,
$localize`Moins ${this.page.pas}:number: !`,
$localize`On continue !`,
$localize`Continuons !`,
$localize`Continue !`,
$localize`Vas-y continue !`
]).setRandomMode()
];
await this.runMathiaSpeech(speechSequence);
}
/**
* Question suivante (addition)
*/
async continueAddSolo() {
const speechSequence = [
new ScenarioPhrase([
$localize`Rajoute ${this.page.pas}:number: !`,
$localize`On continue !`,
$localize`Continuons !`,
$localize`Continue !`,
$localize`Plus ${this.page.pas}:number: ?`,
$localize`Plus ${this.page.pas}:number: !`,
$localize`Et ${this.page.pas}:number: !`,
$localize`Et ${this.page.pas}:number: ?`
]).setRandomMode()
];
await this.runMathiaSpeech(speechSequence);
}
/**
* Question suivante (soustraction)
*/
async continueSubstractSolo() {
const speechSequence = [
new ScenarioPhrase([
$localize`Enlève ${this.page.pas}:number: !`,
$localize`Moins ${this.page.pas}:number: ?`,
$localize`Moins ${this.page.pas}:number: !`,
$localize`On continue !`,
$localize`Continuons !`,
$localize`Continue !`,
$localize`Vas-y continue !`
]).setRandomMode()
];
await this.runMathiaSpeech(speechSequence);
}
/**
* Consigne addition simple 2
*/
async countAddSimple() {
const speechSequence = [new ScenarioPhrase([$localize`Compte en rajoutant ${this.page.pas}:number: !`])];
await this.runMathiaSpeech(speechSequence);
}
/**
* Consigne soustraction simple
*/
async countSubstractSimple() {
const speechSequence = [new ScenarioPhrase([$localize`Compte en enlevant ${this.page.pas}:number: !`]).setRandomMode()];
await this.runMathiaSpeech(speechSequence);
}
}