+ if(game.settings['enablehud']) {
+ if(game.timeProgress < 0.5) {
+ game.ui.hud.style.opacity = Math.min(1, game.timeProgress * 4).toFixed(2);
+ }
+ const failsafe = 0.0001;
+ const radiusOuter = 0.5;
+ const radiusInner = 0.4;
+ const progress = Math.max(failsafe, Math.min(1 - failsafe, game.timeProgress / game.timeTotal));
+ const xOuter = (0.5 + radiusOuter * Math.sin(progress * 2 * Math.PI)).toFixed(4);
+ const yOuter = (0.5 + radiusOuter * Math.cos(progress * 2 * Math.PI)).toFixed(4);
+ const xInner = (0.5 + radiusInner * Math.sin(progress * 2 * Math.PI)).toFixed(4);
+ const yInner = (0.5 + radiusInner * Math.cos(progress * 2 * Math.PI)).toFixed(4);
+ for(let segment of [0, 1]) {
+ let p = 'M' + xOuter + ',' + yOuter;
+ p += 'A' + radiusOuter + ',' + radiusOuter + ' 0 ' + ((progress >= 0.5) ? (1 - segment) : segment) + ' ' + (1 - segment) + ' .5,' + (0.5 + radiusOuter);
+ p += 'V' + (0.5 + radiusInner);
+ p += 'A' + radiusInner + ',' + radiusInner + ' 0 ' + ((progress >= 0.5) ? (1 - segment) : segment) + ' ' + segment + ' ' + xInner + ',' + yInner;
+ p += 'z';
+ game.ui.hud.children[0].children[segment].setAttribute('d', p);
+ }
+ if(game.timeProgress > game.timeTotal - 0.5) {
+ game.ui.hud.style.opacity = Math.max(0, (game.timeTotal - game.timeProgress - 0.25) * 4).toFixed(2);
+ }
+ }