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);
}