diff --git a/apps/multidice/ChangeLog b/apps/multidice/ChangeLog index ba0f62269..9fd5f3935 100644 --- a/apps/multidice/ChangeLog +++ b/apps/multidice/ChangeLog @@ -20,3 +20,4 @@ 1.18: decided to keep around the button even while testing, disabled all safety round the accelHandler self-triggering 1.19: added longer delay before resetting accelHandler 1.20: removed all traces of accel b/c I've given up +1.21: added a drawWidgets command to see if I have the padding right diff --git a/apps/multidice/app.js b/apps/multidice/app.js index 01f39751d..2c2c36c58 100644 --- a/apps/multidice/app.js +++ b/apps/multidice/app.js @@ -3,138 +3,139 @@ const DICE_ARRAY = [0, 4, 6, 8, 10, 12, 20, 100]; const SELECTION_ARRAY = [6, 0, 0, 0, 0, 0, 0, 0]; // default to selecting a single d20 function drawMenu() { - - stringArr = new Array ("", "", "", "", "", "", "", ""); - for (i = 0; i < 8; i++) { - - if (SELECTION_ARRAY [i] != 0) { - - stringArr [i] = "" + DICE_ARRAY [SELECTION_ARRAY [i]]; - } - } - - g.clear(); - g.setFont ("Vector", 40); - - g.drawString ((" " + stringArr [0]).slice (-3), 5, 10); - g.drawString ((" " + stringArr [1]).slice (-3), 5, 50); - g.drawString ((" " + stringArr [2]).slice (-3), 5, 90); - g.drawString ((" " + stringArr [3]).slice (-3), 5, 130); - g.drawString ((" " + stringArr [4]).slice (-3), 96, 10); - g.drawString ((" " + stringArr [5]).slice (-3), 96, 50); - g.drawString ((" " + stringArr [6]).slice (-3), 96, 90); - g.drawString ((" " + stringArr [7]).slice (-3), 96, 130); + + stringArr = new Array ("", "", "", "", "", "", "", ""); + for (i = 0; i < 8; i++) { + + if (SELECTION_ARRAY [i] != 0) { + + stringArr [i] = "" + DICE_ARRAY [SELECTION_ARRAY [i]]; + } + } + + g.clear(); + g.setFont ("Vector", 40); + Bangle.drawWidgets(); + + g.drawString ((" " + stringArr [0]).slice (-3), 5, 10); + g.drawString ((" " + stringArr [1]).slice (-3), 5, 50); + g.drawString ((" " + stringArr [2]).slice (-3), 5, 90); + g.drawString ((" " + stringArr [3]).slice (-3), 5, 130); + g.drawString ((" " + stringArr [4]).slice (-3), 96, 10); + g.drawString ((" " + stringArr [5]).slice (-3), 96, 50); + g.drawString ((" " + stringArr [6]).slice (-3), 96, 90); + g.drawString ((" " + stringArr [7]).slice (-3), 96, 130); } function touchHandler (button, xy) { - - if (! menu) { - - menu = true; - drawMenu(); - return; - } - - if (xy.x <= 87) { // left - - if (xy.y <= 43) { - - selection = 0; - } else if (xy.y <= 87) { - - selection = 1; - } else if (xy.y <= 131) { - - selection = 2; - } else { - - selection = 3; - } - } else { // right - - if (xy.y <= 43) { - - selection = 4; - } else if (xy.y <= 87) { - - selection = 5; - } else if (xy.y <= 131) { - - selection = 6; - } else { - - selection = 7; - } - } - - // increment SELECTION_ARRAY [selection] - if (SELECTION_ARRAY [selection] == 7) { - - SELECTION_ARRAY [selection] = 0; - } else { - - SELECTION_ARRAY [selection] += 1; - } - - drawMenu(); + + if (! menu) { + + menu = true; + drawMenu(); + return; + } + + if (xy.x <= 87) { // left + + if (xy.y <= 43) { + + selection = 0; + } else if (xy.y <= 87) { + + selection = 1; + } else if (xy.y <= 131) { + + selection = 2; + } else { + + selection = 3; + } + } else { // right + + if (xy.y <= 43) { + + selection = 4; + } else if (xy.y <= 87) { + + selection = 5; + } else if (xy.y <= 131) { + + selection = 6; + } else { + + selection = 7; + } + } + + // increment SELECTION_ARRAY [selection] + if (SELECTION_ARRAY [selection] == 7) { + + SELECTION_ARRAY [selection] = 0; + } else { + + SELECTION_ARRAY [selection] += 1; + } + + drawMenu(); } function voidFn() { - - return; + + return; } function rollDice (timeoutFunctionRef) { - - resultsArr = new Uint8Array (8); - for (i = 0; i < 8; i++) { - - if (SELECTION_ARRAY [i] != 0) { - - resultsArr [i] = random (DICE_ARRAY [SELECTION_ARRAY [i]]); - } - } - - g.clear(); - g.setFont ("Vector", 40); - - for (i = 0; i < 4; i++) { - - if (SELECTION_ARRAY [i] != 0) { - - g.drawString ((" " + resultsArr [i]).slice (-3), 5, 10 + 40 * i); - } - } - - for (i = 4; i < 8; i++) { - - if (SELECTION_ARRAY [i] != 0) { - - g.drawString ((" " + resultsArr [i]).slice (-3), 96, 10 + 40 * (i - 4)); - } - } - - vibrate (timeoutFunctionRef); + + resultsArr = new Uint8Array (8); + for (i = 0; i < 8; i++) { + + if (SELECTION_ARRAY [i] != 0) { + + resultsArr [i] = random (DICE_ARRAY [SELECTION_ARRAY [i]]); + } + } + + g.clear(); + g.setFont ("Vector", 40); + + for (i = 0; i < 4; i++) { + + if (SELECTION_ARRAY [i] != 0) { + + g.drawString ((" " + resultsArr [i]).slice (-3), 5, 10 + 40 * i); + } + } + + for (i = 4; i < 8; i++) { + + if (SELECTION_ARRAY [i] != 0) { + + g.drawString ((" " + resultsArr [i]).slice (-3), 96, 10 + 40 * (i - 4)); + } + } + + vibrate (timeoutFunctionRef); } function vibrate (timeoutFunctionRef) { - - Bangle.buzz(50, 0.5).then (() => { - - setTimeout (timeoutFunctionRef, 150); - }); + + Bangle.buzz(50, 0.5).then (() => { + + setTimeout (timeoutFunctionRef, 150); + }); } function random (max) { - - return Math.round (Math.random() * (max - 1) + 1); + + return Math.round (Math.random() * (max - 1) + 1); } drawMenu(); Bangle.on ('touch', touchHandler); setWatch (function() { - - menu = false; - rollDice (voidFn); - + + menu = false; + rollDice (voidFn); + }, BTN, {repeat: true, edge: "falling", debounce: 10}); diff --git a/apps/multidice/metadata.json b/apps/multidice/metadata.json index ce84df4b2..e8b2c4393 100644 --- a/apps/multidice/metadata.json +++ b/apps/multidice/metadata.json @@ -1,7 +1,7 @@ { "id": "multidice", "name": "multiple dice roller", "shortName":"multidice", - "version":"1.20", + "version":"1.21", "description": "roll anywhere from 1-8 dice at the same time", "icon": "app.png", "tags": "tool,game",