Fusionne la terminologie Block en mode Twice
This commit is contained in:
31
app.js
31
app.js
@@ -32,7 +32,7 @@ const PRESETS = {
|
||||
const MODES = {
|
||||
twice: {
|
||||
label: "ChessCubing Twice",
|
||||
subtitle: "Le gagnant du cube ouvre la partie suivante.",
|
||||
subtitle: "Le gagnant du cube ouvre le Block suivant.",
|
||||
},
|
||||
time: {
|
||||
label: "ChessCubing Time",
|
||||
@@ -298,9 +298,9 @@ function initSetupPage() {
|
||||
const timeImpact =
|
||||
mode === "time"
|
||||
? `Chronos cumules de ${formatClock(timeInitialMs)} par joueur, ajustes apres chaque phase cube avec plafond de 120 s pris en compte. Aucun temps par coup en mode Time.`
|
||||
: "Le gagnant du cube commence la partie suivante, avec double coup V2 possible.";
|
||||
: "Le gagnant du cube commence le Block suivant, avec double coup V2 possible.";
|
||||
const timingText = moveLimitActive
|
||||
? `Temps configures : partie ${formatClock(blockDurationMs)}, coup ${formatClock(moveLimitMs)}.`
|
||||
? `Temps configures : Block ${formatClock(blockDurationMs)}, coup ${formatClock(moveLimitMs)}.`
|
||||
: `Temps configures : Block ${formatClock(blockDurationMs)}, temps de chaque joueur ${formatClock(timeInitialMs)}.`;
|
||||
const quotaText = moveLimitActive
|
||||
? `Quota actif : ${quota} coups par joueur.`
|
||||
@@ -325,8 +325,7 @@ function initSetupPage() {
|
||||
document.body.classList.toggle("time-setup-mode", !moveLimitActive);
|
||||
|
||||
if (blockDurationLabel instanceof HTMLElement) {
|
||||
blockDurationLabel.textContent =
|
||||
blockLabel === "Block" ? "Temps du Block (minutes)" : "Temps partie (minutes)";
|
||||
blockDurationLabel.textContent = "Temps du Block (minutes)";
|
||||
}
|
||||
|
||||
syncCompetitionFields();
|
||||
@@ -742,7 +741,7 @@ function initChronoPage() {
|
||||
document.body.classList.toggle("time-mode", timeMode);
|
||||
refs.title.textContent = match.config.matchLabel;
|
||||
refs.subtitle.textContent = `${blockHeading} - ${MODES[match.config.mode].label} - ${renderModeContext(match)}`;
|
||||
refs.blockTimerLabel.textContent = timeMode ? "Temps Block" : "Temps partie";
|
||||
refs.blockTimerLabel.textContent = "Temps Block";
|
||||
refs.blockTimer.textContent = formatClock(match.blockRemainingMs);
|
||||
refs.moveTimer.textContent = usesMoveLimit(match) ? formatClock(match.moveRemainingMs) : "--:--";
|
||||
refs.moveTimerCard.hidden = timeMode;
|
||||
@@ -775,8 +774,8 @@ function initChronoPage() {
|
||||
refs.spineLabel.textContent = timeMode ? "Etat du Block" : "Pret";
|
||||
refs.spineHeadline.textContent = blockHeading;
|
||||
refs.spineText.textContent =
|
||||
"Demarrez la partie, puis laissez uniquement les deux grandes zones aux joueurs. La page cube prendra automatiquement le relais.";
|
||||
refs.primaryButton.textContent = timeMode ? "Demarrer le Block" : "Demarrer la partie";
|
||||
"Demarrez le Block, puis laissez uniquement les deux grandes zones aux joueurs. La page cube prendra automatiquement le relais.";
|
||||
refs.primaryButton.textContent = "Demarrer le Block";
|
||||
refs.arbiterStatus.textContent = `${blockHeading} pret. ${playerName(match, match.currentTurn)} commencera.`;
|
||||
}
|
||||
|
||||
@@ -1256,10 +1255,10 @@ function initCubePage() {
|
||||
key: `twice:${match.blockNumber}:${match.cube.round}:${white}:${black}`,
|
||||
title: isTie ? "Egalite parfaite" : "Résumé du cube",
|
||||
winner: winner ? playerName(match, winner) : "Egalite parfaite",
|
||||
outcome: isTie ? "Rejouer la phase cube" : `${playerName(match, winner)} ouvrira la partie suivante`,
|
||||
outcome: isTie ? "Rejouer la phase cube" : `${playerName(match, winner)} ouvrira le Block suivant`,
|
||||
summary: isTie
|
||||
? "Le règlement Twice impose de rejouer immédiatement la phase cube."
|
||||
: "Validez ce résultat pour préparer la partie suivante.",
|
||||
: "Validez ce résultat pour preparer le Block suivant.",
|
||||
actionLabel: isTie ? "Rejouer la phase cube" : "Appliquer et ouvrir la page chrono",
|
||||
whiteName,
|
||||
blackName,
|
||||
@@ -1353,7 +1352,7 @@ function initCubePage() {
|
||||
refs.centerValue.textContent = "Phase cube complete";
|
||||
refs.spineLabel.textContent = "Suite";
|
||||
refs.spineHeadline.textContent = "Ouvrir la page chrono";
|
||||
refs.spineText.textContent = "Appliquer le resultat du cube pour preparer la partie suivante.";
|
||||
refs.spineText.textContent = "Appliquer le resultat du cube pour preparer le Block suivant.";
|
||||
}
|
||||
refs.primaryButton.textContent = "Voir le résumé du cube";
|
||||
refs.helpStatus.textContent = refs.spineText.textContent;
|
||||
@@ -1467,7 +1466,7 @@ function createMatch(config) {
|
||||
logEvent(
|
||||
newMatch,
|
||||
usesMoveLimit(config.mode)
|
||||
? `Match cree en mode ${MODES[config.mode].label}, cadence ${PRESETS[config.preset].label}, partie ${formatClock(config.blockDurationMs)} et coup ${formatClock(config.moveLimitMs)}.`
|
||||
? `Match cree en mode ${MODES[config.mode].label}, cadence ${PRESETS[config.preset].label}, Block ${formatClock(config.blockDurationMs)} et coup ${formatClock(config.moveLimitMs)}.`
|
||||
: `Match cree en mode ${MODES[config.mode].label}, cadence ${PRESETS[config.preset].label}, Block ${formatClock(config.blockDurationMs)} et chrono initial ${formatClock(getTimeInitialMs(config))} par joueur, sans temps par coup.`,
|
||||
);
|
||||
logEvent(newMatch, `Les Blancs commencent ${formatBlockHeading(config, 1)}.`);
|
||||
@@ -1782,7 +1781,7 @@ function applyCubeOutcome(storedMatch) {
|
||||
|
||||
function prepareNextTwiceBlock(storedMatch, winner) {
|
||||
const hadDouble = storedMatch.lastMover !== winner && storedMatch.lastMover !== null;
|
||||
logEvent(storedMatch, `${playerName(storedMatch, winner)} gagne la phase cube et ouvrira la partie suivante.`);
|
||||
logEvent(storedMatch, `${playerName(storedMatch, winner)} gagne la phase cube et ouvrira le Block suivant.`);
|
||||
|
||||
storedMatch.blockNumber += 1;
|
||||
storedMatch.phase = "block";
|
||||
@@ -2264,15 +2263,15 @@ function getTimeInitialMs(matchOrConfig) {
|
||||
}
|
||||
|
||||
function getBlockLabel(matchOrConfig) {
|
||||
return isTimeMode(matchOrConfig) ? "Block" : "Partie";
|
||||
return "Block";
|
||||
}
|
||||
|
||||
function getBlockPhrase(matchOrConfig) {
|
||||
return isTimeMode(matchOrConfig) ? "Le Block" : "La partie";
|
||||
return "Le Block";
|
||||
}
|
||||
|
||||
function getBlockGenitivePhrase(matchOrConfig) {
|
||||
return isTimeMode(matchOrConfig) ? "du Block" : "de la partie";
|
||||
return "du Block";
|
||||
}
|
||||
|
||||
function formatBlockHeading(matchOrConfig, blockNumber) {
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
<input type="radio" name="mode" value="twice" checked />
|
||||
<strong>ChessCubing Twice</strong>
|
||||
<span>
|
||||
Le gagnant du cube ouvre la partie suivante et peut obtenir un
|
||||
Le gagnant du cube ouvre le Block suivant et peut obtenir un
|
||||
double coup V2.
|
||||
</span>
|
||||
</label>
|
||||
@@ -169,7 +169,7 @@
|
||||
<legend>Temps personnalisés</legend>
|
||||
<div class="timing-grid">
|
||||
<label class="field">
|
||||
<span id="blockDurationLabel">Temps partie (minutes)</span>
|
||||
<span id="blockDurationLabel">Temps du Block (minutes)</span>
|
||||
<input
|
||||
name="blockMinutes"
|
||||
type="number"
|
||||
|
||||
Reference in New Issue
Block a user