Powerline.io patterns

u-turn, waffle, square

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

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

})();