X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Futils%2FtimeControl.js;h=c38d08b1d00b616752cdb1e500ba37ee3ab4aed5;hb=7ba4a5bc5b64e19a1e7f26aa232d5c50770d07ad;hp=72d5557f1c09c34df87dbe3cfa70b403a6216ac7;hpb=7f36b53a818bd707e49e7109275e3659e97d91b4;p=vchess.git diff --git a/client/src/utils/timeControl.js b/client/src/utils/timeControl.js index 72d5557f..c38d08b1 100644 --- a/client/src/utils/timeControl.js +++ b/client/src/utils/timeControl.js @@ -1,49 +1,48 @@ -function timeUnitToSeconds(value, unit) -{ +function timeUnitToSeconds(value, unit) { let seconds = value; - switch (unit) - { - case 'd': - seconds *= 24; - case 'h': - seconds *= 60; - case 'm': + switch (unit) { + case "d": + seconds *= 86400; //24*60*60 + break; + case "h": + seconds *= 3600; + break; + case "m": seconds *= 60; + break; } return seconds; } -function isLargerUnit(unit1, unit2) -{ - return (unit1 == 'd' && unit2 != 'd') - || (unit1 == 'h' && ['s','m'].includes(unit2)) - || (unit1 == 'm' && unit2 == 's'); +// Used only if increment, hence live game: no "day" unit +function isLargerUnit(unit1, unit2) { + return ( + (unit1 == "h" && ["s", "m"].includes(unit2)) || + (unit1 == "m" && unit2 == "s") + ); } -export function extractTime(cadence) -{ - let tcParts = cadence.replace(/ /g,"").split('+'); - // Concatenate usual time control suffixes, in case of none is provided +export function extractTime(cadence) { + let tcParts = cadence.replace(/ /g, "").split("+"); + // Concatenate usual time control suffix, in case of none is provided tcParts[0] += "m"; - tcParts[1] += "s"; const mainTimeArray = tcParts[0].match(/^([0-9]+)([smhd]+)$/); - if (!mainTimeArray) - return null; + if (!mainTimeArray) return null; const mainTimeValue = parseInt(mainTimeArray[1]); const mainTimeUnit = mainTimeArray[2][0]; const mainTime = timeUnitToSeconds(mainTimeValue, mainTimeUnit); let increment = 0; - if (tcParts.length >= 2) - { + if (tcParts.length >= 2) { + // Correspondance games don't use an increment: + if (mainTimeUnit == 'd') return null; + tcParts[1] += "s"; const incrementArray = tcParts[1].match(/^([0-9]+)([smhd]+)$/); - if (!incrementArray) - return null; + if (!incrementArray) return null; const incrementValue = parseInt(incrementArray[1]); const incrementUnit = incrementArray[2][0]; // Increment unit cannot be larger than main unit: - if (isLargerUnit(incrementUnit, mainTimeUnit)) - return null; + if (isLargerUnit(incrementUnit, mainTimeUnit)) return null; increment = timeUnitToSeconds(incrementValue, incrementUnit); } - return {mainTime:mainTime, increment:increment}; + return { mainTime: mainTime, increment: increment }; }