Powerline.io patterns

u-turn, waffle, square

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==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);
        }
    }

})();