, ToggleModule
];
+function ip_shuffle(array) {
+ for (var i = array.length-1; i > 0; i--) {
+ var s = Math.floor((i+1) * Math.random());
+ var selected = array[s];
+ array[s] = array[i];
+ array[i] = selected;
+ }
+ return array;
+}
+
function trollCase(string) {
return string.split('')
- .map(c => c < 64 ? c : String.fromCharCode(c.charCodeAt(0) ^ (32 * (Math.floor(2*Math.random())))))
+ .map(c => Math.random() < 0.5 ? c.toUpperCase() : c.toLowerCase())
.join('');
}
obj['toggle'] = toggle;
obj['title'] = trollCase(title);
obj['values'] = {};
- for (var i = 3; i < arguments.length; i += 2) {
- obj['values'][trollCase(arguments[i])] = arguments[i+1];
- }
+ var indices = [];
+ for (var i = 3; i < arguments.length; i += 2) indices.push(i);
+ ip_shuffle(indices).forEach(i => obj['values'][trollCase(arguments[i])] = arguments[i+1]);
obj['default'] = def;
if (def == undefined) {
if (obj['values'].length > 2) {
return ToggleModule.defineToggle(obj);
}
-export const options = [
- // TODO: detroll this a bit
- trollToggle('konami', 'unused', undefined,
+function konamiToggle() {
+ var t = trollToggle.apply(this, arguments);
+ var sequence = [2, 2, 1, 1, 0, 3, 0, 3, 4, 5];
+ var idx = 0;
+ t.set = (value) => {
+ if (value === sequence[idx]) {
+ if (++idx >= sequence.length) {
+ ToggleModule.toggles['troll'] = true;
+ ToggleModule.refreshContent();
+ }
+ }
+ else { idx = 0; }
+ }
+ return t;
+}
+
+export const options = ip_shuffle ([
+ konamiToggle('troll', "Do not touch this", false,
'←', 0, '↓', 1, '↑', 2, '→', 3, 'B', 4, 'A', 5),
trollToggle('pants', 'pants', 1 + Math.floor(3 * Math.random()),
'red', 1, 'green', 2, 'blue', 3, 'you perv', 4),
'on', true, 'off', false),
trollToggle('debug', 'Detroll Mode', false,
'on', true, 'off', false)
-];
-
-for (var i = options.length-1; i > 1; i--) {
- var s = Math.floor((i+1) * Math.random());
- var selected = options[s];
- options[s] = options[i];
- options[i] = selected;
-}
+]);