const inRowTranslations = {
fi: {
onlyNewText: "Vain uudet tehtävät lasketaan",
taskReadyText: "Tehtävä on valmis muita vastauksia ei enää lasketa!",
greatText: "Hienoa! Sait tehtävän suoritettua.",
oneMoreNeededText: "Vielä tarvitaan yksi oikea vastaus tähän perään.",
moreNeededText: "Vielä tarvitaan {stillNeeded} oikeata vastausta tähän perään.",
pressNewRoundText: "Paina 'Uusi kierros' painiketta.",
correctText: "Oikein!",
wrongText: "Pieleen meni!",
totallyNeededText: "Tarvitset {needed} oikeata vastausta peräkkäin.",
},
en: {
onlyNewText: "Only new tasks will be counted",
taskReadyText: "The task is complete, no other answers will be counted!",
greatText: "Great! You've completed the task.",
oneMoreNeededText: "One more correct answer is needed to follow this up.",
moreNeededText: "Still need {stillNeeded} correct answer after this one.",
pressNewRoundText: "Press the 'New round' button.",
correctText: "Correct!",
wrongText: "Not so good!",
totallyNeededText: "You need {needed} correct answers in a row."
},
}
function rep(text, params) {
for (const [param, value] of Object.entries(params)) {
text = text.replace(`{${param}}`, value);
}
return text;
}
// Check if user has needed number of correct answers in row.
// correct is if current answer is correct
// If has, then give points nr of points. Else give 0 points.
// This function is called from TIM plugins postprogram and it changes values in data.
function checkCorrectAnswersInRow(data, correct, needed, points, lang, lf="<br>") {
let s = inRowTranslations[lang];
if (!s) s = inRowTranslations["en"];
const state = data.answer_call_data.state;
const info = data.answer_call_data.info;
let attempts = 0;
const askNew = info.askNew;
let ready = false;
if (state) {
let previousAttempts = state.attempts || state.yrityksia;
if (previousAttempts) attempts += previousAttempts;
ready = state.ready || state.valmis;
}
if (!askNew) {
print(lf + s.onlyNewText);
return data;
}
if (ready) {
data.points = points; // pidetään pisteet samana tuli mitä tuli
data.save_object.ready = true; // muistetaan että oltiin valmiina
data.save_object.attempts = attempts; // ja päivitetään yritysmäärä
print(lf + s.taskReadyText);
return data;
}
if (correct) {
attempts++;
if (attempts >= needed) {
data.save_object.ready = true;
data.save_object.attempts = attempts;
data.points = points;
print(lf + s.greatText);
return data;
}
const stillNeeded = needed - attempts;
let neededText = s.oneMoreNeededText;
if (stillNeeded > 1) neededText = rep(s.moreNeededText, {stillNeeded: stillNeeded});
print(` ${s.correctText}${lf} ${neededText} ${s.pressNewRoundText}`);
data.save_object.attempts = attempts;
data.points = 0;
return data;
}
const totallyNeededText = rep(s.totallyNeededText, {needed: needed});
print(` ${s.wrongText}${lf} ${totallyNeededText} ${s.pressNewRoundText}`);
data.save_object.attempts = 0;
data.points = 0;
return data;
}
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.