u-turn, waffle, square
// ==UserScript==
// @name Powerline.io patterns
// @namespace http://tampermonkey.net/
// @version 0
// @author inimur
// @description u-turn, waffle, square
// @match *://powerline.io/*
// @license MIT
// @grant none
// ==/UserScript==
(function () {
'use strict';
document.addEventListener('keydown', (e) => {
if (e.key === 'l') {
console.log('pressed l');
sendKey('W');
sendKey('D');
} else if (e.key === 'o') {
sendKey('D');
sendKey('W');
} else if (e.key === 'j') {
sendKey('W');
sendKey('A');
} else if (e.key === 'u') {
sendKey('A');
sendKey('W');
} else if (e.key === ',') {
sendKey('D');
sendKey('S');
} else if (e.key === ';') {
sendKey('S');
sendKey('D');
} else if (e.key === 'n') {
sendKey('A');
sendKey('S');
} else if (e.key === 'h') {
sendKey('S');
sendKey('A');
} else if (e.key === 'e') {
ntk(50, 'NE');
} else if (e.key === 'q') {
ntk(50, 'NW');
} else if (e.key === 'c') {
ntk(50, 'SE');
} else if (e.key === 'z') {
ntk(50, 'SW');
}
});
function sendKey(key) {
let keyCode;
let code;
if (key === 'Enter') {
keyCode = 13;
code = 'Enter';
} else {
keyCode = key.charCodeAt(0);
code = 'Key' + key.toUpperCase();
}
const down = new KeyboardEvent('keydown', { bubbles: true });
Object.defineProperty(down, 'keyCode', { get: () => keyCode });
Object.defineProperty(down, 'which', { get: () => keyCode });
Object.defineProperty(down, 'key', { get: () => key });
Object.defineProperty(down, 'code', { get: () => code });
document.dispatchEvent(down);
const up = new KeyboardEvent('keyup', { bubbles: true });
Object.defineProperty(up, 'keyCode', { get: () => keyCode });
Object.defineProperty(up, 'which', { get: () => keyCode });
Object.defineProperty(up, 'key', { get: () => key });
Object.defineProperty(up, 'code', { get: () => code });
document.dispatchEvent(up);
}
function square(n){
var t = 0, d = 370, dd = 1, ddd = 0;
for(var i=0; i<n; i++){
for(var j=0; j<6; j++){
setTimeout(()=>{sendKey('D');sendKey('1');sendKey('Enter');}, t);
setTimeout(()=>{sendKey('S');sendKey('1');sendKey('Enter');}, t);t+=d;
setTimeout(()=>{sendKey('D');sendKey('1');sendKey('Enter');}, t);
setTimeout(()=>{sendKey('W');sendKey('1');sendKey('Enter');}, t);t+=d;
}
t+=d;
setTimeout(()=>{sendKey('K');sendKey('1');}, t);
t+=d;
setTimeout(()=>{sendKey('Enter');}, t);
t+=d;
}
}
function ntk(n, d){
console.log('sd');
var A = 70;
var delta = 20;
var C = [A-delta, A, A-delta];
var t = 0;
var P = ['D', 'W', 'A', 'W', 'D', 'S'];
console.log(d);
if (d === 'NE'){
P = ['D', 'W', 'A', 'W', 'D', 'S'];
}
else if(d === 'NW'){
P = ['W', 'A', 'S', 'A', 'W', 'D'];
}
else if(d === 'SW'){
P = ['A', 'S', 'D', 'S', 'A', 'W'];
}
else if(d === 'SE'){
P = ['S', 'D', 'W', 'D', 'S', 'A'];
}
for (var i=0; i<n; i++){
t += C[i%3];
setTimeout((i)=>{sendKey(P[i%6]);}, t, i);
}
}
})();