diff --git a/assets/config.json b/assets/config.json index 09c1aba..0dd4800 100644 --- a/assets/config.json +++ b/assets/config.json @@ -1,4 +1,6 @@ { + "debug": false, + "player.name": "Player", "player.leaderboards": false, diff --git a/public/help.html b/public/help.html index 39bb8df..34d040f 100644 --- a/public/help.html +++ b/public/help.html @@ -47,6 +47,22 @@ A timed game only lasts for 30 seconds, and the goal is to get as high a score as possible.

+
+

Survival

+

+ In survival mode, the playfield doesn't loop, fruits don't spawn, and you can't win.
+ This modes get progressively harder, with speed increases, and snake growth.
+ At first, this process is slow, but it gets faster with time. +

+
+
+

Puzzle mode

+

+ In puzzle mode, time doesn't flow until you move.
+ Weird tiles make their debut, like portals, keys, etc.
+ Your goal is to get the fruits in as little moves as you can. +

+

Tiles

@@ -58,6 +74,8 @@
  • Oil is flammable and will periodically catch on fire, which will kill you. It is otherwise perfectly safe
  • Super fruits give you 10 points, and sometimes spawn in arcade mode
  • Decaying fruits give you 5 points and sometimes spawn in arcade mode, but they also decay after 2 seconds and disappear
  • +
  • Portals teleport you to the corresponding portal
  • +
  • Keys make Doors disappear
  • diff --git a/src/js/configEditor.js b/src/js/configEditor.js index fc9baed..377f995 100644 --- a/src/js/configEditor.js +++ b/src/js/configEditor.js @@ -22,7 +22,7 @@ class ConfigEditor extends Popup { let id='cfgInput-'+(lastCEId++)+'-'+key.replace(/\./g, '-'); let label=span.appendChild(document.createElement('label')); label.innerText=data.name; - label.title=key; + if(config.getB('debug')) label.title=key; let input; if(data.type=='boolean') { @@ -67,7 +67,7 @@ class ConfigEditor extends Popup { input.disabled= data.excludes .some(key => config.getB(key)); - input.title=input.disabled?`Disable ${data.excludes.join(',')} to enable`:''; + input.title=input.disabled?`Disable '${data.excludes.map(k => metaConfig[k].name).join('\', \'')}' to enable`:''; }; setEnabled(); @@ -78,7 +78,7 @@ class ConfigEditor extends Popup { } else if(data.parent) { const setEnabled=() => { input.disabled=!config.getB(data.parent); - input.title=input.disabled?`Enable ${data.parent} to enable`:''; + input.title=input.disabled?`Enable '${metaConfig[data.parent].name}' to enable`:''; }; setEnabled(); diff --git a/src/js/progress.js b/src/js/progress.js index 973f0bc..0c33ad3 100644 --- a/src/js/progress.js +++ b/src/js/progress.js @@ -34,7 +34,7 @@ class ProgressBar { ctx.fillRect(0, 0, canvas.width*this.completeCount/this.taskCount, canvas.height); ctx.fillStyle=textColor; ctx.textAlign='center'; - ctx.textBaseline='center'; + ctx.textBaseline='middle'; ctx.font=`${canvas.height/2}px 'Fira Code'`; ctx.fillText(this.percent+'%', canvas.width/2, canvas.height/2); }